ShowPaint effect supports QPainter Compositing
This commit is contained in:
parent
79358541ea
commit
3776160bb7
2 changed files with 14 additions and 0 deletions
|
@ -31,6 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#include <qcolor.h>
|
#include <qcolor.h>
|
||||||
|
#include <QPainter>
|
||||||
|
|
||||||
namespace KWin
|
namespace KWin
|
||||||
{
|
{
|
||||||
|
@ -60,6 +61,9 @@ void ShowPaintEffect::paintScreen(int mask, QRegion region, ScreenPaintData& dat
|
||||||
if (effects->compositingType() == XRenderCompositing)
|
if (effects->compositingType() == XRenderCompositing)
|
||||||
paintXrender();
|
paintXrender();
|
||||||
#endif
|
#endif
|
||||||
|
if (effects->compositingType() == QPainterCompositing) {
|
||||||
|
paintQPainter();
|
||||||
|
}
|
||||||
if (++color_index == sizeof(colors) / sizeof(colors[ 0 ]))
|
if (++color_index == sizeof(colors) / sizeof(colors[ 0 ]))
|
||||||
color_index = 0;
|
color_index = 0;
|
||||||
}
|
}
|
||||||
|
@ -115,4 +119,13 @@ void ShowPaintEffect::paintXrender()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ShowPaintEffect::paintQPainter()
|
||||||
|
{
|
||||||
|
QColor color = colors[ color_index ];
|
||||||
|
color.setAlphaF(0.2);
|
||||||
|
foreach (const QRect & r, painted.rects()) {
|
||||||
|
effects->scenePainter()->fillRect(r, color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
|
@ -37,6 +37,7 @@ public:
|
||||||
private:
|
private:
|
||||||
void paintGL();
|
void paintGL();
|
||||||
void paintXrender();
|
void paintXrender();
|
||||||
|
void paintQPainter();
|
||||||
QRegion painted; // what's painted in one pass
|
QRegion painted; // what's painted in one pass
|
||||||
int color_index;
|
int color_index;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue