[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/kmplayer/src
From: Koos Vriezen <koos.vriezen () gmail ! com>
Date: 2011-10-05 21:56:13
Message-ID: 20111005215613.4C56AAC887 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1257594 by vriezen:
Fallback to background color when color is not set on brush
Which can also set the background opacity
M +7 -1 kmplayer_smil.cpp
M +2 -1 kmplayer_smil.h
M +11 -4 viewarea.cpp
--- trunk/extragear/multimedia/kmplayer/src/kmplayer_smil.cpp #1257593:1257594
@@ -3975,13 +3975,19 @@
KDE_NO_CDTOR_EXPORT SMIL::Brush::Brush (NodePtr & d)
: SMIL::MediaType (d, "brush", id_node_brush) {}
+KDE_NO_EXPORT void SMIL::Brush::init () {
+ if (Runtime::TimingsInitialized > runtime->timingstate)
+ color.init ();
+ MediaType::init ();
+}
+
KDE_NO_EXPORT void SMIL::Brush::accept (Visitor * v) {
v->visit (this);
}
KDE_NO_EXPORT void SMIL::Brush::parseParam (const TrieString ¶m, const QString &val) {
if (param == "color") {
- color = val.isEmpty () ? 0 : QColor (val).rgb ();
+ color.setColor (val);
Surface *s = surface ();
if (s)
s->repaint ();
--- trunk/extragear/multimedia/kmplayer/src/kmplayer_smil.h #1257593:1257594
@@ -791,9 +791,10 @@
class KMPLAYER_NO_EXPORT Brush : public MediaType {
public:
Brush (NodePtr & d);
+ virtual void init ();
virtual void accept (Visitor *);
virtual void parseParam (const TrieString &, const QString &);
- unsigned int color;
+ SmilColorProperty color;
};
class KMPLAYER_NO_EXPORT SmilText : public Element {
--- trunk/extragear/multimedia/kmplayer/src/viewarea.cpp #1257593:1257594
@@ -926,16 +926,23 @@
cairo_rectangle (cr, clip_rect.x (), clip_rect.y (),
clip_rect.width (), clip_rect.height ());
}
+ unsigned int color = brush->color.color;
+ if (!color) {
+ color = brush->background_color.color;
+ opacity *= brush->background_color.opacity / 100.0;
+ } else {
+ opacity *= brush->color.opacity / 100.0;
+ }
opacity *= brush->media_opacity.opacity / 100.0;
if (opacity < 0.99) {
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
cairo_set_source_rgba (cr,
- 1.0 * ((brush->color >> 16) & 0xff) / 255,
- 1.0 * ((brush->color >> 8) & 0xff) / 255,
- 1.0 * (brush->color & 0xff) / 255,
+ 1.0 * ((color >> 16) & 0xff) / 255,
+ 1.0 * ((color >> 8) & 0xff) / 255,
+ 1.0 * (color & 0xff) / 255,
opacity);
} else {
- CAIRO_SET_SOURCE_RGB (cr, brush->color);
+ CAIRO_SET_SOURCE_RGB (cr, color);
}
cairo_fill (cr);
if (opacity < 0.99)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic