<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Blitting TGA with ALPHA channel (OGL)</title>
		<link>http://www.allegro.cc/forums/view/515840</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 09 Aug 2005 19:45:55 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><u><b>I ) Introduction:</b></u></p><p>I&#039;m working on some functions to handle alpha channel and blit an animation of them. <br />I was using Allegro functions before and it was working fine.<br />Now i wanna use allegroGL to improve speed, but i&#039;m sure i&#039;m mistaking with &quot;how to use allegroGL &amp; mix it with (opengl &amp; allegro)&quot; .</p><p><u><b>II ) What is my problem:</b></u></p><p>I got a SPRITE structure where i keep information for my anims.<br />Before trying to switch to AGL, i was saving each one pixel per pixel in a file , and reading them from this file.<br />It was keeping Alpha channel and working fine when set_alpha_blender &amp; draw_trans_sprite.</p><p>Since i try to use AllegroGL instead of directX, i got the following problems: <br />1: never see the right color, always got various red colors.<br />2: a very bad FPS ( 6-9 )<br />3: not sure the result is using alpha</p><p><u>&lt;b&gt;III ) What i want to do :</u>&lt;/b&gt;</p><p>1: Make an initialize function to handle allegroGL for 2d iso using<br />2: Make a &#039;blit&#039; function who use allegroGL instead of directX<br />3: Make a &#039;close&#039; function to shutdown allegroGL</p><p><u>&lt;b&gt;IV ) so, WTF ?</u>&lt;/b&gt;</p><p>I&#039;m for sure don&#039;t understanding how do GL work. I&#039;m ok to draw lines, point , shapes. But with alpha i got a real problem.</p><p>Are function for direct use of BITMAP struct with allegroGL available ? <br />I was thinking to a allegro_gl_draw_trans_sprite(...) or something else.</p><p>If some can post code , i&#039;ll be very happy.</p><p><u>&lt;b&gt;V ) Function &amp; structs used</u>&lt;/b&gt;</p><p>struct SPRITE:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">/*!</span>
<span class="number">  2</span><span class="c"> * type of a normal blitted sprite</span>
<span class="number">  3</span><span class="c"> */</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="p">#define NORMAL_SPRITE 0</span>
<span class="number">  6</span>
<span class="number">  7</span>
<span class="number">  8</span>
<span class="number">  9</span><span class="c">/*!</span>
<span class="number"> 10</span><span class="c"> * type of a masked sprite</span>
<span class="number"> 11</span><span class="c"> */</span>
<span class="number"> 12</span>
<span class="number"> 13</span><span class="p">#define MASKED_SPRITE 1</span>
<span class="number"> 14</span>
<span class="number"> 15</span>
<span class="number"> 16</span>
<span class="number"> 17</span>
<span class="number"> 18</span><span class="c">/*!</span>
<span class="number"> 19</span><span class="c"> * type of a Transp sprite</span>
<span class="number"> 20</span><span class="c"> */</span>
<span class="number"> 21</span>
<span class="number"> 22</span><span class="p">#define TRANS_SPRITE 2</span>
<span class="number"> 23</span>
<span class="number"> 24</span>
<span class="number"> 25</span>
<span class="number"> 26</span><span class="c">/*! Struct of a cell of an animation */</span>
<span class="number"> 27</span><span class="k1">typedef</span> <span class="k1">struct</span> SPRITE <span class="k2">{</span>
<span class="number"> 28</span>
<span class="number"> 29</span>    <span class="c">/*! sprite */</span>
<span class="number"> 30</span>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span><span class="k3">*</span>spr<span class="k2">;</span>
<span class="number"> 31</span>    
<span class="number"> 32</span>    <span class="k1">int</span> <span class="c">/*! w size */</span>
<span class="number"> 33</span>        w,
<span class="number"> 34</span>        <span class="c">/*! h size */</span>
<span class="number"> 35</span>        h,
<span class="number"> 36</span>        <span class="c">/*! x center of sprite */</span>
<span class="number"> 37</span>        x,
<span class="number"> 38</span>        <span class="c">/*! y center of sprite */</span>
<span class="number"> 39</span>        y,
<span class="number"> 40</span>        <span class="c">/*! id of the sprite -1 for unavailable */</span>
<span class="number"> 41</span>        id,
<span class="number"> 42</span>        <span class="c">/* type of data ( with blending or just masking ) */</span>
<span class="number"> 43</span>        type,
<span class="number"> 44</span>        <span class="c">/*! is animated ? true or false */</span>
<span class="number"> 45</span>        animated,
<span class="number"> 46</span>        <span class="c">/*! delays between image -1 if no*/</span>
<span class="number"> 47</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_128.html" target="_blank">delay</a>,
<span class="number"> 48</span>        <span class="c">/*! number of pictures in **spr */</span>
<span class="number"> 49</span>        current,
<span class="number"> 50</span>        <span class="c">/*! max picture in **spr */</span>
<span class="number"> 51</span>        max,
<span class="number"> 52</span>        <span class="c">/*! namelenght */</span>
<span class="number"> 53</span>        namelenght<span class="k2">;</span>
<span class="number"> 54</span>        
<span class="number"> 55</span>   <span class="c">/*! handles to opengl textures if enable (not saved or loaded) */</span>
<span class="number"> 56</span>   GLuint <span class="k3">*</span>handles<span class="k2">;</span>
<span class="number"> 57</span>   
<span class="number"> 58</span>        
<span class="number"> 59</span>   <span class="c">/*! name of sprite */</span>
<span class="number"> 60</span>   <span class="k1">char</span> <span class="k3">*</span>name<span class="k2">;</span>
<span class="number"> 61</span>        
<span class="number"> 62</span><span class="k2">}</span> SPRITE<span class="k2">;</span>
</div></div><p>

sprite saver:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">/*!\fn write_sprite_in_file( FILE *file , SPRITE *spr )</span>
<span class="number">  2</span><span class="c"> *</span>
<span class="number">  3</span><span class="c"> *\brief write a sprite in an opened file</span>
<span class="number">  4</span><span class="c"> *</span>
<span class="number">  5</span><span class="c"> *\param file an opening FILE *file to write in</span>
<span class="number">  6</span><span class="c"> *\param spr a SPRITE pointer to know the data</span>
<span class="number">  7</span><span class="c"> *</span>
<span class="number">  8</span><span class="c"> *\return FALSE if not valid file or writing error or memory error TRUE else</span>
<span class="number">  9</span><span class="c"> */</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="k1">int</span> write_sprite_in_file<span class="k2">(</span> FILE <span class="k3">*</span>file , SPRITE <span class="k3">*</span>spr <span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>
<span class="number"> 13</span>    <span class="k1">int</span> it,it1,it2,
<span class="number"> 14</span>        color<span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>
<span class="number"> 17</span>    <span class="c">/* error checking*/</span>
<span class="number"> 18</span>
<span class="number"> 19</span>    <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span>file <span class="k2">)</span> <span class="k1">return</span> FALSE<span class="k2">;</span>
<span class="number"> 20</span>
<span class="number"> 21</span>    <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span>spr <span class="k2">)</span> <span class="k1">return</span> FALSE<span class="k2">;</span>
<span class="number"> 22</span>
<span class="number"> 23</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> w          , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> h          , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> x          , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> y          , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> id         , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> type       , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> animated   , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_128.html" target="_blank">delay</a>      , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> current    , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> max         , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> namelenght  , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>
<span class="number"> 35</span>
<span class="number"> 36</span>    <span class="k1">for</span><span class="k2">(</span> it <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> it <span class="k3">&lt;</span> spr <span class="k3">-</span><span class="k3">&gt;</span> namelenght <span class="k2">;</span> it <span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 37</span>     <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>spr <span class="k3">-</span><span class="k3">&gt;</span> name<span class="k2">[</span> it <span class="k2">]</span> , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">char</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>
<span class="number"> 39</span>
<span class="number"> 40</span>    <span class="k1">for</span><span class="k2">(</span> it <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> it <span class="k3">&lt;</span> spr <span class="k3">-</span><span class="k3">&gt;</span> current <span class="k2">;</span> it <span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 41</span>
<span class="number"> 42</span>       <span class="k1">for</span><span class="k2">(</span> it1 <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> it1 <span class="k3">&lt;</span> spr <span class="k3">-</span><span class="k3">&gt;</span> w <span class="k2">;</span> it1 <span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 43</span>
<span class="number"> 44</span>          <span class="k1">for</span><span class="k2">(</span> it2 <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> it2 <span class="k3">&lt;</span> spr <span class="k3">-</span><span class="k3">&gt;</span> h <span class="k2">;</span> it2 <span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 45</span>
<span class="number"> 46</span>                  color <span class="k3">=</span> <a href="http://www.allegro.cc/manual/getpixel" target="_blank"><span class="a">getpixel</span></a><span class="k2">(</span> spr <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span>it<span class="k2">]</span> , it1 , it2 <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span>
<span class="number"> 48</span>                  <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>color , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 49</span>
<span class="number"> 50</span>                                             <span class="k2">}</span>
<span class="number"> 51</span>                                          <span class="k2">}</span>
<span class="number"> 52</span>                                       <span class="k2">}</span>
<span class="number"> 53</span>
<span class="number"> 54</span>    <span class="k1">return</span> TRUE<span class="k2">;</span>
<span class="number"> 55</span>
<span class="number"> 56</span>
<span class="number"> 57</span><span class="k2">}</span><span class="c">/* write_sprite_in_file( ... ) */</span>
</div></div><p>

sprite loader:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">/*!\fn read_sprite_in_file( FILE *file , SPRITE **spr )</span>
<span class="number">  2</span><span class="c"> *</span>
<span class="number">  3</span><span class="c"> *\brief read a sprite in an opened file</span>
<span class="number">  4</span><span class="c"> *</span>
<span class="number">  5</span><span class="c"> *\param file an opening FILE *file to read in</span>
<span class="number">  6</span><span class="c"> *\param spr a SPRITE pointer to point the sprite in memory</span>
<span class="number">  7</span><span class="c"> *</span>
<span class="number">  8</span><span class="c"> *\return FALSE if not valid file or writing error or memory error TRUE else</span>
<span class="number">  9</span><span class="c"> */</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="k1">int</span> read_sprite_in_file<span class="k2">(</span> FILE <span class="k3">*</span>file , SPRITE <span class="k3">*</span><span class="k3">*</span>spr <span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>
<span class="number"> 13</span>
<span class="number"> 14</span>
<span class="number"> 15</span>    <span class="k1">int</span> it,
<span class="number"> 16</span>        it1,
<span class="number"> 17</span>        it2,
<span class="number"> 18</span>        color<span class="k2">;</span>
<span class="number"> 19</span>
<span class="number"> 20</span>
<span class="number"> 21</span>
<span class="number"> 22</span>    <span class="c">/* error checking*/</span>
<span class="number"> 23</span>
<span class="number"> 24</span>    <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span>file <span class="k2">)</span> <span class="k1">return</span> FALSE<span class="k2">;</span>
<span class="number"> 25</span>
<span class="number"> 26</span>    init_sprite<span class="k2">(</span> spr , <span class="s">"name"</span> ,<span class="k3">-</span><span class="n">1</span>,<span class="k3">-</span><span class="n">1</span>,<span class="k3">-</span><span class="n">1</span>,<span class="k3">-</span><span class="n">1</span>,<span class="k3">-</span><span class="n">1</span>,<span class="k3">-</span><span class="n">1</span>,<span class="k3">-</span><span class="n">1</span>,<span class="k3">-</span><span class="n">1</span>,<span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>    
<span class="number"> 28</span>
<span class="number"> 29</span>    <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span>spr <span class="k2">)</span> <span class="k1">return</span> FALSE<span class="k2">;</span>
<span class="number"> 30</span>
<span class="number"> 31</span>
<span class="number"> 32</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> w          , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> h          , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> x          , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> y          , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> id         , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> type       , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> animated   , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_128.html" target="_blank">delay</a>      , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> current    , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> max        , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> namelenght , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>
<span class="number"> 44</span>     Malloc<span class="k2">(</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> name , <span class="k1">char</span> , <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> namelenght <span class="k3">+</span> <span class="n">1</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 45</span>
<span class="number"> 46</span>     fill_str<span class="k2">(</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> name , <span class="n">0</span> , <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> namelenght <span class="k3">+</span><span class="n">1</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span>
<span class="number"> 48</span>
<span class="number"> 49</span>     <span class="k1">for</span><span class="k2">(</span> it <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> it <span class="k3">&lt;</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> namelenght <span class="k2">;</span> it <span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 50</span>     <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span><span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> name<span class="k2">[</span> it <span class="k2">]</span> , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">char</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>
<span class="number"> 52</span>
<span class="number"> 53</span>     Malloc<span class="k2">(</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> spr , <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span> , <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> max <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 54</span>     Malloc<span class="k2">(</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> handles , GLuint , <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> max <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 55</span>
<span class="number"> 56</span>
<span class="number"> 57</span>     <span class="k1">for</span><span class="k2">(</span> it <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> it <span class="k3">&lt;</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> current <span class="k2">;</span> it <span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 58</span>
<span class="number"> 59</span>       <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> it <span class="k2">]</span> <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="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> w , <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> h <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span>
<span class="number"> 61</span>       <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> it <span class="k2">]</span> , <a href="http://www.allegro.cc/manual/makeacol" target="_blank"><span class="a">makeacol</span></a><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="k2">)</span> <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 62</span>
<span class="number"> 63</span>
<span class="number"> 64</span>          <span class="k1">for</span><span class="k2">(</span> it1 <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> it1 <span class="k3">&lt;</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> w <span class="k2">;</span> it1 <span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 65</span>
<span class="number"> 66</span>
<span class="number"> 67</span>             <span class="k1">for</span><span class="k2">(</span> it2 <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> it2 <span class="k3">&lt;</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> h <span class="k2">;</span> it2 <span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 68</span>
<span class="number"> 69</span>                  <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span>color , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 70</span>
<span class="number"> 71</span>                  <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> it <span class="k2">]</span> , it1 , it2 , color <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 72</span>
<span class="number"> 73</span>                                              <span class="k2">}</span>
<span class="number"> 74</span>
<span class="number"> 75</span>                                           <span class="k2">}</span>
<span class="number"> 76</span>      <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> handles<span class="k2">[</span> it <span class="k2">]</span> <span class="k3">=</span> allegro_gl_make_texture<span class="k2">(</span> <span class="k2">(</span><span class="k3">*</span>spr<span class="k2">)</span> <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> it<span class="k2">]</span> <span class="k2">)</span><span class="k2">;</span>                         
<span class="number"> 77</span>                  
<span class="number"> 78</span>                                       <span class="k2">}</span>
<span class="number"> 79</span>        <span class="k1">return</span> TRUE<span class="k2">;</span>
<span class="number"> 80</span>
<span class="number"> 81</span>
<span class="number"> 82</span>   <span class="k2">}</span><span class="c">/* read_sprite_in_file(...) */</span>
</div></div><p>

sprite blitter:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="c">/*!\fn blit_sprite( SPRITE *sprite , int x , int y , int frame , BITMAP *bmp )</span>
<span class="number">   2</span><span class="c"> *</span>
<span class="number">   3</span><span class="c"> *\brief draw a sprite at the right position</span>
<span class="number">   4</span><span class="c"> *</span>
<span class="number">   5</span><span class="c"> *\param sprite a pointer where the data are</span>
<span class="number">   6</span><span class="c"> *\param x where to put sprite on BITMAP , X</span>
<span class="number">   7</span><span class="c"> *\param y where to put sprite on BITMAP , Y</span>
<span class="number">   8</span><span class="c"> *\param frame frame of sprite to blit</span>
<span class="number">   9</span><span class="c"> *\param bmp BITMAP object where blit sprite</span>
<span class="number">  10</span><span class="c"> *</span>
<span class="number">  11</span><span class="c"> *\return TRUE or FALSE (if not valid frame ie)</span>
<span class="number">  12</span><span class="c"> */</span>
<span class="number">  13</span>
<span class="number">  14</span><span class="k1">int</span> blit_sprite<span class="k2">(</span> SPRITE <span class="k3">*</span>sprite , <span class="k1">int</span> x , <span class="k1">int</span> y , <span class="k1">int</span> frame , <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp <span class="k2">)</span> <span class="k2">{</span>
<span class="number">  15</span>
<span class="number">  16</span>
<span class="number">  17</span>   <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span>sprite <span class="k3">|</span><span class="k3">|</span> frame <span class="k3">&lt;</span> <span class="n">0</span> <span class="k3">|</span><span class="k3">|</span> frame <span class="k3">&gt;</span><span class="k3">=</span> sprite <span class="k3">-</span><span class="k3">&gt;</span> current  <span class="k2">)</span><span class="k1">return</span> FALSE<span class="k2">;</span>
<span class="number">  18</span>   
<span class="number">  19</span>   <span class="k1">switch</span><span class="k2">(</span> sprite <span class="k3">-</span><span class="k3">&gt;</span> type <span class="k2">)</span> <span class="k2">{</span>
<span class="number">  20</span>
<span class="number">  21</span>       <span class="c">/* normal blit */</span>
<span class="number">  22</span>       <span class="k1">case</span> NORMAL_SPRITE <span class="k2">:</span>
<span class="number">  23</span>
<span class="number">  24</span>       <span class="k1">if</span><span class="k2">(</span> bmp<span class="k2">)</span> <a href="http://www.allegro.cc/manual/stretch_blit" target="_blank"><span class="a">stretch_blit</span></a><span class="k2">(</span> sprite <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> frame <span class="k2">]</span> , bmp ,
<span class="number">  25</span>                                            <span class="n">0</span> , <span class="n">0</span> ,
<span class="number">  26</span>                                            sprite <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> frame <span class="k2">]</span> <span class="k3">-</span><span class="k3">&gt;</span> w ,
<span class="number">  27</span>                                            sprite <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> frame <span class="k2">]</span> <span class="k3">-</span><span class="k3">&gt;</span> h ,
<span class="number">  28</span>                                            x <span class="k3">-</span> sprite <span class="k3">-</span><span class="k3">&gt;</span> x ,
<span class="number">  29</span>                                            y <span class="k3">-</span> sprite <span class="k3">-</span><span class="k3">&gt;</span> y ,
<span class="number">  30</span>                                            sprite <span class="k3">-</span><span class="k3">&gt;</span> w,
<span class="number">  31</span>                                            sprite <span class="k3">-</span><span class="k3">&gt;</span> h
<span class="number">  32</span>       <span class="k2">}</span>
<span class="number">  33</span>       <span class="k1">else</span> <span class="k2">{</span>
<span class="number">  34</span>       <span class="c">/*</span>
<span class="number">  35</span><span class="c">        * TO DO: add Ogl blitter</span>
<span class="number">  36</span><span class="c">        */</span>
<span class="number">  37</span>            <span class="k2">}</span>
<span class="number">  38</span>                                                   <span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>
<span class="number">  40</span>
<span class="number">  41</span>       <span class="k1">return</span> TRUE<span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span>       <span class="k1">break</span><span class="k2">;</span>
<span class="number">  44</span>       
<span class="number">  45</span>
<span class="number">  46</span>       <span class="c">/* masked blit */</span>
<span class="number">  47</span>       <span class="k1">case</span> MASKED_SPRITE:
<span class="number">  48</span>          <span class="k1">if</span><span class="k2">(</span> bmp <span class="k2">)</span> <a href="http://www.allegro.cc/manual/masked_stretch_blit" target="_blank"><span class="a">masked_stretch_blit</span></a><span class="k2">(</span> sprite <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> frame <span class="k2">]</span> , bmp ,
<span class="number">  49</span>                                            <span class="n">0</span> , <span class="n">0</span> ,
<span class="number">  50</span>                                            sprite <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> frame <span class="k2">]</span> <span class="k3">-</span><span class="k3">&gt;</span> w ,
<span class="number">  51</span>                                            sprite <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> frame <span class="k2">]</span> <span class="k3">-</span><span class="k3">&gt;</span> h ,
<span class="number">  52</span>                                            x <span class="k3">-</span> sprite <span class="k3">-</span><span class="k3">&gt;</span> x ,
<span class="number">  53</span>                                            y <span class="k3">-</span> sprite <span class="k3">-</span><span class="k3">&gt;</span> y ,
<span class="number">  54</span>                                            sprite <span class="k3">-</span><span class="k3">&gt;</span> w,
<span class="number">  55</span>                                            sprite <span class="k3">-</span><span class="k3">&gt;</span> h
<span class="number">  56</span>                                             <span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span>       <span class="k1">else</span> <span class="k2">{</span>
<span class="number">  58</span>       <span class="c">/*</span>
<span class="number">  59</span><span class="c">        * TO DO: add Ogl blitter</span>
<span class="number">  60</span><span class="c">        */</span>
<span class="number">  61</span>            <span class="k2">}</span>
<span class="number">  62</span>      
<span class="number">  63</span>       <span class="k1">return</span> TRUE<span class="k2">;</span>
<span class="number">  64</span>
<span class="number">  65</span>       <span class="k1">break</span><span class="k2">;</span>
<span class="number">  66</span>       
<span class="number">  67</span>
<span class="number">  68</span>       <span class="c">/* translucent blit */</span>
<span class="number">  69</span>       <span class="k1">case</span> TRANS_SPRITE:
<span class="number">  70</span>
<span class="number">  71</span>       <span class="k1">if</span><span class="k2">(</span> bmp <span class="k2">)</span><span class="k2">{</span>
<span class="number">  72</span>       <a href="http://www.allegro.cc/manual/set_alpha_blender" target="_blank"><span class="a">set_alpha_blender</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>       <a href="http://www.allegro.cc/manual/draw_trans_sprite" target="_blank"><span class="a">draw_trans_sprite</span></a><span class="k2">(</span> bmp , sprite <span class="k3">-</span><span class="k3">&gt;</span> spr<span class="k2">[</span> frame <span class="k2">]</span> , x <span class="k3">-</span> sprite <span class="k3">-</span><span class="k3">&gt;</span> x , y <span class="k3">-</span> sprite <span class="k3">-</span><span class="k3">&gt;</span> y <span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>       <span class="k2">}</span>
<span class="number">  75</span>       <span class="k1">else</span> <span class="k2">{</span>
<span class="number">  76</span>       <span class="c">/*</span>
<span class="number">  77</span><span class="c">        * TO DO: add Ogl blitter</span>
<span class="number">  78</span><span class="c">        */</span>
<span class="number">  79</span>            <span class="k2">}</span>
<span class="number">  80</span>            
<span class="number">  81</span>            
<span class="number">  82</span>       <span class="k1">return</span> TRUE<span class="k2">;</span>
<span class="number">  83</span>
<span class="number">  84</span>       <span class="k1">break</span><span class="k2">;</span>
<span class="number">  85</span>       
<span class="number">  86</span>
<span class="number">  87</span>       <span class="c">/* Sprite has no type ! */</span>
<span class="number">  88</span>       default:
<span class="number">  89</span>
<span class="number">  90</span>       <span class="k1">return</span> FALSE<span class="k2">;</span>
<span class="number">  91</span>
<span class="number">  92</span>       <span class="k1">break</span><span class="k2">;</span>
<span class="number">  93</span>
<span class="number">  94</span>      <span class="k2">}</span><span class="c">/*switch(...)*/</span>
<span class="number">  95</span>      
<span class="number">  96</span>      <span class="k1">return</span> TRUE<span class="k2">;</span>
<span class="number">  97</span>      
<span class="number">  98</span>   <span class="k2">}</span> <span class="c">/* blit_sprite(...) */</span>
</div></div><p>

allegroGL initialiser:
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">/*</span>
<span class="c"> * TO DO : add initialize function</span>
<span class="c"> */</span>
</pre></div></div><p>

allegroGL exit:
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">/*</span>
<span class="c"> * TO DO : add allegroGL exit function</span>
<span class="c"> */</span>
</pre></div></div><p>

<u>&lt;b&gt;Conclusion:</u>&lt;/b&gt;</p><p>OpenGl make me crazy, i have not sleeped the last 3 night, i&#039;m tired to search and obtain the same result . I need help. Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Thu, 04 Aug 2005 13:39:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
OpenGl make me crazy, i have not sleeped the last 3 night, i&#39;m tired to search and obtain the same result . I need help. Thanks</p></div></div><p>
What about OpenLayer? It&#39;s made for this kind of a thing - to render bitmaps with an alpha channel using OpenGL.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fladimir da Gorf)</author>
		<pubDate>Thu, 04 Aug 2005 14:53:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Perhaps because i wanna know how to do this using only allegro &amp; allegrogl</p><p>EDIT: But i&#39;m also looking at openlayer. I&#39;m not sure it has all the requirement i need , but i&#39;ll see. And if you know how to solve the topic with only allegro&amp;allegrogl, don&#39;t wait and post your answer ! <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>EDIT2: i&#39;m looking at lots of code using allegroGL. The problem is that in fact , no one use the same organisation as the other. Some are calling allegro_gl_begin() ...end() where some others don&#39;t, to do the same thing.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Thu, 04 Aug 2005 16:36:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Perhaps because i wanna know how to do this using only allegro &amp; allegrogl</p></div></div><p>
Why? OpenLayer isn&#39;t a wrapper for AllegroGL. It maps the functions to direct OpenGL calls, not to AllegroGL code. Thus it enables a lot of effects and blending modes which aren&#39;t possible with AllegroGL&#39;s interface. </p><p>Sorry, but I don&#39;t really know how to solve your problem. But in many cases if you wish to use pure OpenGL you could take a peek at OpenLayer&#39;s code. </p><p>Also you wouldn&#39;t need any wrapper sprite class because OpenLayer automates all the code you posted.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fladimir da Gorf)</author>
		<pubDate>Thu, 04 Aug 2005 19:17:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>is openlayer compatible with C code ? and ansi ? and finally does it run under linux ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Thu, 04 Aug 2005 19:32:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>OpenLayer is in ansi C++ and platform independant. But in most cases you should be able to write C code but compile it in C++.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fladimir da Gorf)</author>
		<pubDate>Thu, 04 Aug 2005 19:47:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>1: never see the right color, always got various red colors.<br />2: a very bad FPS ( 6-9 )</p></div></div><p>
This leads me to believe you got software rendering. After you set the mode, try printing out these strings:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Graphics Driver: OpenGL %s (%s)\n"</span>
       <span class="s">"  %s detected\n"</span>
       <span class="s">"  Set %dx%d %dbpp %s mode\n"</span>,
       glGetString<span class="k2">(</span>GL_VERSION<span class="k2">)</span>, glGetString<span class="k2">(</span>GL_VENDOR<span class="k2">)</span>,
       glGetString<span class="k2">(</span>GL_RENDERER<span class="k2">)</span>,
       <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a>, <a href="http://www.allegro.cc/manual/bitmap_color_depth" target="_blank"><span class="a">bitmap_color_depth</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span>,
       <span class="k2">(</span>gfx_driver-&gt;windowed ? <span class="s">"windowed"</span> <span class="k2">:</span> <span class="s">"fullscreen"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>If you are getting software rendering make sure you set and request GL_RENDERMETHOD 1.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Fri, 05 Aug 2005 00:02:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Graphics Driver: OpenGL 2.0.0 (NVIDIA Corporation)<br />  GeForce FX Go5700/AGP/SSE2/3DNOW! detected<br />  Set 800x600 32bpp fullscreen mode.</p><p>GL_RENDERMETHOD is already requested.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Fri, 05 Aug 2005 17:05:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>About the wrong colors - i did the same thing, loading PCX, saving them back into my file format and then in my game - load my format back to bitmaps (and then converting into AllegoGL textures).<br />But my textures were not RED, they were BLUE. I found that there are problem using RGB, BRG, ... formats. So check if you use the same colors when saving, or change it as you load it back..</p><p>BTW: how do you draw the textures ? I thing, if you do it the OpenGl way, you should have a lot of more FPS..<br />(wrote this in private message)<br />Try AllegroGL examples, what fps you&#39;ll get. (or your video card is capable off)</p><p>This is my basic drawing function (I&#39;m really a beginner in openGl, but this will do all you need - rotation, alpha, rgb changes).</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="k1">void</span> mydraw_sp<span class="k2">(</span>GLuint mytexture, <span class="k1">int</span> x,<span class="k1">int</span> y,<span class="k1">int</span> r,<span class="k1">int</span> g,<span class="k1">int</span> b,<span class="k1">int</span> alpha,<span class="k1">int</span> angle,<span class="k1">int</span> w,<span class="k1">int</span> h<span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td><span class="c">//Enable texturing on all models for now on.</span></td></tr><tr><td class="number">4</td><td>glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span><span class="c">//reset matrix</span></td></tr><tr><td class="number">5</td><td>glBindTexture<span class="k2">(</span>GL_TEXTURE_2D, mytexture<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td><span class="c">//Define how alpha blending will work and enable alpha blending.</span></td></tr><tr><td class="number">7</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">8</td><td>glEnable<span class="k2">(</span>GL_BLEND<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>glTranslatef<span class="k2">(</span>x, y, <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>glRotatef<span class="k2">(</span>angle, <span class="n">0</span>, <span class="n">0</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">11</td><td>glBegin<span class="k2">(</span>GL_QUADS<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>  <span class="c">//If we set the color to white here, then the textured quad won't be</span></td></tr><tr><td class="number">13</td><td>  <span class="c">//tinted red or half-see-through or something when we draw it based on</span></td></tr><tr><td class="number">14</td><td>  <span class="c">//the last call to glColor*().</span></td></tr><tr><td class="number">15</td><td>  glColor4ub<span class="k2">(</span>r, g, b, alpha<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>  <span class="c">//Draw our four points, clockwise.</span></td></tr><tr><td class="number">18</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="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</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>w, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">20</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>w, h, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</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>, h , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>glEnd<span class="k2">(</span><span class="k2">)</span><span class="k2">;</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><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Pavel Hilser)</author>
		<pubDate>Fri, 05 Aug 2005 19:48:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I test with your drawing function.<br />I already got thosesilly colors.</p><p>What i do for saving and loading colors is:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">for</span> each x pixel:
<span class="k1">for</span> each y pixel:
   color<span class="k3">=</span><a href="http://www.allegro.cc/manual/getpixel" target="_blank"><span class="a">getpixel</span></a><span class="k2">(</span>bmp , x , y<span class="k2">)</span>
   <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span> <span class="k3">&amp;</span>color , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>

<span class="k1">and</span> <span class="k1">for</span> reading:
reading number of pixel in x , y
creating bitmap
clearing to zero
<span class="k1">for</span> each x pixel:
<span class="k1">for</span> each y pixel:
   <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span> <span class="k3">&amp;</span>color , <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span> , <span class="n">1</span> , file <span class="k2">)</span><span class="k2">;</span>
   <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>bmp, x , y , color <span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

WTF with this ? i can&#39;t see where it swap rgb to rbg or other.<br />When i use set_trans_blender &amp; draw_trans_sprite, it works fine.</p><p>EDIT: i found this in the doc of allegroGL.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Important note: on 32 bit bitmap in RGBA mode, the alpha channel created by Allegro is set to all 0 by default. This will cause the texture to not show up in 32bpp modes if alpha is set. You will need to fill in the alpha channel manually if you need an alpha channel.
</p></div></div><p>

Help !</p><p>Ohé ! Bob Bombadil, Bob Bombadillon !<br />By the pixel, the bitmap, the screen and the layer,<br />By the great spirit of OpenGL , listen now and hear me<br />COme on, Bob Bombadil, my need is near me..
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Mon, 08 Aug 2005 17:33:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>what bpp you&#39;re using when saving ? and when using OGL ? is it the same ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Pavel Hilser)</author>
		<pubDate>Mon, 08 Aug 2005 18:30:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>bpp is the same at loading &amp; saving. it&#39;s 32 bpp.</p><p>If someone have time to help, i have attached some tga that i can be able to quickly blit using allegro&amp;agl.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Mon, 08 Aug 2005 18:35:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Would be nice if you posted some code, on occasion.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bob)</author>
		<pubDate>Mon, 08 Aug 2005 20:23:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here i made an example, who works very slow.</p><p>you can download it <br /><a href="http://www.nilorea.net/gull/Alpha/AGLTGABLITTER.zip">HERE</a> (with source code &amp; tga for test only 900 ko)</p><p>the source code is posted here too</p><p>agl.c:
</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;stdlib.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>&#160;</td></tr><tr><td class="number">5</td><td><span class="k1">int</span> it,</td></tr><tr><td class="number">6</td><td>    nbimg,</td></tr><tr><td class="number">7</td><td>    w,h<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="k1">char</span> name<span class="k2">[</span><span class="n">64</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>&#160;</td></tr><tr><td class="number">13</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><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>&#160;</td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span><span class="k3">*</span>tmp<span class="k2">;</span> <span class="c">/* for read the tga's */</span></td></tr><tr><td class="number">18</td><td> GLuint  <span class="k3">*</span>tex<span class="k2">;</span> <span class="c">/* for store the index returned by allegr_gl_make_texture */</span></td></tr><tr><td class="number">19</td><td>  </td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</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">22</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">23</td><td> </td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</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">32</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td> </td></tr><tr><td class="number">27</td><td> install_allegro_gl<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>   </td></tr><tr><td class="number">29</td><td> allegro_gl_clear_settings<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</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">31</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">32</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">33</td><td> allegro_gl_set <span class="k2">(</span>AGL_FULLSCREEN   , <span class="n">1</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td> allegro_gl_set <span class="k2">(</span>AGL_REQUIRE, AGL_RENDERMETHOD <span class="k3">|</span>AGL_COLOR_DEPTH <span class="k3">|</span> AGL_DOUBLEBUFFER <span class="k3">|</span> AGL_FULLSCREEN<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>&#160;</td></tr><tr><td class="number">36</td><td>  </td></tr><tr><td class="number">37</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_FULLSCREEN, <span class="n">800</span>, <span class="n">600</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">38</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">39</td><td>     <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"DUCK AND COVER!\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>     <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span>EXIT_FAILURE<span class="k2">)</span><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>&#160;</td></tr><tr><td class="number">43</td><td>&#160;</td></tr><tr><td class="number">44</td><td> allegro_gl_use_alpha_channel<span class="k2">(</span>TRUE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>  </td></tr><tr><td class="number">46</td><td>  </td></tr><tr><td class="number">47</td><td> nbimg <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_54.html" target="_blank">atoi</a><span class="k2">(</span> argv<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">48</td><td> tmp <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_551.html" target="_blank">malloc</a><span class="k2">(</span> nbimg <span class="k3">*</span> <span class="k1">sizeof</span><span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td> tex <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_551.html" target="_blank">malloc</a><span class="k2">(</span> nbimg <span class="k3">*</span> <span class="k1">sizeof</span><span class="k2">(</span> GLuint  <span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">50</td><td>&#160;</td></tr><tr><td class="number">51</td><td> </td></tr><tr><td class="number">52</td><td> <span class="k1">for</span><span class="k2">(</span> it <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> it <span class="k3">&lt;</span> nbimg <span class="k2">;</span> it <span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">53</td><td>    </td></tr><tr><td class="number">54</td><td>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_737.html" target="_blank">sprintf</a><span class="k2">(</span> name , <span class="s">"DATA/a+%04d.tga"</span> , it <span class="k3">+</span> <span class="n">1</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td>&#160;</td></tr><tr><td class="number">56</td><td>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"name: %s\n"</span>,name<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">57</td><td>         </td></tr><tr><td class="number">58</td><td>      tmp<span class="k2">[</span>it<span class="k2">]</span> <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>name, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">59</td><td>      </td></tr><tr><td class="number">60</td><td>      w<span class="k3">=</span>tmp<span class="k2">[</span>it<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>w<span class="k2">;</span></td></tr><tr><td class="number">61</td><td>      h<span class="k3">=</span>tmp<span class="k2">[</span>it<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>h<span class="k2">;</span></td></tr><tr><td class="number">62</td><td> </td></tr><tr><td class="number">63</td><td> <span class="k1">if</span> <span class="k2">(</span>tmp<span class="k2">[</span>it<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span></td></tr><tr><td class="number">64</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">65</td><td>     <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Error: couldn't find %s"</span>,name<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">66</td><td>     <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span>EXIT_FAILURE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">68</td><td>&#160;</td></tr><tr><td class="number">69</td><td> tex<span class="k2">[</span>it<span class="k2">]</span> <span class="k3">=</span> allegro_gl_make_texture<span class="k2">(</span>tmp<span class="k2">[</span>it<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>&#160;</td></tr><tr><td class="number">71</td><td> <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>tmp<span class="k2">[</span>it<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>&#160;</td></tr><tr><td class="number">73</td><td> <span class="k2">}</span></td></tr><tr><td class="number">74</td><td>&#160;</td></tr><tr><td class="number">75</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">76</td><td>&#160;</td></tr><tr><td class="number">77</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="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">78</td><td> </td></tr><tr><td class="number">79</td><td> glDisable<span class="k2">(</span>GL_DEPTH_TEST<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">80</td><td> glDisable<span class="k2">(</span>GL_LIGHTING<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">81</td><td> </td></tr><tr><td class="number">82</td><td> glMatrixMode<span class="k2">(</span>GL_PROJECTION<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">83</td><td> glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">84</td><td> </td></tr><tr><td class="number">85</td><td> glOrtho<span class="k2">(</span> <span class="n">0</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a>, <span class="n">0</span>, <span class="k3">-</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">86</td><td> </td></tr><tr><td class="number">87</td><td> glMatrixMode<span class="k2">(</span>GL_MODELVIEW<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">88</td><td> glLoadIdentity<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">89</td><td>&#160;</td></tr><tr><td class="number">90</td><td> glBlendFunc<span class="k2">(</span>GL_SRC_ALPHA, GL_ONE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">91</td><td>&#160;</td></tr><tr><td class="number">92</td><td> it<span class="k3">=</span><span class="k3">-</span><span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">93</td><td> </td></tr><tr><td class="number">94</td><td> glEnable<span class="k2">(</span>GL_TEXTURE_2D<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">95</td><td> </td></tr><tr><td class="number">96</td><td> </td></tr><tr><td class="number">97</td><td> w <span class="k3">=</span> w <span class="k3">/</span><span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">98</td><td> h <span class="k3">=</span> h <span class="k3">/</span><span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">99</td><td> </td></tr><tr><td class="number">100</td><td> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Graphics Driver: OpenGL %s (%s)\n"</span></td></tr><tr><td class="number">101</td><td>       <span class="s">"  %s detected\n"</span></td></tr><tr><td class="number">102</td><td>       <span class="s">"  Set %dx%d %dbpp %s mode\n"</span>,</td></tr><tr><td class="number">103</td><td>       glGetString<span class="k2">(</span>GL_VERSION<span class="k2">)</span>, glGetString<span class="k2">(</span>GL_VENDOR<span class="k2">)</span>,</td></tr><tr><td class="number">104</td><td>       glGetString<span class="k2">(</span>GL_RENDERER<span class="k2">)</span>,</td></tr><tr><td class="number">105</td><td>       <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a>, <a href="http://www.allegro.cc/manual/bitmap_color_depth" target="_blank"><span class="a">bitmap_color_depth</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span>,</td></tr><tr><td class="number">106</td><td>       <span class="k2">(</span>gfx_driver-&gt;windowed ? <span class="s">"windowed"</span> <span class="k2">:</span> <span class="s">"fullscreen"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">107</td><td> </td></tr><tr><td class="number">108</td><td> <span class="k1">do</span><span class="k2">{</span></td></tr><tr><td class="number">109</td><td> </td></tr><tr><td class="number">110</td><td> it<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">111</td><td> <span class="k1">if</span><span class="k2">(</span>it&gt;<span class="k3">=</span>nbimg<span class="k2">)</span>it<span class="k3">=</span><span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">112</td><td> </td></tr><tr><td class="number">113</td><td> glBindTexture<span class="k2">(</span>GL_TEXTURE_2D, tex<span class="k2">[</span>it<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">114</td><td> </td></tr><tr><td class="number">115</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">116</td><td> </td></tr><tr><td class="number">117</td><td> glEnable<span class="k2">(</span>GL_BLEND<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">118</td><td>                         </td></tr><tr><td class="number">119</td><td> glBegin<span class="k2">(</span>GL_QUADS<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">120</td><td>     glColor3f<span class="k2">(</span><span class="n">1</span>.<span class="n">0f</span>, <span class="n">1</span>.<span class="n">0f</span>, <span class="n">1</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">121</td><td>     glTexCoord2f<span class="k2">(</span><span class="n">0</span>.<span class="n">0f</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">122</td><td>     glVertex3f<span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">-</span> w  , <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">-</span> h  , <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">123</td><td>     glTexCoord2f<span class="k2">(</span><span class="n">1</span>.<span class="n">0f</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">124</td><td>     glVertex3f<span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">+</span> w  , <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">-</span> h  , <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">125</td><td>     glTexCoord2f<span class="k2">(</span><span class="n">1</span>.<span class="n">0f</span>, <span class="n">1</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">126</td><td>     glVertex3f<span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">+</span> w  , <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">+</span> h  , <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">127</td><td>     glTexCoord2f<span class="k2">(</span><span class="n">0</span>.<span class="n">0f</span>, <span class="n">1</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">128</td><td>     glVertex3f<span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">-</span> w  , <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">+</span> h  , <span class="n">0</span>.<span class="n">0f</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">129</td><td> glEnd<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">130</td><td> </td></tr><tr><td class="number">131</td><td> glDisable<span class="k2">(</span>GL_BLEND<span class="k2">)</span><span class="k2">;</span>                        </td></tr><tr><td class="number">132</td><td> </td></tr><tr><td class="number">133</td><td> allegro_gl_flip<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">134</td><td> </td></tr><tr><td class="number">135</td><td><span class="k2">}</span><span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">136</td><td> </td></tr><tr><td class="number">137</td><td> <span class="k1">for</span><span class="k2">(</span>it <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> it <span class="k3">&lt;</span> nbimg <span class="k2">;</span> it <span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span></td></tr><tr><td class="number">138</td><td> glDeleteTextures<span class="k2">(</span><span class="n">1</span>, <span class="k3">&amp;</span>tex<span class="k2">[</span>it<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">139</td><td> </td></tr><tr><td class="number">140</td><td> remove_allegro_gl<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">141</td><td> </td></tr><tr><td class="number">142</td><td> <a href="http://www.allegro.cc/manual/allegro_exit" target="_blank"><span class="a">allegro_exit</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">143</td><td> </td></tr><tr><td class="number">144</td><td> <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">145</td><td><span class="k2">}</span></td></tr><tr><td class="number">146</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>

It&#39;s working, good colors, but it is sloooow and the drivers is good.</p><p>EDIT: i&#39;m allowed myself to cut&amp;paste your 5 lines of code, kittycat, and the return is always :<br />Graphics Driver: OpenGL 2.0.0 (NVIDIA Corporation)<br />  GeForce FX Go5700/AGP/SSE2/3DNOW! detected<br />  Set 800x600 32bpp fullscreen mode</p><p>EDIT2: to test it, launch a command, and go to the atb directory, launch atb 35 (there are 35 tga in /DATA)</p><p>EDIT3: can&#39;t be able to speed this up... can it be a size issue? lemme check.</p><p>EDIT4: I test all examples in AllegroGL examples directory. Results are: exmasked is as slow as the pasted code. WTF !!²²!!</p><p>EDIT5: What can be the raison for exmasked to be so slow ? it is right for colors, but it is already so slow... </p><p>!!! IT WAS A DRIVER ISSUE !!! Nvidia&#39;s Update for GeforceFX Go 5700 are bad ... everything is better now <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /> i loose more than a week for a driver issue...</p><p>Sorry to have make you loose times ... can someone post for me to give cookies ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Tue, 09 Aug 2005 13:23:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Bump
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Tue, 09 Aug 2005 19:44:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>And no thanks to all for helping out (BAF is coockied because i bore him a lot on msn all along the day <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> and he bumps :p )
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Tue, 09 Aug 2005 19:45:55 +0000</pubDate>
	</item>
</rss>
