<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>set_difference_blender</title>
		<link>http://www.allegro.cc/forums/view/606235</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 30 Jan 2011 03:48:25 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>set_difference_blender (in 4.2 and 4.4) uses the absolute differences between pixel components instead of clamping, does anyone know why?
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">/* _blender_difference16:</span>
<span class="c"> *  16 bit difference blender function.</span>
<span class="c"> */</span>
<span class="k1">unsigned</span> <span class="k1">long</span> _blender_difference16<span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">long</span> x, <span class="k1">unsigned</span> <span class="k1">long</span> y, <span class="k1">unsigned</span> <span class="k1">long</span> n<span class="k2">)</span>
<span class="k2">{</span>
   <span class="k1">return</span> BLEND<span class="k2">(</span><span class="n">16</span>, ABS<span class="k2">(</span><a href="http://www.allegro.cc/manual/getr16"><span class="a">getr16</span></a><span class="k2">(</span>y<span class="k2">)</span> <span class="k3">-</span> <a href="http://www.allegro.cc/manual/getr16"><span class="a">getr16</span></a><span class="k2">(</span>x<span class="k2">)</span><span class="k2">)</span>,
                    ABS<span class="k2">(</span><a href="http://www.allegro.cc/manual/getg16"><span class="a">getg16</span></a><span class="k2">(</span>y<span class="k2">)</span> <span class="k3">-</span> <a href="http://www.allegro.cc/manual/getg16"><span class="a">getg16</span></a><span class="k2">(</span>x<span class="k2">)</span><span class="k2">)</span>,
                    ABS<span class="k2">(</span><a href="http://www.allegro.cc/manual/getb16"><span class="a">getb16</span></a><span class="k2">(</span>y<span class="k2">)</span> <span class="k3">-</span> <a href="http://www.allegro.cc/manual/getb16"><span class="a">getb16</span></a><span class="k2">(</span>x<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
Instead of something like
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">return</span> BLEND<span class="k2">(</span><span class="n">16</span>, MAX<span class="k2">(</span><a href="http://www.allegro.cc/manual/getr16"><span class="a">getr16</span></a><span class="k2">(</span>y<span class="k2">)</span> <span class="k3">-</span> <a href="http://www.allegro.cc/manual/getr16"><span class="a">getr16</span></a><span class="k2">(</span>x<span class="k2">)</span>, <span class="n">0</span><span class="k2">)</span> ...<span class="k2">)</span>
</pre></div></div><p>

I tested both ways and clamping to 0 seems to produce the desired effect.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kazzmir)</author>
		<pubDate>Sun, 30 Jan 2011 03:48:25 +0000</pubDate>
	</item>
</rss>
