From 89b7cde3a6585abba6cf1f3efb8f12fae8bd16f2 Mon Sep 17 00:00:00 2001 From: Robin Lee Date: Thu, 12 Nov 2020 19:12:30 +0800 Subject: [PATCH 3/6] build fix --- plugins/kwineffects/blur/blur.cpp | 15 +++++++++------ plugins/kwineffects/blur/blur.h | 2 +- plugins/kwineffects/multitasking/data.qrc | 4 ---- plugins/kwineffects/multitasking/multitasking.cpp | 2 +- plugins/kwineffects/multitasking/multitasking.h | 2 +- .../multitasking/translations/multitasking.ts | 11 ----------- .../translations/multitasking_zh_CN.ts | 11 ----------- .../kwineffects/scissor-window/scissorwindow.cpp | 7 ++++--- .../kwineffects/scissor-window/scissorwindow.h | 2 +- 9 files changed, 17 insertions(+), 39 deletions(-) delete mode 100644 plugins/kwineffects/multitasking/translations/multitasking.ts delete mode 100644 plugins/kwineffects/multitasking/translations/multitasking_zh_CN.ts diff --git a/plugins/kwineffects/blur/blur.cpp b/plugins/kwineffects/blur/blur.cpp index 9339a1fab..45b994c14 100644 --- a/plugins/kwineffects/blur/blur.cpp +++ b/plugins/kwineffects/blur/blur.cpp @@ -429,8 +429,8 @@ QRegion BlurEffect::expand(const QRegion ®ion) const { QRegion expanded; - for (const QRect &rect : region.rects()) { - expanded += expand(rect); + for (auto it = region.begin(); it != region.end(); ++it) { + expanded += expand(*it); } return expanded; @@ -470,7 +470,8 @@ void BlurEffect::uploadRegion(QVector2D *&map, const QRegion ®ion, const int for (int i = 0; i <= downSampleIterations; i++) { const int divisionRatio = (1 << i); - for (const QRect &r : region.rects()) { + for (auto it = region.begin(); it != region.end(); ++it) { + const QRect& r = *it; const QVector2D topLeft( r.x() / divisionRatio, r.y() / divisionRatio); const QVector2D topRight( (r.x() + r.width()) / divisionRatio, r.y() / divisionRatio); const QVector2D bottomLeft( r.x() / divisionRatio, (r.y() + r.height()) / divisionRatio); @@ -536,7 +537,8 @@ void BlurEffect::prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int t // to blur an area partially we have to shrink the opaque area of a window QRegion newClip; const QRegion oldClip = data.clip; - for (const QRect &rect : data.clip.rects()) { + for (auto it = data.clip.begin(); it != data.clip.end(); ++it) { + const QRect &rect = *it; newClip |= rect.adjusted(m_expandSize, m_expandSize, -m_expandSize, -m_expandSize); } data.clip = newClip; @@ -623,7 +625,8 @@ void BlurEffect::paintWindow(EffectWindow *w, int mask, QRegion region, WindowPa if (scaled) { QPoint pt = shape.boundingRect().topLeft(); QRegion scaledShape; - for (QRect r : shape.rects()) { + for (auto it = shape.cbegin(); it != shape.cend(); ++it) { + QRect r = *it; r.moveTo(pt.x() + (r.x() - pt.x()) * data.xScale() + data.xTranslation(), pt.y() + (r.y() - pt.y()) * data.yScale() + data.yTranslation()); r.setWidth(r.width() * data.xScale()); @@ -647,7 +650,7 @@ void BlurEffect::paintWindow(EffectWindow *w, int mask, QRegion region, WindowPa effects->drawWindow(w, mask, region, data); } -void BlurEffect::paintEffectFrame(EffectFrame *frame, QRegion region, double opacity, double frameOpacity) +void BlurEffect::paintEffectFrame(EffectFrame* frame, const QRegion ®ion, double opacity, double frameOpacity) { const QRect screen = effects->virtualScreenGeometry(); bool valid = m_renderTargetsValid && m_shader && m_shader->isValid(); diff --git a/plugins/kwineffects/blur/blur.h b/plugins/kwineffects/blur/blur.h index 7c76a8244..58889bc8a 100644 --- a/plugins/kwineffects/blur/blur.h +++ b/plugins/kwineffects/blur/blur.h @@ -58,7 +58,7 @@ public: void prePaintScreen(ScreenPrePaintData &data, int time) override; void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time) override; void paintWindow(EffectWindow *w, int mask, QRegion region, WindowPaintData &data) override; - void paintEffectFrame(EffectFrame *frame, QRegion region, double opacity, double frameOpacity) override; + void paintEffectFrame(EffectFrame* frame, const QRegion ®ion, double opacity, double frameOpacity) override; bool provides(Feature feature) override; diff --git a/plugins/kwineffects/multitasking/data.qrc b/plugins/kwineffects/multitasking/data.qrc index 15f9d8029..d7572793d 100644 --- a/plugins/kwineffects/multitasking/data.qrc +++ b/plugins/kwineffects/multitasking/data.qrc @@ -21,8 +21,4 @@ data/unsticked_normal.svg data/unsticked_press.svg - - translations/multitasking_zh_CN.qm - translations/multitasking.qm - diff --git a/plugins/kwineffects/multitasking/multitasking.cpp b/plugins/kwineffects/multitasking/multitasking.cpp index 934f83dce..5580c291d 100644 --- a/plugins/kwineffects/multitasking/multitasking.cpp +++ b/plugins/kwineffects/multitasking/multitasking.cpp @@ -575,7 +575,7 @@ void MultitaskingEffect::prePaintScreen(ScreenPrePaintData &data, int time) effects->prePaintScreen(data, time); } -void MultitaskingEffect::paintScreen(int mask, QRegion region, ScreenPaintData &data) +void MultitaskingEffect::paintScreen(int mask, const QRegion& region, ScreenPaintData &data) { effects->paintScreen(mask, region, data); } diff --git a/plugins/kwineffects/multitasking/multitasking.h b/plugins/kwineffects/multitasking/multitasking.h index 5874abdcb..8ae78fc02 100644 --- a/plugins/kwineffects/multitasking/multitasking.h +++ b/plugins/kwineffects/multitasking/multitasking.h @@ -256,7 +256,7 @@ public: // Screen painting virtual void prePaintScreen(ScreenPrePaintData &data, int time) override; - virtual void paintScreen(int mask, QRegion region, ScreenPaintData &data) override; + virtual void paintScreen(int mask, const QRegion& region, ScreenPaintData &data) override; virtual void postPaintScreen() override; // Window painting diff --git a/plugins/kwineffects/multitasking/translations/multitasking.ts b/plugins/kwineffects/multitasking/translations/multitasking.ts deleted file mode 100644 index 40826e464..000000000 --- a/plugins/kwineffects/multitasking/translations/multitasking.ts +++ /dev/null @@ -1,11 +0,0 @@ - - - - - thumbmanager - - Drag upwards to remove - - - - diff --git a/plugins/kwineffects/multitasking/translations/multitasking_zh_CN.ts b/plugins/kwineffects/multitasking/translations/multitasking_zh_CN.ts deleted file mode 100644 index ffa9950f3..000000000 --- a/plugins/kwineffects/multitasking/translations/multitasking_zh_CN.ts +++ /dev/null @@ -1,11 +0,0 @@ - - - - - thumbmanager - - Drag upwards to remove - 向上拖拽删除 - - - diff --git a/plugins/kwineffects/scissor-window/scissorwindow.cpp b/plugins/kwineffects/scissor-window/scissorwindow.cpp index c366a94f5..9205ff4db 100644 --- a/plugins/kwineffects/scissor-window/scissorwindow.cpp +++ b/plugins/kwineffects/scissor-window/scissorwindow.cpp @@ -189,21 +189,22 @@ ScissorWindow::ScissorWindow(QObject *, const QVariantList &) } } -void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, QRegion region, KWin::WindowPaintData &data) +void ScissorWindow::drawWindow(KWin::EffectWindow *w, int mask, const QRegion& orig_region, KWin::WindowPaintData &data) { // 工作区特效会使用PAINT_WINDOW_LANCZOS绘制,此时不支持多次调用Effect::drawWindow, // 否则只会显示第一次调用绘制的内容, 因此在这种模式下禁用掉窗口裁剪特效 if (!w->isPaintingEnabled() || (mask & PAINT_WINDOW_LANCZOS)) { - return Effect::drawWindow(w, mask, region, data); + return Effect::drawWindow(w, mask, orig_region, data); } MaskCache::TextureData mask_texture = MaskCache::instance()->getTextureByWindow(w); if (!mask_texture) { - return Effect::drawWindow(w, mask, region, data); + return Effect::drawWindow(w, mask, orig_region, data); } QRegion corner_region; + QRegion region = orig_region; if (!mask_texture->customMask) { const QRect window_rect = w->geometry(); diff --git a/plugins/kwineffects/scissor-window/scissorwindow.h b/plugins/kwineffects/scissor-window/scissorwindow.h index f4e18f739..75a270a37 100644 --- a/plugins/kwineffects/scissor-window/scissorwindow.h +++ b/plugins/kwineffects/scissor-window/scissorwindow.h @@ -39,7 +39,7 @@ public: explicit ScissorWindow(QObject *parent = nullptr, const QVariantList &args = QVariantList()); - void drawWindow(KWin::EffectWindow* w, int mask, QRegion region, KWin::WindowPaintData& data) override; + void drawWindow(KWin::EffectWindow* w, int mask, const QRegion& orig_region, KWin::WindowPaintData& data) override; private: KWin::GLShader *m_shader = nullptr; -- 2.26.2