<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Allegro GL color mismatch</title>
		<link>http://www.allegro.cc/forums/view/586159</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 30 Jun 2006 21:09:57 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello all,</p><p>I am experiencing problem with colors in Allegro GL.<br />The red appears blue and vice versa.<br />Likewise the yellow appears cyan.<br />It acts like the RGB was actually BGR. <img src="http://www.allegro.cc/forums/smileys/embarassed.gif" alt=":-[" /><br />Something must be wrong in my Allegro GL color initialization or when loading the texture.</p><p>Here is a sample code that illustrate the problem.</p><p>Any idea please??</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;stdio.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">3</td><td><span class="p">#include &lt;alleggl.h&gt;</span></td></tr><tr><td class="number">4</td><td><span class="p">#include &lt;winalleg.h&gt;</span></td></tr><tr><td class="number">5</td><td><span class="p">#include &lt;windows.h&gt;</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td>GLuint tex_desk<span class="k2">;</span></td></tr><tr><td class="number">8</td><td><a href="http://www.allegro.cc/manual/FONT" target="_blank"><span class="a">FONT</span></a><span class="k3">*</span> allegro_fnt<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">11</td><td><span class="k2">{</span>  </td></tr><tr><td class="number">12</td><td>  <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>  install_allegro_gl<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td>        <a href="http://www.allegro.cc/manual/install_timer" target="_blank"><span class="a">install_timer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>        <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>  <a href="http://www.allegro.cc/manual/install_mouse" target="_blank"><span class="a">install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">24</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>  <a href="http://www.allegro.cc/manual/set_trans_blender" target="_blank"><span class="a">set_trans_blender</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span>, <span class="n">128</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td>  <span class="c">/*--- Alleg GL inits --------------------------------------------------*/</span></td></tr><tr><td class="number">22</td><td>  allegro_gl_clear_settings<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>  allegro_gl_set<span class="k2">(</span>AGL_COLOR_DEPTH, <span class="n">32</span><span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">24</td><td>  allegro_gl_set<span class="k2">(</span>AGL_Z_DEPTH, <span class="n">8</span><span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">25</td><td>  allegro_gl_set<span class="k2">(</span>AGL_WINDOWED, <span class="k1">true</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>  allegro_gl_set<span class="k2">(</span>AGL_DOUBLEBUFFER, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>  allegro_gl_set<span class="k2">(</span>AGL_RENDERMETHOD, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">28</td><td>  allegro_gl_set<span class="k2">(</span>AGL_SUGGEST, AGL_Z_DEPTH <span class="k3">|</span> AGL_COLOR_DEPTH<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>  allegro_gl_set<span class="k2">(</span>AGL_REQUIRE, AGL_DOUBLEBUFFER<span class="k2">)</span><span class="k2">;</span>      </td></tr><tr><td class="number">30</td><td>    </td></tr><tr><td class="number">31</td><td>  <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_OPENGL, <span class="n">320</span>, <span class="n">240</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span> </td></tr><tr><td class="number">32</td><td>  <span class="k2">{</span>  <span class="c">/*  set the resolution to what you want,</span></td></tr><tr><td class="number">33</td><td><span class="c">      disregarding 640,480 which is the coordinate system */</span></td></tr><tr><td class="number">34</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">36</td><td>&#160;</td></tr><tr><td class="number">37</td><td>  glMatrixMode<span class="k2">(</span>GL_PROJECTION<span class="k2">)</span><span class="k2">;</span>    <span class="c">/* I am setting a state where I am editing the projection matrix... */</span></td></tr><tr><td class="number">38</td><td>  glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>      <span class="c">/* Clearing the projection matrix... */</span>  </td></tr><tr><td class="number">39</td><td>  glOrtho<span class="k2">(</span><span class="n">0</span>, <span class="n">640</span>, <span class="n">0</span>, <span class="n">480</span>, <span class="k3">-</span><span class="n">1</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>    <span class="c">/* Creating an orthoscopic view matrix going from -1 -&gt; 1 in each dimension on the screen (x, y, z).  we will always draw our 2D objects at z equal to zero. */</span> </td></tr><tr><td class="number">40</td><td>  glMatrixMode<span class="k2">(</span>GL_MODELVIEW<span class="k2">)</span><span class="k2">;</span>    <span class="c">/* Now editing the model-view matrix. */</span></td></tr><tr><td class="number">41</td><td>  glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>      <span class="c">/* Clearing the model-view matrix. */</span></td></tr><tr><td class="number">42</td><td>  glDisable<span class="k2">(</span>GL_DEPTH_TEST<span class="k2">)</span><span class="k2">;</span>    <span class="c">/* Disabling the depth test (z will not be used to tell what object will be shown above another, only the order in which I draw them.) */</span></td></tr><tr><td class="number">43</td><td>  </td></tr><tr><td class="number">44</td><td>  glEnable<span class="k2">(</span>GL_TEXTURE_2D<span class="k2">)</span><span class="k2">;</span>    <span class="c">/* Enable texturing on all models for now on. */</span></td></tr><tr><td class="number">45</td><td>  glEnable<span class="k2">(</span>GL_BLEND<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>  </td></tr><tr><td class="number">47</td><td>        glClearColor<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">/* Set the background color to black */</span></td></tr><tr><td class="number">48</td><td>  allegro_fnt <span class="k3">=</span> allegro_gl_convert_allegro_font<span class="k2">(</span><a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, AGL_FONT_TYPE_TEXTURED, <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// 16.0); </span></td></tr><tr><td class="number">49</td><td>  </td></tr><tr><td class="number">50</td><td>  text_mode<span class="k2">(</span><span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">51</td><td>&#160;</td></tr><tr><td class="number">52</td><td>  <span class="c">/*--- Create image ---------------------------------------------------*/</span></td></tr><tr><td class="number">53</td><td>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> toto <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">8</span>,<span class="n">8</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>  <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>toto, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// RED?</span></td></tr><tr><td class="number">55</td><td>  textprintf<span class="k2">(</span>toto, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">0</span>,<span class="n">0</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span>, <span class="s">"%c"</span>, <span class="s">'a'</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// YELLOW?</span></td></tr><tr><td class="number">56</td><td>  tex_desk <span class="k3">=</span> allegro_gl_make_texture_ex<span class="k2">(</span></td></tr><tr><td class="number">57</td><td>    AGL_TEXTURE_FLIP, </td></tr><tr><td class="number">58</td><td>    toto, </td></tr><tr><td class="number">59</td><td>    GL_RGB <span class="c">// GL_RGB, GL_RGBA, or -1 </span></td></tr><tr><td class="number">60</td><td>    <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>toto<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">62</td><td>&#160;</td></tr><tr><td class="number">63</td><td>  <span class="c">/*--- Display image --------------------------------------------------*/</span></td></tr><tr><td class="number">64</td><td>  glClear<span class="k2">(</span>GL_COLOR_BUFFER_BIT<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">65</td><td>&#160;</td></tr><tr><td class="number">66</td><td>  glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>        </td></tr><tr><td class="number">67</td><td>  glBlendFunc<span class="k2">(</span>GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>  glBindTexture<span class="k2">(</span>GL_TEXTURE_2D, tex_desk<span class="k2">)</span><span class="k2">;</span>      </td></tr><tr><td class="number">69</td><td>  </td></tr><tr><td class="number">70</td><td>  glBegin<span class="k2">(</span>GL_QUADS<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>&#160;</td></tr><tr><td class="number">72</td><td>  glColor4ub<span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>&#160;</td></tr><tr><td class="number">74</td><td>  glTexCoord2f<span class="k2">(</span><span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span><span class="n">0</span> , <span class="n">0</span> , <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>  glTexCoord2f<span class="k2">(</span><span class="n">1</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span><span class="n">32</span>, <span class="n">0</span> , <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">76</td><td>  glTexCoord2f<span class="k2">(</span><span class="n">1</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span><span class="n">32</span>, <span class="n">32</span>, <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>  glTexCoord2f<span class="k2">(</span><span class="n">0</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span><span class="n">0</span> , <span class="n">32</span>, <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">78</td><td>&#160;</td></tr><tr><td class="number">79</td><td>  glEnd<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">80</td><td>&#160;</td></tr><tr><td class="number">81</td><td>  allegro_gl_flip<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// this displays a texture with the letter 'a' in cyan on a blue background!</span></td></tr><tr><td class="number">82</td><td>&#160;</td></tr><tr><td class="number">83</td><td>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">84</td><td>&#160;</td></tr><tr><td class="number">85</td><td>  allegro_gl_destroy_font<span class="k2">(</span>allegro_fnt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">86</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">87</td><td><span class="k2">}</span></td></tr><tr><td class="number">88</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span></td></tr></tbody></table></div></div><p>

<img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (anto80)</author>
		<pubDate>Wed, 28 Jun 2006 18:56:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>try using GL_BGR instead of GL_RGB, that would switch the order wouldn&#39;t it?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (razor)</author>
		<pubDate>Thu, 29 Jun 2006 06:03:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>set_color_depth(24);<br />and<br />allegro_gl_set(AGL_COLOR_DEPTH, 32);</p><p>You&#39;re confusing Allegro, there. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Thu, 29 Jun 2006 10:27:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you for your feedback.</p><div class="quote_container"><div class="title">Kitty Cat said:</div><div class="quote"><p>
set_color_depth(24); and allegro_gl_set(AGL_COLOR_DEPTH, 32);<br />You&#39;re confusing Allegro, there.
</p></div></div><p>
OK i have now set_color_depth(32); and then, few lines of code later... allegro_gl_set(AGL_COLOR_DEPTH, 32);<br />It does not change anything : my texture is still looking BGR instead of RGB.</p><div class="quote_container"><div class="title">razor said:</div><div class="quote"><p>
try using GL_BGR instead of GL_RGB, that would switch the order wouldn&#39;t it?
</p></div></div><p>Wow! I didn&#39;t know I could even do that!<br />However if i load my texture by<br /><span class="source-code">tex_desk <span class="k3">=</span> allegro_gl_make_texture_ex<span class="k2">(</span>AGL_TEXTURE_FLIP, toto, GL_BGR<span class="k2">)</span><span class="k2">;</span></span><br />The texture is now appearing full white(255,255,255) (?!)<br />I tried |AGL_TEXTURE_HAS_ALPHA  and/or |AGL_TEXTURE_MASKED as for the flags and it does not help.</p><p>I have done another test:<br />1) Displaying red pixel : works fine (really red)<br />2) Displaying blue part of a texture : works fine (even if the original bitmap looks BGR, this is the blue part of the &quot;badly loaded&quot;-texture. So it looks really blue)<br />3) Displaying cyan text : works fine (really cyan)</p><p>=&gt; Therefore, the problem comes from the loading of the texture.</p><p>How should i use allegro_gl_make_texture_ex <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /></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="c">/*--- Display RED point -----------------------------------------------*/</span></td></tr><tr><td class="number">2</td><td>  glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td>  glBlendFunc<span class="k2">(</span>GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>  glPointSize<span class="k2">(</span><span class="n">4</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>  glBegin<span class="k2">(</span>GL_POINTS<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>  glColor4ub<span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">128</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// red point, half transparent</span></td></tr><tr><td class="number">7</td><td>  glVertex3f<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>   </td></tr><tr><td class="number">8</td><td>  glEnd<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td>  <span class="c">/*--- Display blue part of the texture --------------------------------*/</span></td></tr><tr><td class="number">11</td><td>  glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>        </td></tr><tr><td class="number">12</td><td>  glBlendFunc<span class="k2">(</span>GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>  glBindTexture<span class="k2">(</span>GL_TEXTURE_2D, tex_desk<span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">14</td><td>  glBegin<span class="k2">(</span>GL_QUADS<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>  glColor4ub<span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// blue part</span></td></tr><tr><td class="number">16</td><td>  glTexCoord2f<span class="k2">(</span><span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span><span class="n">0</span> , <span class="n">0</span> , <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>  glTexCoord2f<span class="k2">(</span><span class="n">1</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span><span class="n">32</span>, <span class="n">0</span> , <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">18</td><td>  glTexCoord2f<span class="k2">(</span><span class="n">1</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span><span class="n">32</span>, <span class="n">32</span>, <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>  glTexCoord2f<span class="k2">(</span><span class="n">0</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span> glVertex3f<span class="k2">(</span><span class="n">0</span> , <span class="n">32</span>, <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>  glEnd<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td>        <span class="c">/*--- display cyan text ------------------------------------------------*/</span></td></tr><tr><td class="number">23</td><td>        glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>  glTranslatef<span class="k2">(</span><span class="n">240</span>, <span class="n">240</span>, <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  glScalef<span class="k2">(</span><span class="n">4</span>.<span class="n">0</span>, <span class="n">4</span>.<span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">26</td><td>  glBlendFunc<span class="k2">(</span>GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>  allegro_gl_printf<span class="k2">(</span>allegro_fnt, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span>, <span class="s">"toto"</span><span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (anto80)</author>
		<pubDate>Thu, 29 Jun 2006 12:41:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Have you installed manufacturer GFX card drivers or are you using MS ones?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Milan Mimica)</author>
		<pubDate>Thu, 29 Jun 2006 14:10:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>hmm.</p><p>Having looked at the AllegroGL&#39;s texture.c code, and taking into account that i got an ATI Radeon, here is what i found:
</p><div class="source-code snippet"><div class="inner"><pre><span class="n">01012</span>     <span class="c">/* ATI Radeon 7000 inverts R and B components when generating mipmaps and</span>
<span class="c">01013      * the internal format is GL_RGB8, bt only on mipmaps. Instead, we'll use</span>
<span class="c">01014      * GL_RGBA8. This works for bitmaps of depth &lt;= 24. For 32-bpp bitmaps,</span>
<span class="c">01015      * some additional tricks are needed: We must fill in alpha with 255.</span>
<span class="c">01016      */</span>
</pre></div></div><p>

So after having done the code below, all is working fine <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> !!
</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="c">/*-------------------------------------------------------------------------*/</span></td></tr><tr><td class="number">2</td><td><span class="c">/*---------------------------- Mygl_make_texture --------------------------*/</span></td></tr><tr><td class="number">3</td><td><span class="c">/*-------------------------------------------------------------------------*/</span></td></tr><tr><td class="number">4</td><td>GLuint mygl_make_texture<span class="k2">(</span><span class="k1">int</span> nFlags, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmpTex, GLint internal_format<span class="k2">)</span></td></tr><tr><td class="number">5</td><td><span class="k2">{</span></td></tr><tr><td class="number">6</td><td>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmpTmp<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>  bmpTmp <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>  <span class="k1">int</span> x,y,nCol<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>  <span class="k1">unsigned</span> <span class="k1">char</span> r,g,b,a<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>  GLuint tex_nb<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>  <span class="k1">int</span> nColPink<span class="k2">;</span></td></tr><tr><td class="number">12</td><td>&#160;</td></tr><tr><td class="number">13</td><td>  <span class="k1">if</span> <span class="k2">(</span>nMyGlRgbOrder <span class="k3">!</span><span class="k3">=</span> MYGL_RGBA<span class="k2">)</span>  </td></tr><tr><td class="number">14</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">15</td><td>    bmpTmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span>bmpTex-&gt;w, bmpTex-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    nColPink <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>&#160;</td></tr><tr><td class="number">18</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>bmpTex-&gt;h<span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">19</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">20</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>bmpTex-&gt;w<span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">21</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">22</td><td>        nCol <span class="k3">=</span> <a href="http://www.allegro.cc/manual/getpixel" target="_blank"><span class="a">getpixel</span></a><span class="k2">(</span>bmpTex, x, y<span class="k2">)</span><span class="k2">;</span>        </td></tr><tr><td class="number">23</td><td>        r <span class="k3">=</span> <a href="http://www.allegro.cc/manual/getr" target="_blank"><span class="a">getr</span></a><span class="k2">(</span>nCol<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>        g <span class="k3">=</span> <a href="http://www.allegro.cc/manual/getg" target="_blank"><span class="a">getg</span></a><span class="k2">(</span>nCol<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>        b <span class="k3">=</span> <a href="http://www.allegro.cc/manual/getb" target="_blank"><span class="a">getb</span></a><span class="k2">(</span>nCol<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>        a <span class="k3">=</span> <span class="k2">(</span>nFlags <span class="k3">&amp;</span> AGL_TEXTURE_HAS_ALPHA<span class="k2">)</span>? <a href="http://www.allegro.cc/manual/geta" target="_blank"><span class="a">geta</span></a><span class="k2">(</span>nCol<span class="k2">)</span> <span class="k2">:</span> <span class="n">255</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>&#160;</td></tr><tr><td class="number">28</td><td>        <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><span class="k2">(</span>nFlags <span class="k3">&amp;</span> AGL_TEXTURE_MASKED<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span></td></tr><tr><td class="number">29</td><td>          nCol <span class="k3">!</span><span class="k3">=</span> nColPink<span class="k2">)</span></td></tr><tr><td class="number">30</td><td>        <span class="k2">{</span>        </td></tr><tr><td class="number">31</td><td>          <span class="k1">switch</span><span class="k2">(</span>nMyGlRgbOrder<span class="k2">)</span></td></tr><tr><td class="number">32</td><td>          <span class="k2">{</span></td></tr><tr><td class="number">33</td><td>          <span class="k1">case</span> MYGL_BGRA:</td></tr><tr><td class="number">34</td><td>            nCol <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makeacol" target="_blank"><span class="a">makeacol</span></a><span class="k2">(</span>b, g, r, a<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>            <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>          <span class="k2">}</span></td></tr><tr><td class="number">37</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">38</td><td>&#160;</td></tr><tr><td class="number">39</td><td>        <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>bmpTmp, x, y, nCol<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">41</td><td>    <span class="k2">}</span>    </td></tr><tr><td class="number">42</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">43</td><td>&#160;</td></tr><tr><td class="number">44</td><td>  tex_nb <span class="k3">=</span> allegro_gl_make_texture_ex<span class="k2">(</span></td></tr><tr><td class="number">45</td><td>    nFlags, <span class="c">// AGL_TEXTURE_FLIP, // |AGL_TEXTURE_MIPMAP, </span></td></tr><tr><td class="number">46</td><td>    <span class="k2">(</span>bmpTmp<span class="k3">!</span><span class="k3">=</span>NULL<span class="k2">)</span>?bmpTmp:bmpTex, </td></tr><tr><td class="number">47</td><td>    internal_format <span class="c">// GL_RGB8 // GL_RGB, GL_RGBA, or -1 </span></td></tr><tr><td class="number">48</td><td>    <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>&#160;</td></tr><tr><td class="number">50</td><td>  <span class="k1">if</span> <span class="k2">(</span>bmpTmp <span class="k3">!</span><span class="k3">=</span> NULL<span class="k2">)</span></td></tr><tr><td class="number">51</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">52</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>bmpTmp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">54</td><td>  <span class="k1">return</span> tex_nb<span class="k2">;</span></td></tr><tr><td class="number">55</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (anto80)</author>
		<pubDate>Thu, 29 Jun 2006 18:57:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What graphics card do you have? Which driver version are you using?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bob)</author>
		<pubDate>Thu, 29 Jun 2006 20:27:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ATI Radeon X600. Driver v8.162.0.0 (03/08/2005)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (anto80)</author>
		<pubDate>Fri, 30 Jun 2006 18:06:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you hack FakeGL&#39;s detection code to always set is_ati_radeon_7000 to 1 (in glext.c, function __fill_in_info_struct), does this solve your problem? It might be a general ATI issue, but we only had a Radeon 7000 to test it with.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bob)</author>
		<pubDate>Fri, 30 Jun 2006 21:09:57 +0000</pubDate>
	</item>
</rss>
