<br><br><div class="gmail_quote">On Fri, Oct 2, 2009 at 5:12 PM, Boudewijn Rempt <span dir="ltr">&lt;<a href="mailto:boud@valdyas.org">boud@valdyas.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Moving discussion to the mailing list again...<br>
<div class="im"><br>
<br>
&gt; &gt; I&#39;ll cc the the mailing list, since this is a broader issue.<br>
&gt; &gt;<br>
&gt; &gt; &gt; Could you explain me how does this change help blur filter?<br>
&gt; &gt;<br>
&gt; &gt; Not really, maybe Cyrille can -- it&#39;s something to do with the<br>
&gt; &gt; convolution painter.<br>
&gt;<br>
&gt; Cyrille, ping!<br>
&gt;<br>
&gt; &gt; &gt; The point is, we can&#39;t do a bitBlt() here as needRect of the filter<br>
&gt; &gt; &gt; might be much bigger than actual rc, given to this function. Actual<br>
&gt; &gt; &gt; needRect<br>
&gt; &gt;<br>
&gt; &gt; is<br>
&gt; &gt;<br>
&gt; &gt; &gt;  calculated in KisLayer::updateProjection and is know only there.<br>
&gt; &gt;<br>
&gt; &gt; Maybe it&#39;s better to have it in kis_filter_mask instead? For now it&#39;s<br>
&gt; &gt; unfortunately needed, and I think a refactor of this thing should wait<br>
&gt; &gt; until<br>
&gt; &gt; 2.2.<br>
&gt;<br>
&gt; Unfortunately, not. NeedRects of all the masks have to be be calculated<br>
&gt; together. Take a look at KisLayer::masksChangeRect/masksNeedRect functions.<br>
<br>
</div>Fortunately, it works for those filters that need a copy, namely the<br>
convolution filters.<br></blockquote><div><br>It depends on a type of a bug inside convolution painter. If it reads out of dst device, then we&#39;ll get the same border-effect problem that i have been fixing for about a month. If it just uses dst as a default value, it&#39;ll work, but we can get even more subtle problems in the future, like a difference between changeRect of a filter and rc-value transmitted to the decorateRect() function.<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">
&gt; It means that filters do not conform KisFilter&#39;s interface of src and dst.<br>
&gt; And we shouldn&#39;t introduce workaround for it. We just need to make the<br>
&gt; filter follow the rules and fix it =) (i hope, blur filter is the only<br>
&gt;  one?)<br>
<br>
</div>All convolution filters have the same problem. It&#39;s not a problem with the<br>
filters per se, but with the convolution painter.<br></blockquote><div><br>damn!<br>Well, Boud, isn&#39;t it easier to fix a bug in convolution painter than to create a garbage from our KisLayer/Mask code?<br> </div><br clear="all">
</div>PS:<br>I simply can&#39;t understand, why are you going to fix KisLayer and KisMask, if you know exactly that real problem is inside KisConvolutionPainter?<br><br>I don&#39;t understand something, do i?<br><br>-- <br>
Dmitry Kazakov<br>