From 545dda7208708b03a763cb4ca6e532e9fa07226a Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Sun, 3 Dec 2017 16:14:25 +0100 Subject: [PATCH] [PaintClipper::Iterator] Operate on QRegion instead of QVector of rects Differential Revision: https://phabricator.kde.org/D9135 --- libkwineffects/kwineffects.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libkwineffects/kwineffects.cpp b/libkwineffects/kwineffects.cpp index fdcae25da6..47aeb24379 100644 --- a/libkwineffects/kwineffects.cpp +++ b/libkwineffects/kwineffects.cpp @@ -1490,14 +1490,14 @@ QRegion PaintClipper::paintArea() struct PaintClipper::Iterator::Data { Data() : index(0) {} int index; - QVector< QRect > rects; + QRegion region; }; PaintClipper::Iterator::Iterator() : data(new Data) { if (clip() && effects->isOpenGLCompositing()) { - data->rects = paintArea().rects(); + data->region = paintArea(); data->index = -1; next(); // move to the first one } @@ -1523,7 +1523,7 @@ bool PaintClipper::Iterator::isDone() if (!clip()) return data->index == 1; // run once if (effects->isOpenGLCompositing()) - return data->index >= data->rects.count(); // run once per each area + return data->index >= data->region.rectCount(); // run once per each area #ifdef KWIN_HAVE_XRENDER_COMPOSITING if (effects->compositingType() == XRenderCompositing) return data->index == 1; // run once @@ -1541,10 +1541,10 @@ QRect PaintClipper::Iterator::boundingRect() const if (!clip()) return infiniteRegion(); if (effects->isOpenGLCompositing()) - return data->rects[ data->index ]; + return *(data->region.begin() + data->index); #ifdef KWIN_HAVE_XRENDER_COMPOSITING if (effects->compositingType() == XRenderCompositing) - return paintArea().boundingRect(); + return data->region.boundingRect(); #endif abort(); return infiniteRegion();