<!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 Wednesday 09 September 2009, Dmitry Kazakov wrote:<br>
&gt; &gt; to use such a solution for Shiva based filters, since OpenShiva doesn't<br>
&gt; &gt; know anything about masks and selections.<br>
&gt;<br>
&gt; I don't know how to make a benchmark of that, i guess, it would be<br>
&gt; interesting to look at. We could test for the cold-cache problem at least.<br>
&gt; (We could assume that big holes in a selection are quite rare and not very<br>
&gt; important).<br>
To benchmark that, since currently it doesn't work, it's quiet easy to test the speed of method 2.<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>You just have to make something like:<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>* KisPaintDevice tmp;<br>
* filter-&gt;process(KisProcessInfo(src, src.origin() ), KisProcessInfo(tmp, QPoint(0,0), selection()), size);<br>
* then apply the mask on dst<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>And see the overhead of applying the mask. It's still worth to pass the selection, so that we don't compute pixel value when the pixel is unselected.<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>To do a fair comparison, it would be nice to then modify the filter with the method of 1).<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>Thinking about that, the highest cost will be the creation of tiles for the tmp KisPaintDevice and the need to iterate twice.<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>-- <br>
Cyrille Berger</p></body></html>