Review Request 126980: Scale blurbehind and backgroundcontrast besides translating

Marco Martin notmart at gmail.com
Thu Feb 4 12:08:06 UTC 2016



> On Feb. 3, 2016, 9:43 p.m., Thomas Lübking wrote:
> > effects/backgroundcontrast/contrast.cpp, line 383
> > <https://git.reviewboard.kde.org/r/126980/diff/1/?file=442652#file442652line383>
> >
> >     This looks fishy - and QTransform a tiny bit clumsy.
> >     
> >     Does this work:
> >     
> >     QVector shapeRects = shape.rects();
> >     shape = QRegion(); // clear
> >     foreach (QRect r, shapeRects) {
> >        r.moveTo(r.x() * data.xScale() + data.xTranslation(),
> >                 r.y() * data.yScale() + data.yTranslation());
> >        r.setWidth(r.width() * data.xScale());
> >        r.setHeight(r.height() * data.yScale());
> >        shape |= r;
> >     }
> >     
> >     the multiplications might need to be put into qRound or qCeil to avoid glitches.
> >     
> >     This spares several qregion copies, conversions into and out of painter paths and the second shape translation.
> 
> Marco Martin wrote:
>     hmm, nope, translation seems off.
>     investigating
> 
> Marco Martin wrote:
>     to make it work, i have to do it like before:
>                 QPoint pt = shape.boundingRect().topLeft();
>                 QVector<QRect> shapeRects = shape.rects();
>                 shape = QRegion(); // clear
>                 foreach (QRect r, shapeRects) {
>                     r.moveTo((r.x() - pt.x()) * data.xScale() + data.xTranslation(),
>                                 (r.y() -pt.y()) * data.yScale() + data.yTranslation());
>                     r.setWidth(r.width() * data.xScale());
>                     r.setHeight(r.height() * data.yScale());
>                     shape |= r;
>                 }
>                 shape = shape.translated(pt.x(), pt.y());
>                 shape = shape & region;

so, doesn't seem related to qtransform, but when the region is scaled, its boundingrect just has to be at 0,0 then retranslated back afterwards


- Marco


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126980/#review92037
-----------------------------------------------------------


On Feb. 3, 2016, 3:35 p.m., Marco Martin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/126980/
> -----------------------------------------------------------
> 
> (Updated Feb. 3, 2016, 3:35 p.m.)
> 
> 
> Review request for kwin and Plasma.
> 
> 
> Repository: kwin
> 
> 
> Description
> -------
> 
> related to https://git.reviewboard.kde.org/r/126968/
> this is only the part which adds support for scaled windows to blur and contrast
> 
> 
> Diffs
> -----
> 
>   effects/backgroundcontrast/contrast.cpp 168deb0 
>   effects/blur/blur.cpp a360f03 
> 
> Diff: https://git.reviewboard.kde.org/r/126980/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Marco Martin
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160204/8354f56c/attachment.html>


More information about the Plasma-devel mailing list