Review Request 115923: Render SvgItem natively rather than going through QQuickPaintedItem

David Edmundson david at davidedmundson.co.uk
Fri Feb 21 15:32:53 UTC 2014


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

(Updated Feb. 21, 2014, 3:32 p.m.)


Review request for Plasma.


Changes
-------

It's a learning experience...
Moved the SVG updating outside the paint loop.

Prevents a flicker.


Repository: plasma-framework


Description
-------

The rationale behind this patch is on the mailing list in the thread "Minutes Monday" 

This doesn't boost performance or save memory much, but it paves the way for texture sharing, faster resizing, and plenty of other things.

Based on Frederick's comment I have reverted my changes to use QImage everywhere, otherwise we lose out on the local QPixmap cache in KImageCache.
Changes to plasmacore are minimal.

I'm currently porting FrameSVG which is where we should see more gains, but I thought I should get this reviewed/merged in parallel.

I have only seen one regression which is in the analog clock.
Some odd code in the analog clock (by me apparently!) means the width is dependent on the current width, which due to some changes in this patch ends up in a constant spiral getting to infinitely sized and explode.  


Changelog (in reverse order):
Remove manual isDirty tracking in SvgItem
Always resize the node geometry on resizes
Update to paint to fill the size of the object, not the size of texture
Fix leaking texture
Add convenient QImage image() getter in SVG
Avoid repainting if node is not changed
Render SvgItem natively rather than going through QQuickPaintedItem


Diffs (updated)
-----

  src/declarativeimports/core/svgitem.h c8be7cc 
  src/declarativeimports/core/svgitem.cpp e90751a 
  src/plasma/svg.h 01d98f8 
  src/plasma/svg.cpp 9ec2aa5 

Diff: https://git.reviewboard.kde.org/r/115923/diff/


Testing
-------


Thanks,

David Edmundson

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20140221/7d6f9d9d/attachment.html>


More information about the Plasma-devel mailing list