<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Alternate colour blit</title>
		<link>http://www.allegro.cc/forums/view/591053</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 19 Apr 2007 22:30:33 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Generally what I tried to do, is considered bad and hackish... And there are plenty of topics about it, I think.<br /><a href="http://www.allegro.cc/forums/thread/590684/660082#target"> And I was told not to</a>, but I couldn&#39;t resist!<br />But this is what I basically copied from the allegro source to display one or more sprites with indexed colour in different colours:<br />To display a sprite with an alternate set of colours.</p><p>It doesn&#39;t care about image boundaries though. And there are probably other flaws, perhaps you would like to tell me about, please? Basically it&#39;s working.</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include "aintern.h"</span></td></tr><tr><td class="number">3</td><td><span class="p">#include &lt;string.h&gt;</span></td></tr><tr><td class="number">4</td><td><span class="p">#define Charsize 1</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="k1">void</span> blit_from_256_custom_noob<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>src, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>dest, <span class="k1">int</span> s_x, <span class="k1">int</span> s_y, <span class="k1">int</span> d_x, <span class="k1">int</span> d_y, <span class="k1">int</span> w, <span class="k1">int</span> h, <span class="k1">int</span> NOOB_OFFSET<span class="k2">)</span></td></tr><tr><td class="number">7</td><td><span class="k2">{</span></td></tr><tr><td class="number">8</td><td>   uintptr_t s, d<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>   <span class="k1">unsigned</span> <span class="k1">char</span> <span class="k3">*</span>ss<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>   <span class="k1">int</span> x, y, c, rc<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>   <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/bitmap_color_depth" target="_blank"><span class="a">bitmap_color_depth</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k3">=</span><span class="k3">=</span><span class="n">8</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">13</td><td>      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/is_memory_bitmap" target="_blank"><span class="a">is_memory_bitmap</span></a><span class="k2">(</span>src<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>                                           </td></tr><tr><td class="number">14</td><td>         <span class="c">/* fast version when reading from memory bitmap */</span>                  </td></tr><tr><td class="number">15</td><td>         bmp_select<span class="k2">(</span>dest<span class="k2">)</span><span class="k2">;</span>                                                   </td></tr><tr><td class="number">16</td><td>                                                                             </td></tr><tr><td class="number">17</td><td>         <span class="k1">for</span> <span class="k2">(</span>y<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> y<span class="k3">&lt;</span>h<span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>                                               </td></tr><tr><td class="number">18</td><td>            ss <span class="k3">=</span> src-&gt;line<span class="k2">[</span>s_y<span class="k3">+</span>y<span class="k2">]</span> <span class="k3">+</span> s_x<span class="k2">;</span>                                     </td></tr><tr><td class="number">19</td><td>            d <span class="k3">=</span> <a href="http://www.allegro.cc/manual/bmp_write_line" target="_blank"><span class="a">bmp_write_line</span></a><span class="k2">(</span>dest, d_y<span class="k3">+</span>y<span class="k2">)</span> <span class="k3">+</span> d_x<span class="k3">*</span>Charsize<span class="k2">;</span>                     </td></tr><tr><td class="number">20</td><td>                                                                                          </td></tr><tr><td class="number">21</td><td>            <span class="k1">for</span> <span class="k2">(</span>x<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> x<span class="k3">&lt;</span>w<span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>                                            </td></tr><tr><td class="number">22</td><td>               bmp_write8<span class="k2">(</span>d, <span class="k2">(</span><span class="k3">*</span>ss<span class="k2">)</span> <span class="k3">+</span> NOOB_OFFSET<span class="k2">)</span><span class="k2">;</span>                                 </td></tr><tr><td class="number">23</td><td>               ss<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>                                                         </td></tr><tr><td class="number">24</td><td>               d <span class="k3">+</span><span class="k3">=</span> Charsize<span class="k2">;</span>                                                   </td></tr><tr><td class="number">25</td><td>            <span class="k2">}</span>                                                                </td></tr><tr><td class="number">26</td><td>         <span class="k2">}</span>                                                                   </td></tr><tr><td class="number">27</td><td>                                                                             </td></tr><tr><td class="number">28</td><td>         <a href="http://www.allegro.cc/manual/bmp_unwrite_line" target="_blank"><span class="a">bmp_unwrite_line</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">;</span>                                             </td></tr><tr><td class="number">29</td><td>      <span class="k2">}</span>                                                                      </td></tr><tr><td class="number">30</td><td>      <span class="k1">else</span> <span class="k2">{</span>                                                                 </td></tr><tr><td class="number">31</td><td>         <span class="c">/* slower version when reading from the screen */</span>                   </td></tr><tr><td class="number">32</td><td>         <span class="k1">for</span> <span class="k2">(</span>y<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> y<span class="k3">&lt;</span>h<span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>                                               </td></tr><tr><td class="number">33</td><td>            s <span class="k3">=</span> <a href="http://www.allegro.cc/manual/bmp_read_line" target="_blank"><span class="a">bmp_read_line</span></a><span class="k2">(</span>src, s_y<span class="k3">+</span>y<span class="k2">)</span> <span class="k3">+</span> s_x<span class="k2">;</span>                             </td></tr><tr><td class="number">34</td><td>            d <span class="k3">=</span> <a href="http://www.allegro.cc/manual/bmp_write_line" target="_blank"><span class="a">bmp_write_line</span></a><span class="k2">(</span>dest, d_y<span class="k3">+</span>y<span class="k2">)</span> <span class="k3">+</span> d_x<span class="k3">*</span>Charsize<span class="k2">;</span>                     </td></tr><tr><td class="number">35</td><td>                                                                             </td></tr><tr><td class="number">36</td><td>            <span class="k1">for</span> <span class="k2">(</span>x<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> x<span class="k3">&lt;</span>w<span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>                                            </td></tr><tr><td class="number">37</td><td>               bmp_select<span class="k2">(</span>src<span class="k2">)</span><span class="k2">;</span>                                              </td></tr><tr><td class="number">38</td><td>               c <span class="k3">=</span> bmp_read8<span class="k2">(</span>s<span class="k2">)</span><span class="k2">;</span>                                             </td></tr><tr><td class="number">39</td><td>                                                                             </td></tr><tr><td class="number">40</td><td>               bmp_select<span class="k2">(</span>dest<span class="k2">)</span><span class="k2">;</span>                                             </td></tr><tr><td class="number">41</td><td>               bmp_write8<span class="k2">(</span>d, c<span class="k3">+</span>NOOB_OFFSET<span class="k2">)</span><span class="k2">;</span>        </td></tr><tr><td class="number">42</td><td>                                                                             </td></tr><tr><td class="number">43</td><td>               s<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>                                                          </td></tr><tr><td class="number">44</td><td>               d <span class="k3">+</span><span class="k3">=</span> Charsize<span class="k2">;</span>                                                   </td></tr><tr><td class="number">45</td><td>            <span class="k2">}</span>                                                                </td></tr><tr><td class="number">46</td><td>         <span class="k2">}</span>                                                                   </td></tr><tr><td class="number">47</td><td>                                                                             </td></tr><tr><td class="number">48</td><td>         <a href="http://www.allegro.cc/manual/bmp_unwrite_line" target="_blank"><span class="a">bmp_unwrite_line</span></a><span class="k2">(</span>src<span class="k2">)</span><span class="k2">;</span>                                              </td></tr><tr><td class="number">49</td><td>         <a href="http://www.allegro.cc/manual/bmp_unwrite_line" target="_blank"><span class="a">bmp_unwrite_line</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">;</span>                                             </td></tr><tr><td class="number">50</td><td>      <span class="k2">}</span>                                                                      </td></tr><tr><td class="number">51</td><td>   </td></tr><tr><td class="number">52</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">53</td><td>   <span class="k1">else</span><span class="k2">{</span></td></tr><tr><td class="number">54</td><td>&#160;</td></tr><tr><td class="number">55</td><td>   <span class="k1">int</span> <span class="k3">*</span>dest_palette_color<span class="k2">;</span></td></tr><tr><td class="number">56</td><td>&#160;</td></tr><tr><td class="number">57</td><td>   <span class="c">/* lookup table avoids repeated color format conversions */</span></td></tr><tr><td class="number">58</td><td>   <span class="k1">if</span> <span class="k2">(</span>_color_conv <span class="k3">&amp;</span> COLORCONV_KEEP_TRANS<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">59</td><td>      dest_palette_color <span class="k3">=</span> _AL_MALLOC_ATOMIC<span class="k2">(</span><span class="n">256</span><span class="k3">*</span><span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">60</td><td>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_566.html" target="_blank">memcpy</a><span class="k2">(</span>dest_palette_color, _palette_expansion_table<span class="k2">(</span><a href="http://www.allegro.cc/manual/bitmap_color_depth" target="_blank"><span class="a">bitmap_color_depth</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">)</span>, <span class="n">256</span><span class="k3">*</span><span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>&#160;</td></tr><tr><td class="number">62</td><td>           <span class="k1">int</span> depth, g <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td>           depth <span class="k3">=</span> <a href="http://www.allegro.cc/manual/bitmap_color_depth" target="_blank"><span class="a">bitmap_color_depth</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>     <span class="k1">if</span> <span class="k2">(</span>depth <span class="k3">=</span><span class="k3">=</span> <span class="n">8</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">65</td><td>        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/rgb_map" target="_blank"><span class="a">rgb_map</span></a><span class="k2">)</span></td></tr><tr><td class="number">66</td><td>                 rc <span class="k3">=</span> rgb_map-&gt;data<span class="k2">[</span><span class="n">31</span><span class="k2">]</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">31</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>        <span class="k1">else</span></td></tr><tr><td class="number">68</td><td>                 rc <span class="k3">=</span> <a href="http://www.allegro.cc/manual/bestfit_color" target="_blank"><span class="a">bestfit_color</span></a><span class="k2">(</span>_current_palette, <span class="n">63</span>, <span class="n">1</span>, <span class="n">63</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">70</td><td>     <span class="k1">else</span> <span class="k2">{</span></td></tr><tr><td class="number">71</td><td>        <span class="k1">do</span></td></tr><tr><td class="number">72</td><td>                 rc <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol_depth" target="_blank"><span class="a">makecol_depth</span></a><span class="k2">(</span>depth, <span class="n">255</span>, <span class="k3">+</span><span class="k3">+</span>g, <span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>              <span class="k1">while</span> <span class="k2">(</span>rc <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/bitmap_mask_color" target="_blank"><span class="a">bitmap_mask_color</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">75</td><td>&#160;</td></tr><tr><td class="number">76</td><td>      dest_palette_color<span class="k2">[</span><a href="http://www.allegro.cc/manual/MASK_COLOR_8" target="_blank"><span class="a">MASK_COLOR_8</span></a><span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/bitmap_mask_color" target="_blank"><span class="a">bitmap_mask_color</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>&#160;</td></tr><tr><td class="number">78</td><td>      <span class="k1">for</span> <span class="k2">(</span>c<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> c<span class="k3">&lt;</span><span class="n">256</span><span class="k2">;</span> c<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">79</td><td>         <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>c <span class="k3">!</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/MASK_COLOR_8" target="_blank"><span class="a">MASK_COLOR_8</span></a><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span></td></tr><tr><td class="number">80</td><td>             <span class="k2">(</span>dest_palette_color<span class="k2">[</span>c<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/bitmap_mask_color" target="_blank"><span class="a">bitmap_mask_color</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">81</td><td>            dest_palette_color<span class="k2">[</span>c<span class="k2">]</span> <span class="k3">=</span> rc<span class="k2">;</span></td></tr><tr><td class="number">82</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">83</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">84</td><td>   <span class="k1">else</span></td></tr><tr><td class="number">85</td><td>      dest_palette_color <span class="k3">=</span> _palette_expansion_table<span class="k2">(</span><a href="http://www.allegro.cc/manual/bitmap_color_depth" target="_blank"><span class="a">bitmap_color_depth</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">86</td><td>&#160;</td></tr><tr><td class="number">87</td><td>   <span class="c">/* worker macro */</span></td></tr><tr><td class="number">88</td><td>   <span class="p">#define EXPAND_BLIT(bits, dsize)                                          \</span></td></tr><tr><td class="number">89</td><td><span class="p">   {                                                                         \ </span></td></tr><tr><td class="number">90</td><td><span class="p">      if (is_memory_bitmap(src)) {                                           \ </span></td></tr><tr><td class="number">91</td><td><span class="p">         /* fast version when reading from memory bitmap */                  \ </span></td></tr><tr><td class="number">92</td><td><span class="p">         bmp_select(dest);                                                   \ </span></td></tr><tr><td class="number">93</td><td><span class="p">                                                                             \ </span></td></tr><tr><td class="number">94</td><td><span class="p">         for (y=0; y&lt;h; y++) {                                               \ </span></td></tr><tr><td class="number">95</td><td><span class="p">            ss = src-&gt;line[s_y+y] + s_x;                                     \ </span></td></tr><tr><td class="number">96</td><td><span class="p">            d = bmp_write_line(dest, d_y+y) + d_x*dsize;                     \ </span></td></tr><tr><td class="number">97</td><td><span class="p">                                                                             \ </span></td></tr><tr><td class="number">98</td><td><span class="p">            for (x=0; x&lt;w; x++) {                                            \ </span></td></tr><tr><td class="number">99</td><td><span class="p">               bmp_write##bits(d, dest_palette_color[(*ss)+NOOB_OFFSET]);                  \ </span></td></tr><tr><td class="number">100</td><td><span class="p">               ss++;                                                         \ </span></td></tr><tr><td class="number">101</td><td><span class="p">               d += dsize;                                                   \ </span></td></tr><tr><td class="number">102</td><td><span class="p">            }                                                                \ </span></td></tr><tr><td class="number">103</td><td><span class="p">         }                                                                   \ </span></td></tr><tr><td class="number">104</td><td><span class="p">                                                                             \ </span></td></tr><tr><td class="number">105</td><td><span class="p">         bmp_unwrite_line(dest);                                             \ </span></td></tr><tr><td class="number">106</td><td><span class="p">      }                                                                      \ </span></td></tr><tr><td class="number">107</td><td><span class="p">      else {                                                                 \ </span></td></tr><tr><td class="number">108</td><td><span class="p">         /* slower version when reading from the screen */                   \ </span></td></tr><tr><td class="number">109</td><td><span class="p">         for (y=0; y&lt;h; y++) {                                               \ </span></td></tr><tr><td class="number">110</td><td><span class="p">            s = bmp_read_line(src, s_y+y) + s_x;                             \ </span></td></tr><tr><td class="number">111</td><td><span class="p">            d = bmp_write_line(dest, d_y+y) + d_x*dsize;                     \ </span></td></tr><tr><td class="number">112</td><td><span class="p">                                                                             \ </span></td></tr><tr><td class="number">113</td><td><span class="p">            for (x=0; x&lt;w; x++) {                                            \ </span></td></tr><tr><td class="number">114</td><td><span class="p">               bmp_select(src);                                              \ </span></td></tr><tr><td class="number">115</td><td><span class="p">               c = bmp_read8(s);                                             \ </span></td></tr><tr><td class="number">116</td><td><span class="p">                                                                             \ </span></td></tr><tr><td class="number">117</td><td><span class="p">               bmp_select(dest);                                             \ </span></td></tr><tr><td class="number">118</td><td><span class="p">               bmp_write##bits(d, dest_palette_color[c+NOOB_OFFSET]);                    \ </span></td></tr><tr><td class="number">119</td><td><span class="p">                                                                             \ </span></td></tr><tr><td class="number">120</td><td><span class="p">               s++;                                                          \ </span></td></tr><tr><td class="number">121</td><td><span class="p">               d += dsize;                                                   \ </span></td></tr><tr><td class="number">122</td><td><span class="p">            }                                                                \ </span></td></tr><tr><td class="number">123</td><td><span class="p">         }                                                                   \ </span></td></tr><tr><td class="number">124</td><td><span class="p">                                                                             \ </span></td></tr><tr><td class="number">125</td><td><span class="p">         bmp_unwrite_line(src);                                              \ </span></td></tr><tr><td class="number">126</td><td><span class="p">         bmp_unwrite_line(dest);                                             \ </span></td></tr><tr><td class="number">127</td><td><span class="p">      }                                                                      \ </span></td></tr><tr><td class="number">128</td><td><span class="p">   } </span></td></tr><tr><td class="number">129</td><td>&#160;</td></tr><tr><td class="number">130</td><td>   <span class="c">/* expand the above macro for each possible output depth */</span></td></tr><tr><td class="number">131</td><td>   <span class="k1">switch</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/bitmap_color_depth" target="_blank"><span class="a">bitmap_color_depth</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">132</td><td>&#160;</td></tr><tr><td class="number">133</td><td>      <span class="p">#ifdef ALLEGRO_COLOR16</span></td></tr><tr><td class="number">134</td><td>      <span class="k1">case</span> <span class="n">15</span><span class="k2">:</span></td></tr><tr><td class="number">135</td><td>      <span class="k1">case</span> <span class="n">16</span><span class="k2">:</span></td></tr><tr><td class="number">136</td><td>         EXPAND_BLIT<span class="k2">(</span><span class="n">16</span>, <span class="k1">sizeof</span><span class="k2">(</span>int16_t<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">137</td><td>         <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">138</td><td>      <span class="p">#endif</span></td></tr><tr><td class="number">139</td><td>&#160;</td></tr><tr><td class="number">140</td><td>      <span class="p">#ifdef ALLEGRO_COLOR24</span></td></tr><tr><td class="number">141</td><td>      <span class="k1">case</span> <span class="n">24</span><span class="k2">:</span></td></tr><tr><td class="number">142</td><td>         EXPAND_BLIT<span class="k2">(</span><span class="n">24</span>, <span class="n">3</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">143</td><td>         <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">144</td><td>      <span class="p">#endif</span></td></tr><tr><td class="number">145</td><td>&#160;</td></tr><tr><td class="number">146</td><td>      <span class="p">#ifdef ALLEGRO_COLOR32</span></td></tr><tr><td class="number">147</td><td>      <span class="k1">case</span> <span class="n">32</span><span class="k2">:</span></td></tr><tr><td class="number">148</td><td>         EXPAND_BLIT<span class="k2">(</span><span class="n">32</span>, <span class="k1">sizeof</span><span class="k2">(</span>int32_t<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">149</td><td>         <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">150</td><td>      <span class="p">#endif</span></td></tr><tr><td class="number">151</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">152</td><td>&#160;</td></tr><tr><td class="number">153</td><td>   <span class="k1">if</span> <span class="k2">(</span>_color_conv <span class="k3">&amp;</span> COLORCONV_KEEP_TRANS<span class="k2">)</span></td></tr><tr><td class="number">154</td><td>      _AL_FREE<span class="k2">(</span>dest_palette_color<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">155</td><td> <span class="k2">}</span><span class="c">/*else*/</span></td></tr><tr><td class="number">156</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Or perhaps you may find it useful... but since <u> I </u> could pull it off, I doubt it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (weapon_S)</author>
		<pubDate>Tue, 17 Apr 2007 18:56:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Have you run any test? In case post the results.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Marco Radaelli)</author>
		<pubDate>Tue, 17 Apr 2007 20:39:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Tests...? <img src="http://www.allegro.cc/forums/smileys/embarassed.gif" alt=":-[" /> With results?! I&#39;m not sure what you are refering to.<br />I have sort of a test program attached. At first I accidently forgot to set the cutoff of the first picture properly, and it flunked.<br />For the rest it&#39;s working under all the colordepths my computer manages... Unless... I&#39;m not sure what to test for. Unless you mean profiling?</p><p>Besides, if you see the original code, you would notice I only changed the lines which contain &quot;NOOB_OFFSET&quot;; not even the comment is mine.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (weapon_S)</author>
		<pubDate>Wed, 18 Apr 2007 02:33:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Um, what exactly are you doing there? Replacing colours in a paletted sprite? It can be done without any hacks or custom routines. In paletted mode, set up a custom blending table (mapping the original color index to the desired best match) and draw the sprite as a lit sprite. In hi/truecolor mode, just select a different palette.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Thu, 19 Apr 2007 22:30:33 +0000</pubDate>
	</item>
</rss>
