<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">On Friday 13 March 2009, LukasT.dev@gmail.com wrote:<br>
&gt; What would be the solution for paintops?<br>
&gt; Made own class for paintPolygon? Or optimalize paintPolygon somehow in<br>
&gt; KisPainter (I don't have idea how to cache created objects in KisPainter :(<br>
&gt; )?<br>
Optimize paintPolygon.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>I don't share your analysis of the problem :/ In the callgrind you give, the creation of selection and objects isn't visible at all. The main cost I see is the computation of exactBounds (and worse here, we pay it twice). One might note, that those exactBounds aren't needed in this case, since we allready know the extent of the function.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>An other area of improvement could be to not use the QPainter, and to directly fill the mask, there is most likely going to be a huge speed up as well, since QPainter::fillRect is to general for our purpose.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>-- <br>
Cyrille Berger</p></body></html>