> On 2010-10-25 20:43:20, Marco Martin wrote:
> > /trunk/KDE/kdelibs/plasma/svg.cpp, line 259
> > <http://svn.reviewboard.kde.org/r/5689/diff/3/?file=40220#file40220line259>
> >
> >     this creates a renderer too often.
> >     since the purpose of the cache is avoid to create renderers this is not 
> > good
> 
> Manuel Mommertz wrote:
>     Right, but this is solvable by inserting the size hints in 
> SvgPrivate::localRectCache.
> 
> Ingomar Wesp wrote:
>     > Right, but this is solvable by inserting the size hints in 
> SvgPrivate::localRectCache.
>     
>     To be honest, I'm not sure I understand the cache related code well 
> enough, so please be patient with me here...
>     
>     From what I (think I) understand, you intend to move the search for the 
> best fit to SvgPrivate::findAndCacheElementRect and insert it into the 
> theme's rect cache? Because if I'm not mistaken, just adding it to the 
> localRectCache would not allow the entry to be persisted and would thus not 
> help prevent the creation of a renderer in the future.

It is a bit more work than I thought. But it is doable in the following way:

If the renderer is created:
* Load SVG and get size hints
* Store size hints in Plasma::SvgPrivate (not in the renderer) and in 
Plasma::Theme's rectscache

If Plasma::Svg is created
* Try to load size hints from Plasma::Theme's rectscache and store them localy

On Rendering:
* Use the size hints


For this to work we need support in Plasma::Theme to get a list of available 
rects. Should be easy to implement.


Questions:
* How fast is KConfig? If it is fast enaugh, it might not be needed to store 
size hints localy. But I doubt it is.
* Should Plasma::Theme provide a full list of all rects or should filtering for 
size hints take effect? Personaly I think a full list is better, as this might 
be used for other things in the future.


- Manuel


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/5689/#review8349
-----------------------------------------------------------


On 2010-10-25 23:54:14, Ingomar Wesp wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://svn.reviewboard.kde.org/r/5689/
> -----------------------------------------------------------
> 
> (Updated 2010-10-25 23:54:14)
> 
> 
> Review request for Plasma.
> 
> 
> Summary
> -------
> 
> Previously, if an SVG contained size hinted elements, they were only used 
> when the display size matched the size hint exactly. This patch tries to 
> relax this condition by searching for the smallest size hinted element that 
> is still bigger than the display size (in order for the element to be chosen, 
> it also has to have the same aspect ratio). If no such element can be found, 
> it falls back to the normal element id as passed.
> 
> In order to speed up the lookup (and because it appears to be impossible to 
> access the DOM of an already loaded SvgRenderer), all size hinted element ids 
> are stored in SharedSvgRenderer at load time.
> 
> I think it would be good to change the QRegExp based id fetching into a 
> proper DOM traversal. Are there any convenience functions in KDELibs that 
> allow easy iterating over all elements (couldn't find any) or do I have to 
> implement that myself based on Qt's DOM classes?
> 
> Please tell me what you think... Have I missed something?
> 
> 
> Diffs
> -----
> 
>   /trunk/KDE/kdelibs/plasma/private/svg_p.h 1189821 
>   /trunk/KDE/kdelibs/plasma/svg.cpp 1189821 
> 
> Diff: http://svn.reviewboard.kde.org/r/5689/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Ingomar
> 
>

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

Reply via email to