<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Mipmap flag on iOS simulator when using PROGRAMABLE_PIPELINE</title>
		<link>http://www.allegro.cc/forums/view/615066</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 22 Feb 2015 04:40:12 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>When using the mipmap bitmap flag on the iOS simulator and ALLEGRO_PROGRAMABLE_PIPELINE is set, then no bitmaps load. I tried ex_shader and got the same results, works without the flag, but does not work with it.</p><p>Has anyone been able to get it to work this way on a real iOS device, or seen this failure case on simulator?</p><p>Even bitmaps not used for shader purposes do not load, and I even tried a small 64x64 bitmap.</p><p>It seems to be that this:<br />   ALLEGRO_LOCKED_REGION *lock = al_lock_bitmap(bmp,<br />      ALLEGRO_PIXEL_FORMAT_ABGR_8888, ALLEGRO_LOCK_WRITEONLY);<br />returns NULL.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 10 Feb 2015 06:42:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>There shouldn&#39;t be any problems in locking a memory bitmap in that format... are you sure it returns NULL and that it&#39;s a memory bitmap? Wouldn&#39;t it just crash?</p><p>Also, check your allegro.log (it&#39;ll probably just tell you that it can&#39;t create a particular bitmap format).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 10 Feb 2015 08:56:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The lock fails here:
</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>   ok <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  2</span>
<span class="number">  3</span>   <span class="c">/* Set up the pixel store state.  We will need to match it when unlocking.</span>
<span class="number">  4</span><span class="c">    * There may be other pixel store state we should be setting.</span>
<span class="number">  5</span><span class="c">    * See also pitfalls 7 &amp; 8 from:</span>
<span class="number">  6</span><span class="c">    * http://www.opengl.org/resources/features/KilgardTechniques/oglpitfall/</span>
<span class="number">  7</span><span class="c">    */</span>
<span class="number">  8</span>   <span class="k2">{</span>
<span class="number">  9</span>      <span class="k1">const</span> <span class="k1">int</span> pixel_size <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_pixel_size"><span class="a">al_get_pixel_size</span></a><span class="k2">(</span>real_format<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>      <span class="k1">const</span> <span class="k1">int</span> pixel_alignment <span class="k3">=</span> ogl_pixel_alignment<span class="k2">(</span>pixel_size<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>      GLenum e<span class="k2">;</span>
<span class="number"> 12</span>      glPixelStorei<span class="k2">(</span>GL_PACK_ALIGNMENT, pixel_alignment<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>      e <span class="k3">=</span> glGetError<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>      <span class="k1">if</span> <span class="k2">(</span>e<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 15</span>         ALLEGRO_ERROR<span class="k2">(</span><span class="s">"glPixelStorei(GL_PACK_ALIGNMENT, %d) failed (%s).\n"</span>,
<span class="number"> 16</span>            pixel_alignment, _al_gl_error_string<span class="k2">(</span>e<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>         ok <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 18</span>      <span class="k2">}</span>
<span class="number"> 19</span>   <span class="k2">}</span>
</div></div><p>

ok becomes false, pixel alignment = 4</p><p>and it does crash when it tries to access the lock since loading a bitmap seems to assume the lock will succeed.</p><p>Looking at the gl docs, I see that this really should not fail, but somehow it does... GL_INVALID_ENUM is generated if pname is not an accepted value. But it is...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 10 Feb 2015 09:27:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Could you stick a <span class="source-code">glGetError</span> code before <span class="source-code">glPixelStorei</span>? Perhaps the error happens earlier and just happens to be ignored.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 10 Feb 2015 10:46:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It looks like you are correct, glGetLastError() has a value the moment before the call to glPixelStorei</p><p>Now for the fun part... tracking down which gl call is responsible :O</p><p>Update:<br />Allegro is not catching the issue, the issue happens here:<br />ogl_bitmap.c
</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="k1">if</span> <span class="k2">(</span>bitmap_flags <span class="k3">&amp;</span> ALLEGRO_MIPMAP<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  2</span>      <span class="c">/* If using FBOs, use glGenerateMipmapEXT instead of the GL_GENERATE_MIPMAP</span>
<span class="number">  3</span><span class="c">       * texture parameter.  GL_GENERATE_MIPMAP is deprecated in GL 3.0 so we</span>
<span class="number">  4</span><span class="c">       * may want to use the new method in other cases as well.</span>
<span class="number">  5</span><span class="c">       */</span>
<span class="number">  6</span>      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_opengl_extension_list"><span class="a">al_get_opengl_extension_list</span></a><span class="k2">(</span><span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>ALLEGRO_GL_EXT_framebuffer_object<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  7</span>         post_generate_mipmap <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  8</span>      <span class="k2">}</span>
<span class="number">  9</span>      <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 10</span><span class="c">//THIS CALL FAILS</span>
<span class="number"> 11</span>         glTexParameteri<span class="k2">(</span>GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>          e <span class="k3">=</span> glGetError<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>          <span class="k1">if</span> <span class="k2">(</span>e<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 14</span>              ALLEGRO_ERROR<span class="k2">(</span><span class="s">"tex3 for texture %d failed (%s).\n"</span>,
<span class="number"> 15</span>                            ogl_bitmap-&gt;texture, _al_gl_error_string<span class="k2">(</span>e<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>              <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"tex3 for texture %d failed (%s).\n"</span>,
<span class="number"> 17</span>                     ogl_bitmap-&gt;texture, _al_gl_error_string<span class="k2">(</span>e<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>          <span class="k2">}</span>
<span class="number"> 19</span>      <span class="k2">}</span>
<span class="number"> 20</span>   <span class="k2">}</span>
</div></div><p>

The glTexParameteri call fails and returns GL_INVALID_ENUM<br />gl docs say: GL_INVALID_ENUM is generated if target or pname is not one of the accepted defined values.<br />GL_INVALID_ENUM is generated if params should have a defined symbolic constant value (based on the value of pname) and does not.</p><p>Hopefully this gives more insight into the problem.</p><p>I wonder if it is a simulator-only issue...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 16 Feb 2015 09:30:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm, that can&#39;t be right since <span class="source-code">e <span class="k3">=</span> glGetError<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span> is right after it, which should clear the error flag.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Mon, 16 Feb 2015 12:10:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No, I added that error checking code in, I modified allegro and added error checks everywhere where there was a gl call and recompiled and this is the first one that triggers and it makes sense because adding the mipmap flag when shaders are enabled triggers the problem.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 16 Feb 2015 12:19:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ah, I see! Great work! Sounds like that function might be deprecated in some contexts, so perhaps that&#39;s why it fails. Could you stick a <span class="source-code">post_generate_mipmap <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></span> inside that error handling branch and see if the other mipmap generation option succeeds?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Mon, 16 Feb 2015 12:29:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, the good news is that it worked, though I had to add a call to glgeterror in the OpenGL_ES case:</p><div class="source-code snippet"><div class="inner"><pre>   <span class="k1">else</span> <span class="k2">{</span>
      <span class="k1">unsigned</span> <span class="k1">char</span> <span class="k3">*</span>buf<span class="k2">;</span>
      <span class="k1">int</span> pix_size <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_pixel_size"><span class="a">al_get_pixel_size</span></a><span class="k2">(</span>bitmap_format<span class="k2">)</span><span class="k2">;</span>
      buf <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_calloc"><span class="a">al_calloc</span></a><span class="k2">(</span>pix_size,
         ogl_bitmap-&gt;true_h <span class="k3">*</span> ogl_bitmap-&gt;true_w<span class="k2">)</span><span class="k2">;</span>
      glPixelStorei<span class="k2">(</span>GL_UNPACK_ALIGNMENT, pix_size<span class="k2">)</span><span class="k2">;</span>
      glTexImage2D<span class="k2">(</span>GL_TEXTURE_2D, <span class="n">0</span>, get_glformat<span class="k2">(</span>bitmap_format, <span class="n">0</span><span class="k2">)</span>,
         ogl_bitmap-&gt;true_w, ogl_bitmap-&gt;true_h, <span class="n">0</span>,
         get_glformat<span class="k2">(</span>bitmap_format, <span class="n">2</span><span class="k2">)</span>,
         get_glformat<span class="k2">(</span>bitmap_format, <span class="n">1</span><span class="k2">)</span>, buf<span class="k2">)</span><span class="k2">;</span>
       e <span class="k3">=</span> glGetError<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//here</span>
      <a href="http://www.allegro.cc/manual/al_free"><span class="a">al_free</span></a><span class="k2">(</span>buf<span class="k2">)</span><span class="k2">;</span>
   <span class="k2">}</span>
</pre></div></div><p>

and the call here succeeds:
</p><div class="source-code snippet"><div class="inner"><pre>
   <span class="k1">if</span> <span class="k2">(</span>post_generate_mipmap<span class="k2">)</span> <span class="k2">{</span>
      glGenerateMipmapEXT<span class="k2">(</span>GL_TEXTURE_2D<span class="k2">)</span><span class="k2">;</span>
      e <span class="k3">=</span> glGetError<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
      <span class="k1">if</span> <span class="k2">(</span>e<span class="k2">)</span> <span class="k2">{</span>
         ALLEGRO_ERROR<span class="k2">(</span><span class="s">"glGenerateMipmapEXT for texture %d failed (%s).\n"</span>,
            ogl_bitmap-&gt;texture, _al_gl_error_string<span class="k2">(</span>e<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
          <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"glGenerateMipmapEXT for texture %d failed (%s).\n"</span>,
                        ogl_bitmap-&gt;texture, _al_gl_error_string<span class="k2">(</span>e<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
      <span class="k2">}</span>
   <span class="k2">}</span>
</pre></div></div><p>

But for some reason, the alpha of many of my textures is rendering incorrectly. It&#39;s as if, on select textures I decided to draw a tinted bitmap where alpha&lt; 1. The alpha varies from about 0.5 to 0 on several textures. It creates some funny effects.</p><p>Any insight on what could cause that?<br />If I take off mipmapping all alphas are happy.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 16 Feb 2015 21:26:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Shotting a bit in the dark here, but how about trying this patch? It merely forces the OpenGL to rebuild the mipmaps after every unlock operation.</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>diff <span class="k3">-</span><span class="k3">-</span>git a<span class="k3">/</span>src<span class="k3">/</span>opengl<span class="k3">/</span>ogl_lock_es.c b<span class="k3">/</span>src<span class="k3">/</span>opengl<span class="k3">/</span>ogl_lock_es.c
<span class="number">  2</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="n">777a954</span>..<span class="n">8b5a234</span> <span class="n">100644</span>
<span class="number">  3</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span> a<span class="k3">/</span>src<span class="k3">/</span>opengl<span class="k3">/</span>ogl_lock_es.c
<span class="number">  4</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span> b<span class="k3">/</span>src<span class="k3">/</span>opengl<span class="k3">/</span>ogl_lock_es.c
<span class="number">  5</span>@@ <span class="k3">-</span><span class="n">559</span>,<span class="n">16</span> <span class="k3">+</span><span class="n">559</span>,<span class="n">16</span> @@ <span class="k1">static</span> <span class="k1">void</span> ogl_unlock_region_nonbb<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>bitmap,
<span class="number">  6</span> 
<span class="number">  7</span>    <span class="c">/* If using FBOs, we need to regenerate mipmaps explicitly now. */</span>
<span class="number">  8</span>    <span class="c">/* XXX why don't we check ogl_bitmap-&gt;fbo_info? */</span>
<span class="number">  9</span><span class="k3">-</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_bitmap_flags"><span class="a">al_get_bitmap_flags</span></a><span class="k2">(</span>bitmap<span class="k2">)</span> <span class="k3">&amp;</span> ALLEGRO_MIPMAP<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 10</span><span class="k3">-</span>      <a href="http://www.allegro.cc/manual/al_get_opengl_extension_list"><span class="a">al_get_opengl_extension_list</span></a><span class="k2">(</span><span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>ALLEGRO_GL_EXT_framebuffer_object<span class="k2">)</span>
<span class="number"> 11</span><span class="k3">-</span>   <span class="k2">{</span>
<span class="number"> 12</span><span class="k3">+</span>   <span class="c">//~ if ((al_get_bitmap_flags(bitmap) &amp; ALLEGRO_MIPMAP) &amp;&amp;</span>
<span class="number"> 13</span><span class="k3">+</span>      <span class="c">//~ al_get_opengl_extension_list()-&gt;ALLEGRO_GL_EXT_framebuffer_object)</span>
<span class="number"> 14</span><span class="k3">+</span>   <span class="c">//~ {</span>
<span class="number"> 15</span>       glGenerateMipmapEXT<span class="k2">(</span>GL_TEXTURE_2D<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>       e <span class="k3">=</span> glGetError<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>       <span class="k1">if</span> <span class="k2">(</span>e<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 18</span>          ALLEGRO_ERROR<span class="k2">(</span><span class="s">"glGenerateMipmapEXT for texture %d failed (%s).\n"</span>,
<span class="number"> 19</span>             ogl_bitmap-&gt;texture, _al_gl_error_string<span class="k2">(</span>e<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>       <span class="k2">}</span>
<span class="number"> 21</span><span class="k3">-</span>   <span class="k2">}</span>
<span class="number"> 22</span><span class="k3">+</span>   <span class="c">//~ }</span>
<span class="number"> 23</span> 
<span class="number"> 24</span>    <span class="k1">if</span> <span class="k2">(</span>old_disp<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 25</span>       _al_set_current_display_only<span class="k2">(</span>old_disp<span class="k2">)</span><span class="k2">;</span>
</div></div><p>

I should note that it&#39;s a little bizzare how there&#39;s no FBO extension...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 17 Feb 2015 01:01:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Woo, that completely solved the problem!</p><p>So now the question is, how can this be implemented elegantly enough to be pushed to Allegro?</p><p>If you have some suggestions I&#39;ll be happy to send you a patch. In the state that it is in, it doesn&#39;t seem right because of the FBO stuff.</p><p>Though, if you made the patch and I tested it that would probably be better because the ide I use adds all kinds of tabs and such and I remember last time I contributed to Allegro this was a problem since Allegro uses space indentation.</p><p>I suspect what happens is, when GL_ES goes into PROGRAMMABLE_PIPELINE mode, then perhaps the old way of generating mipmaps becomes deprecated and it must go through the FBO extension method. Whereas when not using programmable pipeline, the GL_ES context is fine with using the old way of generating mipmaps.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 17 Feb 2015 02:45:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah, so it&#39;s a little strange how you don&#39;t seem to have the FBO extension, yet the glGenerateMipmapEXT is loaded fine... <s>I guess what could be done is to alter the check in `ogl_bitmap.c` from `if (post_generate_mipmap)` to `if (post_generate_mipmap &amp;&amp; glGenerateMipmapExt != NULL)`.</s> Then, if that call succeeds we could set a variable called <span class="source-code">generate_mipmaps_manually</span> in <span class="source-code">ALLEGRO_BITMAP_EXTRA_OPENGL</span> and then check that variable inside the unlocking code (and if its true, we call <span class="source-code">glGenerateMipmapExt</span> again).</p><p>EDIT:</p><p>Actually, it occurs to me that the extension name might be different on GLES. Try this code:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_opengl_extension_list"><span class="a">al_get_opengl_extension_list</span></a><span class="k2">(</span><span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>ALLEGRO_GL_EXT_framebuffer_object <span class="k3">|</span><span class="k3">|</span>
    <a href="http://www.allegro.cc/manual/al_get_opengl_extension_list"><span class="a">al_get_opengl_extension_list</span></a><span class="k2">(</span><span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>ALLEGRO_GL_OES_framebuffer_object<span class="k2">)</span> <span class="k2">{</span>
   post_generate_mipmap <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

This is inside <span class="source-code">ogl_bitmap.c</span>. This should trigger on the simulator and set <span class="source-code">post_generate_mipmap</span> correctly.</p><p>EDIT2:</p><p>In fact, try the attached patch. If that works, then a combination of that patch and all the extra error checks you added would be great.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 17 Feb 2015 03:28:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Unfortunately that extension does not appear to be = to 1.</p><p>Here is the extension list:
</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>ALLEGRO_GL_ARB_imaging  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">   2</span>ALLEGRO_GL_ARB_multitexture  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">   3</span>ALLEGRO_GL_ARB_transpose_matrix  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">   4</span>ALLEGRO_GL_ARB_multisample  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">   5</span>ALLEGRO_GL_ARB_texture_env_add  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">   6</span>ALLEGRO_GL_ARB_texture_cube_map  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">   7</span>ALLEGRO_GL_ARB_texture_compression  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">   8</span>ALLEGRO_GL_ARB_texture_border_clamp  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">   9</span>ALLEGRO_GL_ARB_point_parameters  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  10</span>ALLEGRO_GL_ARB_vertex_blend  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  11</span>ALLEGRO_GL_ARB_texture_env_combine  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  12</span>ALLEGRO_GL_ARB_texture_env_crossbar  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  13</span>ALLEGRO_GL_ARB_texture_env_dot3  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  14</span>ALLEGRO_GL_ARB_texture_mirrored_repeat  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  15</span>ALLEGRO_GL_ARB_depth_texture  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  16</span>ALLEGRO_GL_ARB_shadow  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  17</span>ALLEGRO_GL_ARB_shadow_ambient  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  18</span>ALLEGRO_GL_ARB_window_pos  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  19</span>ALLEGRO_GL_ARB_vertex_program  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  20</span>ALLEGRO_GL_ARB_fragment_program  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  21</span>ALLEGRO_GL_ARB_vertex_buffer_object  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  22</span>ALLEGRO_GL_ARB_occlusion_query  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  23</span>ALLEGRO_GL_ARB_shader_objects  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  24</span>ALLEGRO_GL_ARB_vertex_shader  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  25</span>ALLEGRO_GL_ARB_fragment_shader  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  26</span>ALLEGRO_GL_ARB_shading_language_100  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  27</span>ALLEGRO_GL_ARB_texture_non_power_of_two  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  28</span>ALLEGRO_GL_ARB_point_sprite  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  29</span>ALLEGRO_GL_ARB_fragment_program_shadow  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  30</span>ALLEGRO_GL_ARB_draw_buffers  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  31</span>ALLEGRO_GL_ARB_texture_rectangle  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  32</span>ALLEGRO_GL_ARB_color_buffer_float  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  33</span>ALLEGRO_GL_ARB_half_float_pixel  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  34</span>ALLEGRO_GL_ARB_texture_float  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  35</span>ALLEGRO_GL_ARB_pixel_buffer_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  36</span>ALLEGRO_GL_ARB_instanced_arrays  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  37</span>ALLEGRO_GL_ARB_draw_instanced  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  38</span>ALLEGRO_GL_ARB_geometry_shader4  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  39</span>ALLEGRO_GL_ARB_texture_buffer_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  40</span>ALLEGRO_GL_ARB_depth_buffer_float  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  41</span>ALLEGRO_GL_ARB_framebuffer_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  42</span>ALLEGRO_GL_ARB_framebuffer_sRGB  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  43</span>ALLEGRO_GL_ARB_half_float_vertex  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  44</span>ALLEGRO_GL_ARB_map_buffer_range  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  45</span>ALLEGRO_GL_ARB_texture_compression_rgtc  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  46</span>ALLEGRO_GL_ARB_texture_rg  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  47</span>ALLEGRO_GL_ARB_vertex_array_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  48</span>ALLEGRO_GL_ARB_copy_buffer  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  49</span>ALLEGRO_GL_ARB_compatibility  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  50</span>ALLEGRO_GL_ARB_uniform_buffer_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  51</span>ALLEGRO_GL_ARB_shader_texture_lod  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  52</span>ALLEGRO_GL_ARB_depth_clamp  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  53</span>ALLEGRO_GL_ARB_draw_elements_base_vertex  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  54</span>ALLEGRO_GL_ARB_fragment_coord_conventions  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  55</span>ALLEGRO_GL_ARB_provoking_vertex  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  56</span>ALLEGRO_GL_ARB_seamless_cube_map  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  57</span>ALLEGRO_GL_ARB_sync  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  58</span>ALLEGRO_GL_ARB_texture_multisample  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  59</span>ALLEGRO_GL_ARB_vertex_array_bgra  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  60</span>ALLEGRO_GL_ARB_draw_buffers_blend  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  61</span>ALLEGRO_GL_ARB_sample_shading  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  62</span>ALLEGRO_GL_ARB_texture_cube_map_array  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  63</span>ALLEGRO_GL_ARB_texture_gather  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  64</span>ALLEGRO_GL_ARB_texture_query_lod  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  65</span>ALLEGRO_GL_ARB_shading_language_include  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  66</span>ALLEGRO_GL_ARB_texture_compression_bptc  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  67</span>ALLEGRO_GL_ARB_blend_func_extended  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  68</span>ALLEGRO_GL_ARB_explicit_attrib_location  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  69</span>ALLEGRO_GL_ARB_occlusion_query2  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  70</span>ALLEGRO_GL_ARB_sampler_objects  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  71</span>ALLEGRO_GL_ARB_shader_bit_encoding  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  72</span>ALLEGRO_GL_ARB_texture_rgb10_a2ui  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  73</span>ALLEGRO_GL_ARB_texture_swizzle  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  74</span>ALLEGRO_GL_ARB_timer_query  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  75</span>ALLEGRO_GL_ARB_vertex_type_2_10_10_10_rev  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  76</span>ALLEGRO_GL_ARB_draw_indirect  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  77</span>ALLEGRO_GL_ARB_gpu_shader5  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  78</span>ALLEGRO_GL_ARB_gpu_shader_fp64  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  79</span>ALLEGRO_GL_ARB_shader_subroutine  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  80</span>ALLEGRO_GL_ARB_tessellation_shader  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  81</span>ALLEGRO_GL_ARB_texture_buffer_object_rgb32  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  82</span>ALLEGRO_GL_ARB_transform_feedback2  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  83</span>ALLEGRO_GL_ARB_transform_feedback3  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  84</span>ALLEGRO_GL_EXT_abgr  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  85</span>ALLEGRO_GL_EXT_blend_color  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  86</span>ALLEGRO_GL_EXT_polygon_offset  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  87</span>ALLEGRO_GL_EXT_texture  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  88</span>ALLEGRO_GL_EXT_texture3D  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  89</span>ALLEGRO_GL_SGIS_texture_filter4  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  90</span>ALLEGRO_GL_EXT_subtexture  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  91</span>ALLEGRO_GL_EXT_copy_texture  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number">  92</span>ALLEGRO_GL_EXT_histogram  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  93</span>ALLEGRO_GL_EXT_convolution  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  94</span>ALLEGRO_GL_SGI_color_matrix  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  95</span>ALLEGRO_GL_SGI_color_table  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  96</span>ALLEGRO_GL_SGIS_pixel_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  97</span>ALLEGRO_GL_SGIX_pixel_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  98</span>ALLEGRO_GL_SGIS_texture4D  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number">  99</span>ALLEGRO_GL_SGI_texture_color_table  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 100</span>ALLEGRO_GL_EXT_cmyka  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 101</span>ALLEGRO_GL_EXT_texture_object  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 102</span>ALLEGRO_GL_SGIS_detail_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 103</span>ALLEGRO_GL_SGIS_sharpen_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 104</span>ALLEGRO_GL_EXT_packed_pixels  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 105</span>ALLEGRO_GL_SGIS_texture_lod  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 106</span>ALLEGRO_GL_SGIS_multisample  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 107</span>ALLEGRO_GL_EXT_rescale_normal  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 108</span>ALLEGRO_GL_EXT_vertex_array  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 109</span>ALLEGRO_GL_EXT_misc_attribute  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 110</span>ALLEGRO_GL_SGIS_generate_mipmap  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 111</span>ALLEGRO_GL_SGIX_clipmap  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 112</span>ALLEGRO_GL_SGIX_shadow  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 113</span>ALLEGRO_GL_SGIS_texture_edge_clamp  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 114</span>ALLEGRO_GL_SGIS_texture_border_clamp  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 115</span>ALLEGRO_GL_EXT_blend_minmax  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 116</span>ALLEGRO_GL_EXT_blend_subtract  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 117</span>ALLEGRO_GL_EXT_blend_logic_op  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 118</span>ALLEGRO_GL_SGIX_interlace  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 119</span>ALLEGRO_GL_SGIS_texture_select  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 120</span>ALLEGRO_GL_SGIX_sprite  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 121</span>ALLEGRO_GL_SGIX_texture_multi_buffer  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 122</span>ALLEGRO_GL_EXT_point_parameters  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 123</span>ALLEGRO_GL_SGIX_instruments  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 124</span>ALLEGRO_GL_SGIX_texture_scale_bias  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 125</span>ALLEGRO_GL_SGIX_framezoom  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 126</span>ALLEGRO_GL_SGIX_tag_sample_buffer  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 127</span>ALLEGRO_GL_SGIX_reference_plane  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 128</span>ALLEGRO_GL_SGIX_flush_raster  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 129</span>ALLEGRO_GL_SGIX_depth_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 130</span>ALLEGRO_GL_SGIS_fog_function  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 131</span>ALLEGRO_GL_SGIX_fog_offset  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 132</span>ALLEGRO_GL_HP_image_transform  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 133</span>ALLEGRO_GL_HP_convolution_border_modes  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 134</span>ALLEGRO_GL_SGIX_texture_add_env  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 135</span>ALLEGRO_GL_EXT_color_subtable  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 136</span>ALLEGRO_GL_PGI_vertex_hints  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 137</span>ALLEGRO_GL_PGI_misc_hints  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 138</span>ALLEGRO_GL_EXT_paletted_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 139</span>ALLEGRO_GL_EXT_clip_volume_hint  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 140</span>ALLEGRO_GL_SGIX_list_priority  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 141</span>ALLEGRO_GL_SGIX_ir_instrument1  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 142</span>ALLEGRO_GL_SGIX_texture_lod_bias  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 143</span>ALLEGRO_GL_SGIX_shadow_ambient  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 144</span>ALLEGRO_GL_EXT_index_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 145</span>ALLEGRO_GL_EXT_index_material  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 146</span>ALLEGRO_GL_EXT_index_func  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 147</span>ALLEGRO_GL_EXT_index_array_formats  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 148</span>ALLEGRO_GL_EXT_compiled_vertex_array  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 149</span>ALLEGRO_GL_EXT_cull_vertex  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 150</span>ALLEGRO_GL_SGIX_ycrcb  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 151</span>ALLEGRO_GL_EXT_fragment_lighting  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 152</span>ALLEGRO_GL_IBM_rasterpos_clip  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 153</span>ALLEGRO_GL_HP_texture_lighting  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 154</span>ALLEGRO_GL_EXT_draw_range_elements  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 155</span>ALLEGRO_GL_WIN_phong_shading  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 156</span>ALLEGRO_GL_WIN_specular_fog  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 157</span>ALLEGRO_GL_EXT_light_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 158</span>ALLEGRO_GL_SGIX_blend_alpha_minmax  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 159</span>ALLEGRO_GL_EXT_scene_marker  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 160</span>ALLEGRO_GL_SGIX_pixel_texture_bits  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 161</span>ALLEGRO_GL_EXT_bgra  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 162</span>ALLEGRO_GL_SGIX_async  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 163</span>ALLEGRO_GL_SGIX_async_pixel  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 164</span>ALLEGRO_GL_SGIX_async_histogram  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 165</span>ALLEGRO_GL_INTEL_texture_scissor  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 166</span>ALLEGRO_GL_INTEL_parallel_arrays  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 167</span>ALLEGRO_GL_HP_occlusion_test  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 168</span>ALLEGRO_GL_EXT_pixel_transform  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 169</span>ALLEGRO_GL_EXT_pixel_transform_color_table  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 170</span>ALLEGRO_GL_EXT_shared_texture_palette  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 171</span>ALLEGRO_GL_EXT_separate_specular_color  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 172</span>ALLEGRO_GL_EXT_secondary_color  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 173</span>ALLEGRO_GL_EXT_texture_env  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 174</span>ALLEGRO_GL_EXT_texture_perturb_normal  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 175</span>ALLEGRO_GL_EXT_multi_draw_arrays  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 176</span>ALLEGRO_GL_EXT_fog_coord  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 177</span>ALLEGRO_GL_REND_screen_coordinates  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 178</span>ALLEGRO_GL_EXT_coordinate_frame  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 179</span>ALLEGRO_GL_EXT_texture_env_combine  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 180</span>ALLEGRO_GL_APPLE_specular_vector  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 181</span>ALLEGRO_GL_APPLE_transform_hint  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 182</span>ALLEGRO_GL_SUNX_constant_data  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 183</span>ALLEGRO_GL_SUN_global_alpha  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 184</span>ALLEGRO_GL_SUN_triangle_list  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 185</span>ALLEGRO_GL_SUN_vertex  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 186</span>ALLEGRO_GL_EXT_blend_func_separate  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 187</span>ALLEGRO_GL_INGR_color_clamp  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 188</span>ALLEGRO_GL_INGR_interlace_read  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 189</span>ALLEGRO_GL_EXT_stencil_wrap  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 190</span>ALLEGRO_GL_EXT_422_pixels  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 191</span>ALLEGRO_GL_NV_texgen_reflection  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 192</span>ALLEGRO_GL_SGIX_texture_range  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 193</span>ALLEGRO_GL_SUN_convolution_border_modes  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 194</span>ALLEGRO_GL_EXT_texture_env_add  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 195</span>ALLEGRO_GL_EXT_texture_lod_bias  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 196</span>ALLEGRO_GL_EXT_texture_filter_anisotropic  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 197</span>ALLEGRO_GL_EXT_vertex_weighting  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 198</span>ALLEGRO_GL_NV_light_max_exponent  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 199</span>ALLEGRO_GL_NV_vertex_array_range  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 200</span>ALLEGRO_GL_NV_register_combiners  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 201</span>ALLEGRO_GL_NV_fog_distance  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 202</span>ALLEGRO_GL_NV_texgen_emboss  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 203</span>ALLEGRO_GL_NV_blend_square  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 204</span>ALLEGRO_GL_NV_texture_env_combine4  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 205</span>ALLEGRO_GL_MESA_resize_buffers  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 206</span>ALLEGRO_GL_MESA_window_pos  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 207</span>ALLEGRO_GL_EXT_texture_compression_s3tc  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 208</span>ALLEGRO_GL_IBM_cull_vertex  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 209</span>ALLEGRO_GL_IBM_multimode_draw_arrays  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 210</span>ALLEGRO_GL_IBM_vertex_array_lists  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 211</span>ALLEGRO_GL_3DFX_texture_compression_FXT1  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 212</span>ALLEGRO_GL_3DFX_multisample  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 213</span>ALLEGRO_GL_3DFX_tbuffer  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 214</span>ALLEGRO_GL_SGIX_vertex_preclip  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 215</span>ALLEGRO_GL_SGIX_resample  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 216</span>ALLEGRO_GL_SGIS_texture_color_mask  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 217</span>ALLEGRO_GL_EXT_texture_env_dot3  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 218</span>ALLEGRO_GL_ATI_texture_mirror_once  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 219</span>ALLEGRO_GL_NV_fence  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 220</span>ALLEGRO_GL_IBM_static_data  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 221</span>ALLEGRO_GL_IBM_texture_mirrored_repeat  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 222</span>ALLEGRO_GL_NV_evaluators  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 223</span>ALLEGRO_GL_NV_packed_depth_stencil  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 224</span>ALLEGRO_GL_NV_register_combiners2  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 225</span>ALLEGRO_GL_NV_texture_compression_vtc  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 226</span>ALLEGRO_GL_NV_texture_rectangle  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 227</span>ALLEGRO_GL_NV_texture_shader  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 228</span>ALLEGRO_GL_NV_texture_shader2  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 229</span>ALLEGRO_GL_NV_vertex_array_range2  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 230</span>ALLEGRO_GL_NV_vertex_program  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 231</span>ALLEGRO_GL_SGIX_texture_coordinate_clamp  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 232</span>ALLEGRO_GL_OML_interlace  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 233</span>ALLEGRO_GL_OML_subsample  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 234</span>ALLEGRO_GL_OML_resample  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 235</span>ALLEGRO_GL_NV_copy_depth_to_color  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 236</span>ALLEGRO_GL_ATI_envmap_bumpmap  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 237</span>ALLEGRO_GL_ATI_fragment_shader  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 238</span>ALLEGRO_GL_ATI_pn_triangles  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 239</span>ALLEGRO_GL_ATI_vertex_array_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 240</span>ALLEGRO_GL_EXT_vertex_shader  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 241</span>ALLEGRO_GL_ATI_vertex_streams  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 242</span>ALLEGRO_GL_ATI_element_array  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 243</span>ALLEGRO_GL_SUN_mesh_array  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 244</span>ALLEGRO_GL_SUN_slice_accum  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 245</span>ALLEGRO_GL_NV_multisample_filter_hint  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 246</span>ALLEGRO_GL_NV_depth_clamp  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 247</span>ALLEGRO_GL_NV_occlusion_query  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 248</span>ALLEGRO_GL_NV_point_sprite  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 249</span>ALLEGRO_GL_NV_texture_shader3  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 250</span>ALLEGRO_GL_NV_vertex_program1_1  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 251</span>ALLEGRO_GL_EXT_shadow_funcs  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 252</span>ALLEGRO_GL_EXT_stencil_two_side  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 253</span>ALLEGRO_GL_ATI_text_fragment_shader  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 254</span>ALLEGRO_GL_APPLE_client_storage  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 255</span>ALLEGRO_GL_APPLE_element_array  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 256</span>ALLEGRO_GL_APPLE_fence  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 257</span>ALLEGRO_GL_APPLE_vertex_array_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 258</span>ALLEGRO_GL_APPLE_vertex_array_range  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 259</span>ALLEGRO_GL_APPLE_ycbcr_422  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 260</span>ALLEGRO_GL_S3_s3tc  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 261</span>ALLEGRO_GL_ATI_draw_buffers  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 262</span>ALLEGRO_GL_ATI_texture_env_combine3  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 263</span>ALLEGRO_GL_ATI_texture_float  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 264</span>ALLEGRO_GL_NV_float_buffer  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 265</span>ALLEGRO_GL_NV_fragment_program  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 266</span>ALLEGRO_GL_NV_half_float  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 267</span>ALLEGRO_GL_NV_pixel_data_range  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 268</span>ALLEGRO_GL_NV_primitive_restart  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 269</span>ALLEGRO_GL_NV_texture_expand_normal  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 270</span>ALLEGRO_GL_NV_vertex_program2  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 271</span>ALLEGRO_GL_ATI_map_object_buffer  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 272</span>ALLEGRO_GL_ATI_separate_stencil  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 273</span>ALLEGRO_GL_ATI_vertex_attrib_array_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 274</span>ALLEGRO_GL_OES_byte_coordinates  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 275</span>ALLEGRO_GL_OES_fixed_point  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 276</span>ALLEGRO_GL_OES_single_precision  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 277</span>ALLEGRO_GL_OES_compressed_paletted_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 278</span>ALLEGRO_GL_OES_read_format  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 279</span>ALLEGRO_GL_OES_query_matrix  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 280</span>ALLEGRO_GL_OES_framebuffer_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 281</span>ALLEGRO_GL_OES_texture_npot  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 282</span>ALLEGRO_GL_EXT_depth_bounds_test  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 283</span>ALLEGRO_GL_EXT_texture_mirror_clamp  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 284</span>ALLEGRO_GL_EXT_blend_equation_separate  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 285</span>ALLEGRO_GL_MESA_pack_invert  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 286</span>ALLEGRO_GL_MESA_ycbcr_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 287</span>ALLEGRO_GL_EXT_pixel_buffer_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 288</span>ALLEGRO_GL_NV_fragment_program_option  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 289</span>ALLEGRO_GL_NV_fragment_program2  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 290</span>ALLEGRO_GL_NV_vertex_program2_option  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 291</span>ALLEGRO_GL_NV_vertex_program3  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 292</span>ALLEGRO_GL_EXT_texture_compression_dxt1  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 293</span>ALLEGRO_GL_EXT_framebuffer_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 294</span>ALLEGRO_GL_GREMEDY_string_marker  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 295</span>ALLEGRO_GL_EXT_packed_depth_stencil  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 296</span>ALLEGRO_GL_EXT_stencil_clear_tag  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 297</span>ALLEGRO_GL_EXT_texture_sRGB  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 298</span>ALLEGRO_GL_EXT_framebuffer_blit  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 299</span>ALLEGRO_GL_EXT_framebuffer_multisample  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 300</span>ALLEGRO_GL_MESAX_texture_stack  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 301</span>ALLEGRO_GL_EXT_timer_query  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 302</span>ALLEGRO_GL_EXT_gpu_program_parameters  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 303</span>ALLEGRO_GL_APPLE_flush_buffer_range  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 304</span>ALLEGRO_GL_EXT_bindable_uniform  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 305</span>ALLEGRO_GL_EXT_draw_buffers2  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 306</span>ALLEGRO_GL_EXT_draw_instanced  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 307</span>ALLEGRO_GL_EXT_framebuffer_sRGB  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 308</span>ALLEGRO_GL_EXT_geometry_shader4  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 309</span>ALLEGRO_GL_EXT_gpu_shader4  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 310</span>ALLEGRO_GL_EXT_packed_float  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 311</span>ALLEGRO_GL_EXT_texture_array  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 312</span>ALLEGRO_GL_EXT_texture_buffer_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 313</span>ALLEGRO_GL_EXT_texture_compression_latc  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 314</span>ALLEGRO_GL_EXT_texture_compression_rgtc  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 315</span>ALLEGRO_GL_EXT_texture_integer  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 316</span>ALLEGRO_GL_EXT_texture_shared_exponent  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 317</span>ALLEGRO_GL_NV_depth_buffer_float  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 318</span>ALLEGRO_GL_NV_fragment_program4  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 319</span>ALLEGRO_GL_NV_framebuffer_multisample_coverage  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 320</span>ALLEGRO_GL_NV_geometry_program4  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 321</span>ALLEGRO_GL_NV_gpu_program4  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 322</span>ALLEGRO_GL_NV_parameter_buffer_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 323</span>ALLEGRO_GL_NV_transform_feedback  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 324</span>ALLEGRO_GL_NV_vertex_program4  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 325</span>ALLEGRO_GL_GREMEDY_frame_terminator  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 326</span>ALLEGRO_GL_NV_conditional_render  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 327</span>ALLEGRO_GL_NV_present_video  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 328</span>ALLEGRO_GL_EXT_direct_state_access  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 329</span>ALLEGRO_GL_EXT_transform_feedback  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 330</span>ALLEGRO_GL_EXT_texture_swizzle  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 331</span>ALLEGRO_GL_NV_explicit_multisample  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 332</span>ALLEGRO_GL_NV_transform_feedback2  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 333</span>ALLEGRO_GL_ATI_meminfo  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 334</span>ALLEGRO_GL_AMD_performance_monitor  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 335</span>ALLEGRO_GL_AMD_texture_texture4  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 336</span>ALLEGRO_GL_AMD_vertex_shader_tesselator  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 337</span>ALLEGRO_GL_EXT_provoking_vertex  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 338</span>ALLEGRO_GL_EXT_texture_snorm  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 339</span>ALLEGRO_GL_AMD_draw_buffers_blend  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 340</span>ALLEGRO_GL_APPLE_texture_range  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 341</span>ALLEGRO_GL_APPLE_float_pixels  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 342</span>ALLEGRO_GL_APPLE_vertex_program_evaluators  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 343</span>ALLEGRO_GL_APPLE_aux_depth_stencil  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 344</span>ALLEGRO_GL_APPLE_object_purgeable  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 345</span>ALLEGRO_GL_APPLE_row_bytes  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 346</span>ALLEGRO_GL_APPLE_rgb_422  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 347</span>ALLEGRO_GL_NV_video_capture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 348</span>ALLEGRO_GL_EXT_separate_shader_objects  <span class="k1">int</span>  <span class="n">1</span>  <span class="n">1</span>
<span class="number"> 349</span>ALLEGRO_GL_NV_parameter_buffer_object2  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 350</span>ALLEGRO_GL_NV_shader_buffer_load  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 351</span>ALLEGRO_GL_NV_vertex_buffer_unified_memory  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 352</span>ALLEGRO_GL_NV_texture_barrier  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 353</span>ALLEGRO_GL_AMD_shader_stencil_export  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 354</span>ALLEGRO_GL_AMD_seamless_cubemap_per_texture  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
<span class="number"> 355</span>ALLEGRO_GL_AMD_conservative_depth  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
</div></div><p>

If you see a 1 then it has it.</p><p>The extension we desire says 0:
</p><div class="source-code snippet"><div class="inner"><pre> ALLEGRO_GL_OES_framebuffer_object  <span class="k1">int</span>  <span class="n">0</span>  <span class="n">0</span>
</pre></div></div><p>

I wonder if this is an allegro problem or a simulator problem... it clearly has the extension but it says it does not....</p><p>This guy here uses the simulator and oes_framebuffer is supported for him on simulator... <a href="http://forum.openscenegraph.org/viewtopic.php?t=9063">http://forum.openscenegraph.org/viewtopic.php?t=9063</a></p><p>Which leads me to think maybe allegro is not reporting correctly...</p><p>EDIT:</p><p>The extension string returns this:
</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>GL_OES_depth_texture GL_OES_depth24 GL_OES_element_index_uint 
<span class="number">  2</span>
<span class="number">  3</span>GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_packed_depth_stencil
<span class="number">  4</span>
<span class="number">  5</span>GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_float 
<span class="number">  6</span>
<span class="number">  7</span>GL_OES_texture_half_float GL_OES_texture_half_float_linear 
<span class="number">  8</span>
<span class="number">  9</span>GL_OES_vertex_array_object GL_EXT_blend_minmax GL_EXT_color_buffer_half_float 
<span class="number"> 10</span>
<span class="number"> 11</span>GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer 
<span class="number"> 12</span>
<span class="number"> 13</span>GL_EXT_draw_instanced GL_EXT_instanced_arrays GL_EXT_map_buffer_range 
<span class="number"> 14</span>
<span class="number"> 15</span>GL_EXT_occlusion_query_boolean GL_EXT_pvrtc_sRGB GL_EXT_read_format_bgra 
<span class="number"> 16</span>
<span class="number"> 17</span>GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch 
<span class="number"> 18</span>
<span class="number"> 19</span>GL_EXT_shader_texture_lod GL_EXT_shadow_samplers GL_EXT_sRGB 
<span class="number"> 20</span>
<span class="number"> 21</span>GL_EXT_texture_filter_anisotropic GL_EXT_texture_rg GL_EXT_texture_storage 
<span class="number"> 22</span>
<span class="number"> 23</span>GL_APPLE_copy_texture_levels GL_APPLE_framebuffer_multisample GL_APPLE_rgb_422 
<span class="number"> 24</span>
<span class="number"> 25</span>GL_APPLE_sync GL_APPLE_texture_format_BGRA8888 GL_APPLE_texture_max_level 
<span class="number"> 26</span>
<span class="number"> 27</span>GL_IMG_read_format GL_IMG_texture_compression_pvrtc
</div></div><p>

which has GL_OES_fbo_render_mipmap ...<br />It looks like Allegro does not check for that extension but I bet that&#39;s the one we need to use...</p><p>Edit: <br />actually GL_OES_fbo_render_mipmap does not do what I thought it did... but it&#39;s weird that the simulator is not saying it supports fbos
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 17 Feb 2015 04:36:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can you check what GLES version you have? Perhaps printing the output of <span class="source-code">glGetString<span class="k2">(</span>GL_VERSION<span class="k2">)</span></span>? What I think might be happening is that you have a relatively new version of GLES that has the extension built into the core API.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 17 Feb 2015 05:18:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>OpenGL ES 2.0 APPLE-10.1.5</p><p>I&#39;m using xcode 6.1 and the ios 7 and ios 8 simulator on mac os x 10.9.4</p><p>Where should I check for the core api thing?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 17 Feb 2015 05:22:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No, the 2.0 gave me all the information I needed. If you look in the specification, GLES 2.0 has the frame buffer objects included in the core API. Allegro&#39;s extension loading mechanism, however, doesn&#39;t realize that and still tries to load it. The code for all of this is in opengl/extensions.c but it&#39;s not super-simple.</p><p>What is done for desktop GL, is that we parse the GL_VERSION string and get the version number. Then whenever checking for an extension, we check to see if its version is below the OpenGL version, and if so we just return true. The version parsing is not implemented for the GLES, and so if you look at all the GLES extensions (allegro5/opengl/GLext/gl_ext_list.h), they&#39;ll have a bogus OpenGL version (e.g. <span class="source-code">AGL_EXT<span class="k2">(</span>OES_framebuffer_object,        <span class="n">0</span><span class="k2">)</span></span>).</p><p>So what would need to be done is for all of those extensions to get proper versions (I&#39;m not sure where to find that information) and for the GLES version parsing to be implemented as well.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 17 Feb 2015 06:21:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is my best bet to recompile allegro for GLES1 or is there some way we could &#39;fix&#39; the mipmapping issue for now the way things currently work?</p><p>I guess we could do:<br />if mipmap fails, check to see if glGenerateMipmap is not null, if it is not null then we set post_gen_mipmap to true and if that is true we have an ogl_extra flag for needs_to_regen_mipmap and rather than check for the extension in gles_lock we check this flag.</p><p>I think that would work in theory. If adding a flag sound like a bad idea then in gles_lock we add || glGenerateMipmap != NULL or something...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 17 Feb 2015 06:35:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The &#39;proper&#39; hack right now would be to apply the same patch as I made a post before but add a <span class="source-code">IS_OPENGLES <span class="k3">|</span><span class="k3">|</span></span> condition to it, as is done in a few other spots already (and please add a <span class="source-code"><span class="c">/* FIXME */</span></span> comment above <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 17 Feb 2015 06:55:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have attached 2 patches. The first is the fix as you described. I tested it as much as I could on the simulator and everything seems to be working correctly. I have not tested with GL_ES_1 but I do not see why that would not work.</p><p>The second patch fixes the iOS port crashing when iOS terminates your app. Trent in this commit <a href="https://github.com/liballeg/allegro5/commit/f6d9508941fab628c210007d23a55acdfdc821cf">https://github.com/liballeg/allegro5/commit/f6d9508941fab628c210007d23a55acdfdc821cf</a> removed a selector called remove_observers, but it was still being called when the app is terminated.</p><p>Edit:<br />I bought an iPad 4th gen, and tested these changes. Everything works great on a real iPad.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Fri, 20 Feb 2015 05:12:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Awesome! I&#39;m a bit busy right now, but I&#39;ll definitely take care of these patches this weekend. Thanks for your help!</p><p>EDIT: Now commited with one (hopefully) minor fix.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Fri, 20 Feb 2015 08:48:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks, that change is fine, no issues. My reason for keeping it in there was thinking maybe eventually when allegro correctly detects the es version, it can work that way but I guess the ext version will pick up the slack in that case.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Sun, 22 Feb 2015 04:40:12 +0000</pubDate>
	</item>
</rss>
