<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 14, 2011, at 8:51 50PM, laurent laffont wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Mon, Feb 14, 2011 at 7:57 PM, Igor Stasenko <span dir="ltr">&lt;<a href="mailto:siguctua@gmail.com">siguctua@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

On 14 February 2011 18:45, laurent laffont &lt;<a href="mailto:laurent.laffont@gmail.com">laurent.laffont@gmail.com</a>&gt; wrote:<br>
&gt; Today: &nbsp;ColorMappingCanvas<br>
&gt;<br>
<br>
As far as i understood, this class is abstract, and its subclasses<br>
implement more specific behavior<br>
- shadow<br>
- semitransparency mapping<br>
<br>
<br>
The idea of is kind of canvas is to modify/filter the final output in<br>
rendering pipe..<br>
i.e., for each potential pixel operation like:<br>
<br>
source -&gt; op -&gt; output<br>
<br>
it introducing a color mapping stage:<br>
<br>
source -&gt; op -&gt; mapping -&gt; output<br>
<br>
<br>
So, then for instance you could make a subclass which could turn all<br>
colors to be grayscale (disregarding that initial input was in<br>
colors).<br>
<br>
in fact i think this guy took wrong direction. It is much more<br>
effective to let the canvas to draw whatever it wants to some<br>
backup/temporary surface, and once it done, simply blit + color-map<br>
result to destination form using one, single strike.<br></blockquote><div><br></div><div><br></div><div>ah ah, it seems last COTDC are:</div><div>- this class is bad written</div><div>- this is not used</div><div>- nobody understand</div>

<div><br></div><div>still lot of work ;)</div><div><br></div><div>Laurent</div></div></blockquote><br></div><div>ShadowCanvas is used in the Glamour theme when fastDragForMorphic is disabled.</div><div><br></div><div>Cheers,</div><div>Henry</div><div><br></div><div>PS. You'll see a noticable increase in dragging performance (at least on non-Cog vms)if you change configureWindowBorderFor: &nbsp;to return a non-translucent value.</div><div>This is because&nbsp;wantsToBeCachedByHand returns false when the morph isTranslucent.</div><div><br></div><div>I don't really think the restriction makes much sense, a canvas should have no problem drawing a cached image with translucency, but changing it probably includes revisiting how paint rules are chosen, which will be a huge pain for whoever does it.</div><div>&nbsp;</div><br></body></html>