<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>invert colors</title>
		<link>http://www.allegro.cc/forums/view/590930</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 10 Apr 2007 00:58:28 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>How do I display a texture with inverted colors with OpenGL? Here is the code I tried to use: </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 &lt;alleggl.h&gt;</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="k1">int</span> main<span class="k2">(</span><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/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">7</td><td>  install_allegro_gl<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</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">9</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">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td>  allegro_gl_set<span class="k2">(</span>AGL_COLOR_DEPTH, <span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</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">13</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">14</td><td>  allegro_gl_set<span class="k2">(</span>AGL_SUGGEST, AGL_COLOR_DEPTH <span class="k3">|</span> AGL_DOUBLEBUFFER <span class="k3">|</span> AGL_RENDERMETHOD<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</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_WINDOWED, <span class="n">640</span>, <span class="n">480</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">17</td><td>    <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  allegro_gl_set_allegro_mode<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"mysha.pcx"</span>, NULL<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>  GLint tex <span class="k3">=</span> allegro_gl_make_texture_ex<span class="k2">(</span>AGL_TEXTURE_RESCALE, bmp, GL_RGB8<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>  glBindTexture<span class="k2">(</span>GL_TEXTURE_2D, tex<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>  glBlendFunc<span class="k2">(</span>GL_ONE_MINUS_SRC_COLOR, GL_ZERO<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  glEnable<span class="k2">(</span>GL_BLEND<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>  glBegin<span class="k2">(</span>GL_QUADS<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</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></td></tr><tr><td class="number">28</td><td>        glVertex2f<span class="k2">(</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">29</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></td></tr><tr><td class="number">30</td><td>        glVertex2f<span class="k2">(</span>bmp-&gt;w, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</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></td></tr><tr><td class="number">32</td><td>        glVertex2f<span class="k2">(</span>bmp-&gt;w, bmp-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</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></td></tr><tr><td class="number">34</td><td>        glVertex2f<span class="k2">(</span><span class="n">0</span>, bmp-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>  glEnd<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>  glDisable<span class="k2">(</span>GL_BLEND<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>&#160;</td></tr><tr><td class="number">38</td><td>  allegro_gl_flip<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>  <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>&#160;</td></tr><tr><td class="number">41</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>bmp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>&#160;</td></tr><tr><td class="number">43</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Attached is mysha.pcx - the example input file.</p><p>As a result I get something similar to a inverted picture, but it&#39;s obviously different to what any image editor would give me. What I&#39;m I doing wrong?</p><p>EDIT:<br />Fixed using:<br />glEnable(GL_COLOR_LOGIC_OP);<br />glLogicOp(GL_COPY_INVERTED);<br />without blending.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Milan Mimica)</author>
		<pubDate>Tue, 10 Apr 2007 00:58:28 +0000</pubDate>
	</item>
</rss>
