<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>slow detection of GL extensions on some hardware</title>
		<link>http://www.allegro.cc/forums/view/618076</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 08 Apr 2020 01:05:36 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, recently I switched my setup to use a 4k monitor next to the laptop, desktop is extended to two screens. You know, home office and such things.</p><p>I found that OpenGL usage becomes really slow during startup, so I did some debugging. The slow function is 
</p><div class="source-code snippet"><div class="inner"><pre>is_wgl_extension_supported<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
   <span class="c">// some code</span>
   _wglGetExtensionsStringARB <span class="k3">=</span> <span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t<span class="k2">)</span>
      wglGetProcAddress<span class="k2">(</span><span class="s">"wglGetExtensionsStringARB"</span><span class="k2">)</span><span class="k2">;</span>
   <span class="c">// more code</span>
<span class="k2">}</span>
</pre></div></div><p>
and some google search revealed, that it seems to be a known problem for some graphics cards and some drivers, but unknown reasons, that the detection of gl extensions is really slow. Nonetheless, somebody hinted to not call this in a loop anyways, but that&#39;s what allegro is doing in
</p><div class="source-code snippet"><div class="inner"><pre>read_pixel_format_ext
</pre></div></div><p>
called by
</p><div class="source-code snippet"><div class="inner"><pre>get_available_pixel_formats_ext<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
   <span class="c">// some code</span>
   <span class="k1">for</span> <span class="k2">(</span>j <span class="k3">=</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> maxindex<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
      ALLEGRO_INFO<span class="k2">(</span><span class="s">"-- \n"</span><span class="k2">)</span><span class="k2">;</span>
      ALLEGRO_INFO<span class="k2">(</span><span class="s">"Decoding visual no. %i...\n"</span>, i<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
      eds_list<span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span> read_pixel_format_ext<span class="k2">(</span>i, testdc<span class="k2">)</span><span class="k2">;</span>
      <span class="c">// more code</span>
   <span class="k2">}</span>
   <span class="c">// more code</span>
<span class="k2">}</span>
</pre></div></div><p>

so I changed is_wgl_extension_supported to get the proc address only once and reuse it:</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">static</span> <span class="k1">bool</span> is_wgl_extension_supported<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>extension, HDC dc<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>   <span class="k1">static</span> _ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB<span class="k2">;</span>
<span class="number">  4</span>   <span class="k1">static</span> ext_is_initialized <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="c">// this is a simple blocker, would not be safe for multi-threading</span>
<span class="number">  5</span>   <span class="k1">int</span> ret<span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>   <span class="c">/* XXX deprecated in OpenGL 3.0 */</span>
<span class="number">  8</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>glGetString<span class="k2">(</span>GL_EXTENSIONS<span class="k2">)</span><span class="k2">)</span>
<span class="number">  9</span>      <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>ext_is_initialized<span class="k2">)</span>
<span class="number"> 12</span>   <span class="k2">{</span>
<span class="number"> 13</span>      _wglGetExtensionsStringARB <span class="k3">=</span> <span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t<span class="k2">)</span>
<span class="number"> 14</span>         wglGetProcAddress<span class="k2">(</span><span class="s">"wglGetExtensionsStringARB"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>      ext_is_initialized <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 16</span>   <span class="k2">}</span>
<span class="number"> 17</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>_wglGetExtensionsStringARB<span class="k2">)</span>
<span class="number"> 18</span>      <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 19</span>
<span class="number"> 20</span>   ret <span class="k3">=</span> _al_ogl_look_for_an_extension<span class="k2">(</span>extension,
<span class="number"> 21</span>         <span class="k2">(</span><span class="k1">const</span> GLubyte<span class="k3">*</span><span class="k2">)</span>_wglGetExtensionsStringARB<span class="k2">(</span>dc<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>
<span class="number"> 23</span>   <span class="k1">return</span> ret<span class="k2">;</span>
<span class="number"> 24</span><span class="k2">}</span>
</div></div><p>

but I&#39;m not sure, iff that would work for all compilers, because it&#39;s not old-style-enough, I guess. I&#39;m really much going modern C++ these days, so I forgot how to write it properly for allegro...</p><p>And it does the trick, now there&#39;s less than a second and allegro is up. As they said in the but report I found, that is still WAY too long, as long as it&#39;s not called in a loop, I can live with it.</p><p>So maybe one of the Windows / OpenGL experts can apply this or a similar change to wgl_disp.c? Or even other places with similar patterns?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tobing)</author>
		<pubDate>Wed, 25 Mar 2020 20:15:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Looks good to me, let&#39;s ship it (<a href="https://github.com/liballeg/allegro5/issues/1125">https://github.com/liballeg/allegro5/issues/1125</a>).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sun, 05 Apr 2020 02:01:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here&#39;s a patch, I haven&#39;t forked allegro (yet), so I think I can&#39;t just create a pull request.</p><p>Thanks in advance!</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>From <span class="n">4d45eb36f0873f48672f02328693872c86a55815</span> Mon Sep <span class="n">17</span> <span class="n">00</span><span class="k2">:</span><span class="n">00</span><span class="k2">:</span><span class="n">00</span> <span class="n">2001</span>
<span class="number">  2</span>From: Tobias Scheuer <span class="k3">&lt;</span>tobias@scheuer42.de&gt;
<span class="number">  3</span>Date: Sun, <span class="n">29</span> Mar <span class="n">2020</span> <span class="n">12</span><span class="k2">:</span><span class="n">24</span><span class="k2">:</span><span class="n">59</span> <span class="k3">+</span><span class="n">0200</span>
<span class="number">  4</span>Subject: <span class="k2">[</span>PATCH<span class="k2">]</span> initialize wgl extension string only once
<span class="number">  5</span>
<span class="number">  6</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number">  7</span> src<span class="k3">/</span>win<span class="k3">/</span>wgl_disp.c <span class="k3">|</span> <span class="n">11</span> <span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number">  8</span> <span class="n">1</span> file changed, <span class="n">8</span> insertions<span class="k2">(</span><span class="k3">+</span><span class="k2">)</span>, <span class="n">3</span> deletions<span class="k2">(</span><span class="k3">-</span><span class="k2">)</span>
<span class="number">  9</span>
<span class="number"> 10</span>diff <span class="k3">-</span><span class="k3">-</span>git a<span class="k3">/</span>src<span class="k3">/</span>win<span class="k3">/</span>wgl_disp.c b<span class="k3">/</span>src<span class="k3">/</span>win<span class="k3">/</span>wgl_disp.c
<span class="number"> 11</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> b8e0878fc..893d56041 <span class="n">100644</span>
<span class="number"> 12</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span> a<span class="k3">/</span>src<span class="k3">/</span>win<span class="k3">/</span>wgl_disp.c
<span class="number"> 13</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span> b<span class="k3">/</span>src<span class="k3">/</span>win<span class="k3">/</span>wgl_disp.c
<span class="number"> 14</span>@@ <span class="k3">-</span><span class="n">68</span>,<span class="n">15</span> <span class="k3">+</span><span class="n">68</span>,<span class="n">20</span> @@ <span class="k1">typedef</span> <span class="k1">struct</span> WGL_DISPLAY_PARAMETERS <span class="k2">{</span>
<span class="number"> 15</span> 
<span class="number"> 16</span> <span class="k1">static</span> <span class="k1">bool</span> is_wgl_extension_supported<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>extension, HDC dc<span class="k2">)</span>
<span class="number"> 17</span> <span class="k2">{</span>
<span class="number"> 18</span><span class="k3">-</span>   _ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB<span class="k2">;</span>
<span class="number"> 19</span><span class="k3">+</span>   <span class="k1">static</span> _ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB<span class="k2">;</span>
<span class="number"> 20</span><span class="k3">+</span>   <span class="k1">static</span> ext_is_initialized <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="c">// this is a simple blocker, would not be safe for multi-threading</span>
<span class="number"> 21</span>    <span class="k1">int</span> ret<span class="k2">;</span>
<span class="number"> 22</span> 
<span class="number"> 23</span>    <span class="c">/* XXX deprecated in OpenGL 3.0 */</span>
<span class="number"> 24</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>glGetString<span class="k2">(</span>GL_EXTENSIONS<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 25</span>       <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 26</span> 
<span class="number"> 27</span><span class="k3">-</span>   _wglGetExtensionsStringARB <span class="k3">=</span> <span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t<span class="k2">)</span>
<span class="number"> 28</span><span class="k3">-</span>      wglGetProcAddress<span class="k2">(</span><span class="s">"wglGetExtensionsStringARB"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span><span class="k3">+</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>ext_is_initialized<span class="k2">)</span>
<span class="number"> 30</span><span class="k3">+</span>   <span class="k2">{</span>
<span class="number"> 31</span><span class="k3">+</span>       _wglGetExtensionsStringARB <span class="k3">=</span> <span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t<span class="k2">)</span>
<span class="number"> 32</span><span class="k3">+</span>           wglGetProcAddress<span class="k2">(</span><span class="s">"wglGetExtensionsStringARB"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span><span class="k3">+</span>       ext_is_initialized <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 34</span><span class="k3">+</span>   <span class="k2">}</span>
<span class="number"> 35</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>_wglGetExtensionsStringARB<span class="k2">)</span>
<span class="number"> 36</span>       <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 37</span> 
<span class="number"> 38</span><span class="k3">-</span><span class="k3">-</span> 
<span class="number"> 39</span><span class="n">2</span>.<span class="n">24</span>.<span class="n">1</span>.windows.2
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tobing)</author>
		<pubDate>Tue, 07 Apr 2020 20:25:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think in theory a different OpenGL context could return a different address - so we&#39;d need a separate _wglGetExtensionsStringARB for each thread and clear it when the context gets changed on that thread.</p><p>If it doesn&#39;t break any of the examples it&#39;s probably good enough though for now - but maybe at least should have a // TODO/FIXME comment about what it does.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Wed, 08 Apr 2020 00:30:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This is called in a loop, so maybe the context could be a parameter... just a thought for now, I&#39;ll have a look at the code tomorrow and maybe come up with a better patch.</p><p>Edit: I have added a parameter to some of the functions, like in attached patch. Now there are more changed lines, but no assumptions about threads and such. I guess that this is better, and performance seems to be quite good as well, maybe even more than the first change.</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>From <span class="n">276d7889c9b3bebdcd538a694154bde9c3600000</span> Mon Sep <span class="n">17</span> <span class="n">00</span><span class="k2">:</span><span class="n">00</span><span class="k2">:</span><span class="n">00</span> <span class="n">2001</span>
<span class="number">   2</span>From: Tobias Scheuer <span class="k3">&lt;</span>tobias@scheuer42.de&gt;
<span class="number">   3</span>Date: Sun, <span class="n">29</span> Mar <span class="n">2020</span> <span class="n">12</span><span class="k2">:</span><span class="n">24</span><span class="k2">:</span><span class="n">59</span> <span class="k3">+</span><span class="n">0200</span>
<span class="number">   4</span>Subject: <span class="k2">[</span>PATCH<span class="k2">]</span> avoid multiple wgl extension string initialization
<span class="number">   5</span>
<span class="number">   6</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number">   7</span> src<span class="k3">/</span>win<span class="k3">/</span>wgl_disp.c <span class="k3">|</span> <span class="n">48</span> <span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span>
<span class="number">   8</span> <span class="n">1</span> file changed, <span class="n">24</span> insertions<span class="k2">(</span><span class="k3">+</span><span class="k2">)</span>, <span class="n">24</span> deletions<span class="k2">(</span><span class="k3">-</span><span class="k2">)</span>
<span class="number">   9</span>
<span class="number">  10</span>diff <span class="k3">-</span><span class="k3">-</span>git a<span class="k3">/</span>src<span class="k3">/</span>win<span class="k3">/</span>wgl_disp.c b<span class="k3">/</span>src<span class="k3">/</span>win<span class="k3">/</span>wgl_disp.c
<span class="number">  11</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> b8e0878fc..d6972265f <span class="n">100644</span>
<span class="number">  12</span><span class="k3">-</span><span class="k3">-</span><span class="k3">-</span> a<span class="k3">/</span>src<span class="k3">/</span>win<span class="k3">/</span>wgl_disp.c
<span class="number">  13</span><span class="k3">+</span><span class="k3">+</span><span class="k3">+</span> b<span class="k3">/</span>src<span class="k3">/</span>win<span class="k3">/</span>wgl_disp.c
<span class="number">  14</span>@@ <span class="k3">-</span><span class="n">66</span>,<span class="n">17</span> <span class="k3">+</span><span class="n">66</span>,<span class="n">13</span> @@ <span class="k1">typedef</span> <span class="k1">struct</span> WGL_DISPLAY_PARAMETERS <span class="k2">{</span>
<span class="number">  15</span>    <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> window_title<span class="k2">;</span>
<span class="number">  16</span> <span class="k2">}</span> WGL_DISPLAY_PARAMETERS<span class="k2">;</span>
<span class="number">  17</span> 
<span class="number">  18</span><span class="k3">-</span><span class="k1">static</span> <span class="k1">bool</span> is_wgl_extension_supported<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>extension, HDC dc<span class="k2">)</span>
<span class="number">  19</span><span class="k3">+</span><span class="k1">static</span> <span class="k1">bool</span> is_wgl_extension_supported<span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB, <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>extension, HDC dc<span class="k2">)</span>
<span class="number">  20</span> <span class="k2">{</span>
<span class="number">  21</span><span class="k3">-</span>   _ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB<span class="k2">;</span>
<span class="number">  22</span>    <span class="k1">int</span> ret<span class="k2">;</span>
<span class="number">  23</span> 
<span class="number">  24</span>    <span class="c">/* XXX deprecated in OpenGL 3.0 */</span>
<span class="number">  25</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>glGetString<span class="k2">(</span>GL_EXTENSIONS<span class="k2">)</span><span class="k2">)</span>
<span class="number">  26</span>       <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  27</span><span class="k3">-</span>
<span class="number">  28</span><span class="k3">-</span>   _wglGetExtensionsStringARB <span class="k3">=</span> <span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t<span class="k2">)</span>
<span class="number">  29</span><span class="k3">-</span>      wglGetProcAddress<span class="k2">(</span><span class="s">"wglGetExtensionsStringARB"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>_wglGetExtensionsStringARB<span class="k2">)</span>
<span class="number">  31</span>       <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  32</span> 
<span class="number">  33</span>@@ <span class="k3">-</span><span class="n">441</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">437</span>,<span class="n">7</span> @@ <span class="k1">static</span> ALLEGRO_EXTRA_DISPLAY_SETTINGS<span class="k3">*</span> read_pixel_format_old<span class="k2">(</span><span class="k1">int</span> fmt, HDC dc<span class="k2">)</span>
<span class="number">  34</span> <span class="k2">}</span>
<span class="number">  35</span> 
<span class="number">  36</span> 
<span class="number">  37</span><span class="k3">-</span><span class="k1">static</span> ALLEGRO_EXTRA_DISPLAY_SETTINGS<span class="k3">*</span> read_pixel_format_ext<span class="k2">(</span><span class="k1">int</span> fmt, HDC dc<span class="k2">)</span>
<span class="number">  38</span><span class="k3">+</span><span class="k1">static</span> ALLEGRO_EXTRA_DISPLAY_SETTINGS<span class="k3">*</span> read_pixel_format_ext<span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB, <span class="k1">int</span> fmt, HDC dc<span class="k2">)</span>
<span class="number">  39</span> <span class="k2">{</span>
<span class="number">  40</span>    ALLEGRO_EXTRA_DISPLAY_SETTINGS <span class="k3">*</span>eds <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  41</span> 
<span class="number">  42</span>@@ <span class="k3">-</span><span class="n">493</span>,<span class="n">11</span> <span class="k3">+</span><span class="n">489</span>,<span class="n">11</span> @@ <span class="k1">static</span> ALLEGRO_EXTRA_DISPLAY_SETTINGS<span class="k3">*</span> read_pixel_format_ext<span class="k2">(</span><span class="k1">int</span> fmt, HDC dc<span class="k2">)</span>
<span class="number">  43</span>       <span class="k1">return</span> NULL<span class="k2">;</span>
<span class="number">  44</span> 
<span class="number">  45</span>    <span class="c">/* If multisampling is supported, query for it. */</span>
<span class="number">  46</span><span class="k3">-</span>   <span class="k1">if</span> <span class="k2">(</span>is_wgl_extension_supported<span class="k2">(</span><span class="s">"WGL_ARB_multisample"</span>, dc<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  47</span><span class="k3">+</span>   <span class="k1">if</span> <span class="k2">(</span>is_wgl_extension_supported<span class="k2">(</span>_wglGetExtensionsStringARB, <span class="s">"WGL_ARB_multisample"</span>, dc<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  48</span>       attrib<span class="k2">[</span>num_attribs <span class="k3">-</span> <span class="n">3</span><span class="k2">]</span> <span class="k3">=</span> WGL_SAMPLE_BUFFERS_ARB<span class="k2">;</span>
<span class="number">  49</span>       attrib<span class="k2">[</span>num_attribs <span class="k3">-</span> <span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> WGL_SAMPLES_ARB<span class="k2">;</span>
<span class="number">  50</span>    <span class="k2">}</span>
<span class="number">  51</span><span class="k3">-</span>   <span class="k1">if</span> <span class="k2">(</span>is_wgl_extension_supported<span class="k2">(</span><span class="s">"WGL_EXT_depth_float"</span>, dc<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  52</span><span class="k3">+</span>   <span class="k1">if</span> <span class="k2">(</span>is_wgl_extension_supported<span class="k2">(</span>_wglGetExtensionsStringARB, <span class="s">"WGL_EXT_depth_float"</span>, dc<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  53</span>       attrib<span class="k2">[</span>num_attribs <span class="k3">-</span> <span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> WGL_DEPTH_FLOAT_EXT<span class="k2">;</span>
<span class="number">  54</span>    <span class="k2">}</span>
<span class="number">  55</span> 
<span class="number">  56</span>@@ <span class="k3">-</span><span class="n">623</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">619</span>,<span class="n">7</span> @@ <span class="k1">static</span> <span class="k1">bool</span> change_display_mode<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>d<span class="k2">)</span>
<span class="number">  57</span> <span class="k2">}</span>
<span class="number">  58</span> 
<span class="number">  59</span> 
<span class="number">  60</span><span class="k3">-</span><span class="k1">static</span> HGLRC init_ogl_context_ex<span class="k2">(</span>HDC dc, <span class="k1">bool</span> fc, <span class="k1">int</span> major, <span class="k1">int</span> minor<span class="k2">)</span>
<span class="number">  61</span><span class="k3">+</span><span class="k1">static</span> HGLRC init_ogl_context_ex<span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB, HDC dc, <span class="k1">bool</span> fc, <span class="k1">int</span> major, <span class="k1">int</span> minor<span class="k2">)</span>
<span class="number">  62</span> <span class="k2">{</span>
<span class="number">  63</span>    HWND testwnd <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  64</span>    HDC testdc   <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  65</span>@@ <span class="k3">-</span><span class="n">644</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">640</span>,<span class="n">7</span> @@ <span class="k1">static</span> HGLRC init_ogl_context_ex<span class="k2">(</span>HDC dc, <span class="k1">bool</span> fc, <span class="k1">int</span> major, <span class="k1">int</span> minor<span class="k2">)</span>
<span class="number">  66</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>testrc<span class="k2">)</span>
<span class="number">  67</span>       <span class="k1">goto</span> bail<span class="k2">;</span>
<span class="number">  68</span> 
<span class="number">  69</span><span class="k3">-</span>   <span class="k1">if</span> <span class="k2">(</span>is_wgl_extension_supported<span class="k2">(</span><span class="s">"WGL_ARB_create_context"</span>, testdc<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  70</span><span class="k3">+</span>   <span class="k1">if</span><span class="k2">(</span>is_wgl_extension_supported<span class="k2">(</span>_wglGetExtensionsStringARB, <span class="s">"WGL_ARB_create_context"</span>, testdc<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  71</span>       <span class="k1">int</span> attrib<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>WGL_CONTEXT_MAJOR_VERSION_ARB, major,
<span class="number">  72</span>                       WGL_CONTEXT_MINOR_VERSION_ARB, minor,
<span class="number">  73</span>                       WGL_CONTEXT_FLAGS_ARB, <span class="n">0</span>,
<span class="number">  74</span>@@ <span class="k3">-</span><span class="n">678</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">674</span>,<span class="n">7</span> @@ bail:
<span class="number">  75</span> <span class="k2">}</span>
<span class="number">  76</span> 
<span class="number">  77</span> 
<span class="number">  78</span><span class="k3">-</span><span class="k1">static</span> ALLEGRO_EXTRA_DISPLAY_SETTINGS<span class="k3">*</span><span class="k3">*</span> get_available_pixel_formats_ext<span class="k2">(</span><span class="k1">int</span> <span class="k3">*</span>count<span class="k2">)</span>
<span class="number">  79</span><span class="k3">+</span><span class="k1">static</span> ALLEGRO_EXTRA_DISPLAY_SETTINGS<span class="k3">*</span><span class="k3">*</span> get_available_pixel_formats_ext<span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB, <span class="k1">int</span> <span class="k3">*</span>count<span class="k2">)</span>
<span class="number">  80</span> <span class="k2">{</span>
<span class="number">  81</span>    HWND testwnd <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  82</span>    HDC testdc   <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  83</span>@@ <span class="k3">-</span><span class="n">708</span>,<span class="n">8</span> <span class="k3">+</span><span class="n">704</span>,<span class="n">8</span> @@ <span class="k1">static</span> ALLEGRO_EXTRA_DISPLAY_SETTINGS<span class="k3">*</span><span class="k3">*</span> get_available_pixel_formats_ext<span class="k2">(</span><span class="k1">int</span> <span class="k3">*</span>cou
<span class="number">  84</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>testrc<span class="k2">)</span>
<span class="number">  85</span>       <span class="k1">goto</span> bail<span class="k2">;</span>
<span class="number">  86</span> 
<span class="number">  87</span><span class="k3">-</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>is_wgl_extension_supported<span class="k2">(</span><span class="s">"WGL_ARB_pixel_format"</span>, testdc<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number">  88</span><span class="k3">-</span>      <span class="k3">!</span>is_wgl_extension_supported<span class="k2">(</span><span class="s">"WGL_EXT_pixel_format"</span>, testdc<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  89</span><span class="k3">+</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>is_wgl_extension_supported<span class="k2">(</span>_wglGetExtensionsStringARB, <span class="s">"WGL_ARB_pixel_format"</span>, testdc<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number">  90</span><span class="k3">+</span>      <span class="k3">!</span>is_wgl_extension_supported<span class="k2">(</span>_wglGetExtensionsStringARB, <span class="s">"WGL_EXT_pixel_format"</span>, testdc<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  91</span>       ALLEGRO_ERROR<span class="k2">(</span><span class="s">"WGL_ARB/EXT_pf not supported.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>       <span class="k1">goto</span> bail<span class="k2">;</span>
<span class="number">  93</span>   <span class="k2">}</span>
<span class="number">  94</span>@@ <span class="k3">-</span><span class="n">730</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">726</span>,<span class="n">7</span> @@ <span class="k1">static</span> ALLEGRO_EXTRA_DISPLAY_SETTINGS<span class="k3">*</span><span class="k3">*</span> get_available_pixel_formats_ext<span class="k2">(</span><span class="k1">int</span> <span class="k3">*</span>cou
<span class="number">  95</span>    <span class="k1">for</span> <span class="k2">(</span>j <span class="k3">=</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> maxindex<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  96</span>       ALLEGRO_INFO<span class="k2">(</span><span class="s">"-- \n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  97</span>       ALLEGRO_INFO<span class="k2">(</span><span class="s">"Decoding visual no. %i...\n"</span>, i<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  98</span><span class="k3">-</span>      eds_list<span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span> read_pixel_format_ext<span class="k2">(</span>i, testdc<span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span><span class="k3">+</span>      eds_list<span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span> read_pixel_format_ext<span class="k2">(</span>_wglGetExtensionsStringARB, i, testdc<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</span>       <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>eds_list<span class="k2">[</span>j<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 101</span>          <span class="k1">continue</span><span class="k2">;</span>
<span class="number"> 102</span>       <span class="c">// Fill vsync setting here and enable/disable it after display creation</span>
<span class="number"> 103</span>@@ <span class="k3">-</span><span class="n">817</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">813</span>,<span class="n">7</span> @@ <span class="k1">static</span> ALLEGRO_EXTRA_DISPLAY_SETTINGS<span class="k3">*</span><span class="k3">*</span> get_available_pixel_formats_old<span class="k2">(</span><span class="k1">int</span> <span class="k3">*</span>cou
<span class="number"> 104</span> <span class="k2">}</span>
<span class="number"> 105</span> 
<span class="number"> 106</span> 
<span class="number"> 107</span><span class="k3">-</span><span class="k1">static</span> <span class="k1">bool</span> select_pixel_format<span class="k2">(</span>ALLEGRO_DISPLAY_WGL <span class="k3">*</span>d, HDC dc<span class="k2">)</span>
<span class="number"> 108</span><span class="k3">+</span><span class="k1">static</span> <span class="k1">bool</span> select_pixel_format<span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB, ALLEGRO_DISPLAY_WGL <span class="k3">*</span>d, HDC dc<span class="k2">)</span>
<span class="number"> 109</span> <span class="k2">{</span>
<span class="number"> 110</span>    ALLEGRO_EXTRA_DISPLAY_SETTINGS <span class="k3">*</span><span class="k3">*</span>eds <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 111</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_CONFIG"><span class="a">ALLEGRO_CONFIG</span></a> <span class="k3">*</span>sys_cfg <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_system_config"><span class="a">al_get_system_config</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>@@ <span class="k3">-</span><span class="n">838</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">834</span>,<span class="n">7</span> @@ <span class="k1">static</span> <span class="k1">bool</span> select_pixel_format<span class="k2">(</span>ALLEGRO_DISPLAY_WGL <span class="k3">*</span>d, HDC dc<span class="k2">)</span>
<span class="number"> 113</span>    <span class="k2">}</span>
<span class="number"> 114</span> 
<span class="number"> 115</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>force_old<span class="k2">)</span>
<span class="number"> 116</span><span class="k3">-</span>      eds <span class="k3">=</span> get_available_pixel_formats_ext<span class="k2">(</span><span class="k3">&amp;</span>eds_count<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span><span class="k3">+</span>       eds <span class="k3">=</span> get_available_pixel_formats_ext<span class="k2">(</span>_wglGetExtensionsStringARB, <span class="k3">&amp;</span>eds_count<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>eds<span class="k2">)</span>
<span class="number"> 119</span>       eds <span class="k3">=</span> get_available_pixel_formats_old<span class="k2">(</span><span class="k3">&amp;</span>eds_count, dc<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span> 
<span class="number"> 121</span>@@ <span class="k3">-</span><span class="n">879</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">875</span>,<span class="n">7</span> @@ <span class="k1">static</span> <span class="k1">bool</span> select_pixel_format<span class="k2">(</span>ALLEGRO_DISPLAY_WGL <span class="k3">*</span>d, HDC dc<span class="k2">)</span>
<span class="number"> 122</span>    <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 123</span> <span class="k2">}</span>
<span class="number"> 124</span> 
<span class="number"> 125</span><span class="k3">-</span><span class="k1">static</span> <span class="k1">bool</span> create_display_internals<span class="k2">(</span>ALLEGRO_DISPLAY_WGL <span class="k3">*</span>wgl_disp<span class="k2">)</span>
<span class="number"> 126</span><span class="k3">+</span><span class="k1">static</span> <span class="k1">bool</span> create_display_internals<span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB, ALLEGRO_DISPLAY_WGL <span class="k3">*</span>wgl_disp<span class="k2">)</span>
<span class="number"> 127</span> <span class="k2">{</span>
<span class="number"> 128</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a>     <span class="k3">*</span>disp     <span class="k3">=</span> <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>wgl_disp<span class="k2">;</span>
<span class="number"> 129</span>    ALLEGRO_DISPLAY_WIN <span class="k3">*</span>win_disp <span class="k3">=</span> <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>wgl_disp<span class="k2">;</span>
<span class="number"> 130</span>@@ <span class="k3">-</span><span class="n">921</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">917</span>,<span class="n">7</span> @@ <span class="k1">static</span> <span class="k1">bool</span> create_display_internals<span class="k2">(</span>ALLEGRO_DISPLAY_WGL <span class="k3">*</span>wgl_disp<span class="k2">)</span>
<span class="number"> 131</span>    <span class="c">/* WGL display lists cannot be shared with the API currently in use. */</span>
<span class="number"> 132</span>    disp-&gt;ogl_extras-&gt;is_shared <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 133</span> 
<span class="number"> 134</span><span class="k3">-</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>select_pixel_format<span class="k2">(</span>wgl_disp, wgl_disp-&gt;dc<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 135</span><span class="k3">+</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>select_pixel_format<span class="k2">(</span>_wglGetExtensionsStringARB, wgl_disp, wgl_disp-&gt;dc<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 136</span>       destroy_display_internals<span class="k2">(</span>wgl_disp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</span>       <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 138</span>    <span class="k2">}</span>
<span class="number"> 139</span>@@ <span class="k3">-</span><span class="n">934</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">930</span>,<span class="n">7</span> @@ <span class="k1">static</span> <span class="k1">bool</span> create_display_internals<span class="k2">(</span>ALLEGRO_DISPLAY_WGL <span class="k3">*</span>wgl_disp<span class="k2">)</span>
<span class="number"> 140</span>       <span class="k1">if</span> <span class="k2">(</span>major <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 141</span>          major <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 142</span>       <span class="k1">bool</span> fc <span class="k3">=</span> <span class="k2">(</span>disp-&gt;flags <span class="k3">&amp;</span> ALLEGRO_OPENGL_FORWARD_COMPATIBLE<span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 143</span><span class="k3">-</span>      wgl_disp-&gt;glrc <span class="k3">=</span> init_ogl_context_ex<span class="k2">(</span>wgl_disp-&gt;dc, fc, major,
<span class="number"> 144</span><span class="k3">+</span>      wgl_disp-&gt;glrc <span class="k3">=</span> init_ogl_context_ex<span class="k2">(</span>_wglGetExtensionsStringARB, wgl_disp-&gt;dc, fc, major,
<span class="number"> 145</span>          minor<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 146</span>    <span class="k2">}</span>
<span class="number"> 147</span>    <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 148</span>@@ <span class="k3">-</span><span class="n">1024</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">1020</span>,<span class="n">9</span> @@ <span class="k1">static</span> <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> wgl_create_display<span class="k2">(</span><span class="k1">int</span> w, <span class="k1">int</span> h<span class="k2">)</span>
<span class="number"> 149</span> 
<span class="number"> 150</span>    display-&gt;ogl_extras <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_calloc"><span class="a">al_calloc</span></a><span class="k2">(</span><span class="n">1</span>, <span class="k1">sizeof</span><span class="k2">(</span>ALLEGRO_OGL_EXTRAS<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 151</span> 
<span class="number"> 152</span><span class="k3">-</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>create_display_internals<span class="k2">(</span>wgl_display<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 153</span><span class="k3">+</span>   _ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB
<span class="number"> 154</span><span class="k3">+</span>      <span class="k3">=</span> <span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t<span class="k2">)</span>wglGetProcAddress<span class="k2">(</span><span class="s">"wglGetExtensionsStringARB"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 155</span><span class="k3">+</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>create_display_internals<span class="k2">(</span>_wglGetExtensionsStringARB, wgl_display<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 156</span>       <a href="http://www.allegro.cc/manual/al_free"><span class="a">al_free</span></a><span class="k2">(</span>display-&gt;ogl_extras<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 157</span>       <a href="http://www.allegro.cc/manual/al_free"><span class="a">al_free</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 158</span>       <span class="k1">return</span> NULL<span class="k2">;</span>
<span class="number"> 159</span>@@ <span class="k3">-</span><span class="n">1331</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">1329</span>,<span class="n">7</span> @@ <span class="k1">static</span> <span class="k1">void</span> wgl_update_display_region<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>d,
<span class="number"> 160</span> <span class="k2">}</span>
<span class="number"> 161</span> 
<span class="number"> 162</span> 
<span class="number"> 163</span><span class="k3">-</span><span class="k1">static</span> <span class="k1">bool</span> wgl_resize_helper<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>d, <span class="k1">int</span> width, <span class="k1">int</span> height<span class="k2">)</span>
<span class="number"> 164</span><span class="k3">+</span><span class="k1">static</span> <span class="k1">bool</span> wgl_resize_helper<span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB, <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>d, <span class="k1">int</span> width, <span class="k1">int</span> height<span class="k2">)</span>
<span class="number"> 165</span> <span class="k2">{</span>
<span class="number"> 166</span>    ALLEGRO_DISPLAY_WGL <span class="k3">*</span>wgl_disp <span class="k3">=</span> <span class="k2">(</span>ALLEGRO_DISPLAY_WGL <span class="k3">*</span><span class="k2">)</span>d<span class="k2">;</span>
<span class="number"> 167</span>    ALLEGRO_DISPLAY_WIN <span class="k3">*</span>win_disp <span class="k3">=</span> <span class="k2">(</span>ALLEGRO_DISPLAY_WIN <span class="k3">*</span><span class="k2">)</span>d<span class="k2">;</span>
<span class="number"> 168</span>@@ <span class="k3">-</span><span class="n">1380</span>,<span class="n">7</span> <span class="k3">+</span><span class="n">1378</span>,<span class="n">7</span> @@ <span class="k1">static</span> <span class="k1">bool</span> wgl_resize_helper<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>d, <span class="k1">int</span> width, <span class="k1">int</span> height<span class="k2">)</span>
<span class="number"> 169</span> 
<span class="number"> 170</span>       d-&gt;w <span class="k3">=</span> width<span class="k2">;</span>
<span class="number"> 171</span>       d-&gt;h <span class="k3">=</span> height<span class="k2">;</span>
<span class="number"> 172</span><span class="k3">-</span>      <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>create_display_internals<span class="k2">(</span>wgl_disp<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 173</span><span class="k3">+</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>create_display_internals<span class="k2">(</span>_wglGetExtensionsStringARB, wgl_disp<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 174</span>          <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 175</span> 
<span class="number"> 176</span>       <span class="c">/* We have a new backbuffer now. */</span>
<span class="number"> 177</span>@@ <span class="k3">-</span><span class="n">1435</span>,<span class="n">8</span> <span class="k3">+</span><span class="n">1433</span>,<span class="n">10</span> @@ <span class="k1">static</span> <span class="k1">bool</span> wgl_resize_display<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>d, <span class="k1">int</span> width, <span class="k1">int</span> height<span class="k2">)</span>
<span class="number"> 178</span> 
<span class="number"> 179</span>    win_display-&gt;ignore_resize <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 180</span> 
<span class="number"> 181</span><span class="k3">-</span>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>wgl_resize_helper<span class="k2">(</span>d, width, height<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 182</span><span class="k3">-</span>      wgl_resize_helper<span class="k2">(</span>d, orig_w, orig_h<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 183</span><span class="k3">+</span>   _ALLEGRO_wglGetExtensionsStringARB_t _wglGetExtensionsStringARB
<span class="number"> 184</span><span class="k3">+</span>      <span class="k3">=</span> <span class="k2">(</span>_ALLEGRO_wglGetExtensionsStringARB_t<span class="k2">)</span>wglGetProcAddress<span class="k2">(</span><span class="s">"wglGetExtensionsStringARB"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 185</span><span class="k3">+</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>wgl_resize_helper<span class="k2">(</span>_wglGetExtensionsStringARB, d, width, height<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 186</span><span class="k3">+</span>      wgl_resize_helper<span class="k2">(</span>_wglGetExtensionsStringARB, d, orig_w, orig_h<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 187</span>       ret <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 188</span>    <span class="k2">}</span> <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 189</span>       ret <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 190</span><span class="k3">-</span><span class="k3">-</span> 
<span class="number"> 191</span><span class="n">2</span>.<span class="n">24</span>.<span class="n">1</span>.windows.2
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tobing)</author>
		<pubDate>Wed, 08 Apr 2020 01:05:36 +0000</pubDate>
	</item>
</rss>
