<div class="gmail_quote">So the comment I propose mixing what you said with my understanding:</div><div class="gmail_quote"><br></div><div class="gmail_quote">I&#39;m an abstract class which introduce a filter between a drawing request and the final output, handled by #mapColor:</div>

<div class="gmail_quote"><br></div><div class="gmail_quote"><meta charset="utf-8">For each potential pixel operation like: source -&gt; op -&gt; output<br>it introducing a color mapping stage: source -&gt; op -&gt; mapping -&gt; output</div>


<div class="gmail_quote"><br></div><div class="gmail_quote">Then #mapColor: can be redefined in subclasses to implement more specific behavior. For example:</div><div class="gmail_quote">- ShadowDrawingCanvas will replace the rendered color with the color of shadow (if not transparent).<br>

- AlphaBlendingCanvas will add or intensify alpha of rendered color.<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">For an easy to understand example see  #drawPolygon:color:borderWidth:borderColor:</div>

<div class="gmail_quote"><br></div><div class="gmail_quote"><meta charset="utf-8">ShadowDrawingCanvas:</div><div class="gmail_quote">see ColorMappingCanvas comment.</div><div class="gmail_quote"><br></div><div class="gmail_quote">

<meta charset="utf-8">AlphaBlendingCanvas:</div>see ColorMappingCanvas comment.<div class="gmail_quote"><br></div><div class="gmail_quote"><br></div>
<div class="gmail_quote">Laurent.</div><div class="gmail_quote"><br></div><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" target="_blank">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" target="_blank">laurent.laffont@gmail.com</a>&gt; wrote:<br>



&gt; Today:  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>
<font color="#888888"><br>
<br>
--<br>
Best regards,<br>
Igor Stasenko AKA sig.<br>
<br>
</font></blockquote></div><br>