> On March 4, 2015, 2:10 p.m., David Edmundson wrote:
> > src/plasma/svg.cpp, line 762
> > <https://git.reviewboard.kde.org/r/122673/diff/2/?file=352927#file352927line762>
> >
> >     Returning pixmaps with a doubled size with no devicePixelRatio set is 
> > going to screw up the client in a QPainter based app.
> >     
> >     We want some sort 
> >     same for ::image()
> >     
> >     for the paint() it doesn't matter as we're doing the painting ourselves 
> > and ready explicitly say our sourceRect is larger than the targetRect which 
> > is accompilishing the same thing
> 
> Marco Martin wrote:
>     if the client does svg->setDevicePixelRatio(2)
>     then painter.drawPixmap(svg->pixmap()) with the painter with a different 
> deviepixelratio than the one he just put on the svg it's his problem no?
> 
> David Edmundson wrote:
>     No.
>     
>     If I have:
>     
>     QPixmap myTarget(40,40)
>     myTarget.setDevicePixelRatio(2); //so geometry size is 20x20
>     
>     QPainter p(&myTarget);
>     p.drawPixmap(QPoint(0,0), someSvg.pixmap(20,20));  /// we would expect 
> this to draw all 40x40 pixels neatly 
>     
>     however QPainter will be smart and detect that the source and target 
> sources have different DPRs, so it will double the scale of the target pixmap.
>     and will paint 80x80 pixels into that 40x40 space; so you'll only see 
> quarter of the picture.

right, should be adressed in last one


- Marco


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


On March 6, 2015, 2:34 p.m., Marco Martin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/122673/
> -----------------------------------------------------------
> 
> (Updated March 6, 2015, 2:34 p.m.)
> 
> 
> Review request for Plasma.
> 
> 
> Repository: plasma-framework
> 
> 
> Description
> -------
> 
> (still in progress but here for feedback)
> when QT_DEVICE_PIXELRATIO is something different from 1, the pixmaps 
> generated by Svg will be scaled up to give a proper texture.
> 
> This is complementary but not replacing our current approach:
> the pixelratio that can be accessed by units is now in relation to the qt 
> pixel ratio, spacings are also adjusted accordingly (therefore, spaces and 
> sizes won't need an integer value like pixelratio)
> 
> svg introduces also a scaleFactor property (that is pretty much like its old 
> pixelRatio)
> basically, scalefactor, will scale both the textures *and* all the reported 
> sizes, (old method) pixelratio just scales textures without altering measures 
> (like qt pixelratio likes)
> they are now both used and combined, so a) we can have this working before 
> supporting officially qt pixelratio when will be good enough but b) keeping 
> the old mwthod working for the time being c) by using both at the sae time we 
> can at least scale sizes of values != from integers, for screens that are too 
> dense for 1 and not enough for 2
> 
> 
> Diffs
> -----
> 
>   src/declarativeimports/core/framesvgitem.cpp dae8a4f 
>   src/declarativeimports/core/iconitem.cpp 03f40c4 
>   src/declarativeimports/core/svgitem.cpp 570c1c3 
>   src/declarativeimports/core/units.h 6c038ba 
>   src/declarativeimports/core/units.cpp a740145 
>   src/plasma/framesvg.cpp 1bb3510 
>   src/plasma/private/svg_p.h a31d0ac 
>   src/plasma/svg.h 0bcbd7a 
>   src/plasma/svg.cpp 0a0db5e 
> 
> Diff: https://git.reviewboard.kde.org/r/122673/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Marco Martin
> 
>

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to