<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>d3d_disp-&gt;render_target is NULL, segfault</title>
		<link>http://www.allegro.cc/forums/view/616195</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 19 Apr 2016 12:50:04 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Edit<br />I should note, I am using the DIRECT3D driver and MinGW 4.8.1 on Windows 10. When I use the OPENGL driver, it does not crash. This is with Allegro 5.1.13.</p><p>Hello all,</p><p>I am trying to resize an allegro window. When I get the RESIZE event I call al_acknowledge_resize, and then I recreate the ALLEGRO_BITMAP* buffer I am using. However when I then go to <s>flip the display after drawing</s> draw my buffer to the screen, it segaults in al_draw_scaled_bitmap. Here is the backtrace :</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="number">  2</span>c:\ctwoplus\progcode\allegro5\Spiraloid2&gt;gdb Spiraloid2debug.exe
<span class="number">  3</span>GNU gdb <span class="k2">(</span>GDB<span class="k2">)</span> <span class="n">7</span>.<span class="n">6</span>.<span class="n">1</span>
<span class="number">  4</span>Copyright <span class="k2">(</span>C<span class="k2">)</span> <span class="n">2013</span> Free Software Foundation, Inc.
<span class="number">  5</span>License GPLv3<span class="k3">+</span><span class="k2">:</span> GNU GPL version <span class="n">3</span> <span class="k1">or</span> later <span class="k3">&lt;</span>http:<span class="c">//gnu.org/licenses/gpl.html&gt;</span>
<span class="number">  6</span>This is <a href="http://www.delorie.com/djgpp/doc/libc/libc_350.html" target="_blank">free</a> software: you are <a href="http://www.delorie.com/djgpp/doc/libc/libc_350.html" target="_blank">free</a> to change <span class="k1">and</span> redistribute it.
<span class="number">  7</span>There is NO WARRANTY, to the extent permitted by law.  Type <span class="s">"show copying"</span>
<span class="number">  8</span><span class="k1">and</span> <span class="s">"show warranty"</span> <span class="k1">for</span> details.
<span class="number">  9</span>This GDB was configured as <span class="s">"mingw32"</span>.
<span class="number"> 10</span>For bug reporting instructions, please see:
<span class="number"> 11</span><span class="k3">&lt;</span>http:<span class="c">//www.gnu.org/software/gdb/bugs/&gt;...</span>
<span class="number"> 12</span>Reading symbols from c:\ctwoplus\progcode\allegro5\Spiraloid2\Spiraloid2debug.exe...done.
<span class="number"> 13</span><span class="k2">(</span>gdb<span class="k2">)</span> run
<span class="number"> 14</span>Starting program: c:\ctwoplus\progcode\allegro5\Spiraloid2<span class="k3">/</span>Spiraloid2debug.exe
<span class="number"> 15</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x16a4</span><span class="k2">]</span>
<span class="number"> 16</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x584</span><span class="k2">]</span>
<span class="number"> 17</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x3f0</span><span class="k2">]</span>
<span class="number"> 18</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x3a00</span><span class="k2">]</span>
<span class="number"> 19</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x227c</span><span class="k2">]</span>
<span class="number"> 20</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x35e4</span><span class="k2">]</span>
<span class="number"> 21</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x35e8</span><span class="k2">]</span>
<span class="number"> 22</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x3884</span><span class="k2">]</span>
<span class="number"> 23</span>Recreating buffer.
<span class="number"> 24</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x123c</span><span class="k2">]</span>
<span class="number"> 25</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x1628</span><span class="k2">]</span>
<span class="number"> 26</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x3644</span><span class="k2">]</span>
<span class="number"> 27</span>Spiraloid::SetSpiraloidTransform<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span> cx,cy,sx,sy <span class="k3">=</span>   <span class="n">400</span>.<span class="n">00000000</span> ,   <span class="n">300</span>.<span class="n">00000000</span> ,     <span class="n">1</span>.<span class="n">00000000</span> ,     <span class="n">1</span>.<span class="n">00000000</span>
<span class="number"> 28</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x33f4</span><span class="k2">]</span>
<span class="number"> 29</span><span class="k2">[</span>New Thread <span class="n">1816</span>.<span class="n">0x11c8</span><span class="k2">]</span>
<span class="number"> 30</span>ALLEGRO_EVENT_DISPLAY_RESIZE received.
<span class="number"> 31</span>Recreating buffer.
<span class="number"> 32</span>Spiraloid::SetSpiraloidTransform<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span> cx,cy,sx,sy <span class="k3">=</span>   <span class="n">466</span>.<span class="n">00000000</span> ,   <span class="n">324</span>.<span class="n">00000000</span> ,     <span class="n">1</span>.<span class="n">00000000</span> ,     <span class="n">1</span>.<span class="n">00000000</span>
<span class="number"> 33</span>
<span class="number"> 34</span>Program received <a href="http://www.delorie.com/djgpp/doc/libc/libc_724.html" target="_blank">signal</a> SIGSEGV, Segmentation fault.
<span class="number"> 35</span><span class="n">0x677aa8e3</span> in d3d_lock_region <span class="k2">(</span>bitmap<span class="k3">=</span><span class="n">0xff5f28</span>, x<span class="k3">=</span><span class="n">0</span>, y<span class="k3">=</span><span class="n">0</span>, w<span class="k3">=</span><span class="n">933</span>, h<span class="k3">=</span><span class="n">649</span>, format<span class="k3">=</span><span class="n">0</span>, flags<span class="k3">=</span><span class="n">0</span><span class="k2">)</span> at C:\mingw\LIBS\A5113release\allegro\src\win\d3d_bmp.cpp:854
<span class="number"> 36</span><span class="n">854</span>           <span class="k1">if</span> <span class="k2">(</span>d3d_disp-&gt;render_target-&gt;LockRect<span class="k2">(</span><span class="k3">&amp;</span>d3d_bmp-&gt;locked_rect, <span class="k3">&amp;</span><a href="http://www.allegro.cc/manual/rect"><span class="a">rect</span></a>, Flags<span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> D3D_OK<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 37</span><span class="k2">(</span>gdb<span class="k2">)</span> p d3d_disp
<span class="number"> 38</span>$<span class="n">1</span> <span class="k3">=</span> <span class="k2">(</span>ALLEGRO_DISPLAY_D3D <span class="k3">*</span><span class="k2">)</span> <span class="n">0xff5cc8</span>
<span class="number"> 39</span><span class="k2">(</span>gdb<span class="k2">)</span> p d3d_disp-&gt;render_target
<span class="number"> 40</span>$<span class="n">2</span> <span class="k3">=</span> <span class="k2">(</span>LPDIRECT3DSURFACE9<span class="k2">)</span> <span class="n">0x0</span>
<span class="number"> 41</span><span class="k2">(</span>gdb<span class="k2">)</span> bt
<span class="number"> 42</span><span class="p">#0  0x677aa8e3 in d3d_lock_region (bitmap=0xff5f28, x=0, y=0, w=933, h=649, format=0, flags=0) at C:\mingw\LIBS\A5113release\allegro\src\win\d3d_bmp.cpp:854</span>
<span class="number"> 43</span><span class="p">#1  0x67704968 in al_lock_bitmap_region (bitmap=0xff5f28, x=0, y=0, width=933, height=649, format=0, flags=0) at C:\mingw\LIBS\A5113release\allegro\src\bitmap_lock.c:108</span>
<span class="number"> 44</span><span class="p">#2  0x6778e64f in _al_draw_soft_triangle (v1=0x64edfc, v2=0x64ee20, v3=0x64ee44, state=6614160, init=0x677396f8 &lt;shader_texture_solid_any_init&gt;, first=0x677399bc &lt;shader_texture_solid_any_first&gt;,</span>
<span class="number"> 45</span>    step<span class="k3">=</span><span class="n">0x67739a8e</span> <span class="k3">&lt;</span>shader_texture_solid_any_step&gt;, draw<span class="k3">=</span><span class="n">0x677605b0</span> <span class="k3">&lt;</span>shader_texture_solid_any_draw_shade_white&gt;<span class="k2">)</span> at C:\mingw\LIBS\A5113release\allegro\src\tri_soft.c:836
<span class="number"> 46</span><span class="p">#3  0x6778e015 in _al_triangle_2d (texture=0xff9420, v1=0x64edfc, v2=0x64ee20, v3=0x64ee44) at C:\mingw\LIBS\A5113release\allegro\src\tri_soft.c:733</span>
<span class="number"> 47</span><span class="p">#4  0x6772e539 in _al_draw_transformed_bitmap_memory (src=0xff9420, tint=..., sx=0, sy=0, sw=933, sh=649, dw=933, dh=649, local_trans=0x64ef20, flags=0) at C:\mingw\LIBS\A5113release\allegro\src\memblit.c:240</span>
<span class="number"> 48</span><span class="p">#5  0x6772e648 in _al_draw_transformed_scaled_bitmap_memory (src=0xff9420, tint=..., sx=0, sy=0, sw=933, sh=649, dx=0, dy=0, dw=933, dh=649, flags=0) at C:\mingw\LIBS\A5113release\allegro\src\memblit.c:257</span>
<span class="number"> 49</span><span class="p">#6  0x6772dfdd in _al_draw_bitmap_region_memory (src=0xff9420, tint=..., sx=0, sy=0, sw=933, sh=649, dx=0, dy=0, flags=0) at C:\mingw\LIBS\A5113release\allegro\src\memblit.c:158</span>
<span class="number"> 50</span><span class="p">#7  0x677030d8 in _bitmap_drawer (bitmap=0xff9420, tint=..., sx=0, sy=0, sw=933, sh=649, flags=0) at C:\mingw\LIBS\A5113release\allegro\src\bitmap_draw.c:51</span>
<span class="number"> 51</span><span class="p">#8  0x67703479 in _draw_tinted_rotated_scaled_bitmap_region (bitmap=0xff9420, tint=..., cx=0, cy=0, angle=0, xscale=1, yscale=1, sx=0, sy=0, sw=933, sh=649, dx=0, dy=0, flags=0)</span>
<span class="number"> 52</span>    at C:\mingw\LIBS\A5113release\allegro\src\bitmap_draw.c:118
<span class="number"> 53</span><span class="p">#9  0x67703727 in al_draw_tinted_scaled_bitmap (bitmap=0xff9420, tint=..., sx=0, sy=0, sw=933, sh=649, dx=0, dy=0, dw=933, dh=649, flags=0) at C:\mingw\LIBS\A5113release\allegro\src\bitmap_draw.c:171</span>
<span class="number"> 54</span><span class="p">#10 0x6770379d in al_draw_scaled_bitmap (bitmap=0xff9420, sx=0, sy=0, sw=933, sh=649, dx=0, dy=0, dw=933, dh=649, flags=0) at C:\mingw\LIBS\A5113release\allegro\src\bitmap_draw.c:184</span>
<span class="number"> 55</span><span class="p">#11 0x00401bc6 in Display::Flip (this=0x64f9e8) at C:\ctwoplus\progcode\allegro5\Spiraloid2\Display.cpp:132</span>
<span class="number"> 56</span><span class="p">#12 0x0040222f in main (argc=1, argv=0xff3530) at C:\ctwoplus\progcode\allegro5\Spiraloid2\SpiraloidMain.cpp:100</span>
<span class="number"> 57</span><span class="k2">(</span>gdb<span class="k2">)</span> frame <span class="n">10</span>
<span class="number"> 58</span><span class="p">#10 0x6770379d in al_draw_scaled_bitmap (bitmap=0xff9420, sx=0, sy=0, sw=933, sh=649, dx=0, dy=0, dw=933, dh=649, flags=0) at C:\mingw\LIBS\A5113release\allegro\src\bitmap_draw.c:184</span>
<span class="number"> 59</span><span class="n">184</span>        <a href="http://www.allegro.cc/manual/al_draw_tinted_scaled_bitmap"><span class="a">al_draw_tinted_scaled_bitmap</span></a><span class="k2">(</span>bitmap, solid_white, sx, sy, sw, sh,
<span class="number"> 60</span><span class="k2">(</span>gdb<span class="k2">)</span> p <span class="k3">*</span>bitmap
<span class="number"> 61</span>$<span class="n">3</span> <span class="k3">=</span> <span class="k2">{</span>vt <span class="k3">=</span> <span class="n">0x0</span>, _format <span class="k3">=</span> <span class="n">9</span>, _flags <span class="k3">=</span> <span class="n">4097</span>, _display <span class="k3">=</span> <span class="n">0x0</span>, _memory_format <span class="k3">=</span> <span class="n">0</span>, w <span class="k3">=</span> <span class="n">933</span>, h <span class="k3">=</span> <span class="n">649</span>, pitch <span class="k3">=</span> <span class="n">3732</span>, cl <span class="k3">=</span> <span class="n">0</span>, cr_excl <span class="k3">=</span> <span class="n">933</span>, ct <span class="k3">=</span> <span class="n">0</span>, cb_excl <span class="k3">=</span> <span class="n">649</span>, locked <span class="k3">=</span> <span class="k1">true</span>, lock_x <span class="k3">=</span> <span class="n">0</span>, lock_y <span class="k3">=</span> <span class="n">0</span>,
<span class="number"> 62</span>  lock_w <span class="k3">=</span> <span class="n">933</span>, lock_h <span class="k3">=</span> <span class="n">649</span>, lock_data <span class="k3">=</span> <span class="n">0x93e4020</span>, lock_flags <span class="k3">=</span> <span class="n">1</span>, locked_region <span class="k3">=</span> <span class="k2">{</span>data <span class="k3">=</span> <span class="n">0x93e4020</span>, format <span class="k3">=</span> <span class="n">9</span>, pitch <span class="k3">=</span> <span class="n">3732</span>, pixel_size <span class="k3">=</span> <span class="n">4</span><span class="k2">}</span>, transform <span class="k3">=</span> <span class="k2">{</span>m <span class="k3">=</span> <span class="k2">{</span><span class="k2">{</span><span class="n">1</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">}</span>, <span class="k2">{</span><span class="n">0</span>, <span class="n">1</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">}</span>, <span class="k2">{</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">1</span>, <span class="n">0</span><span class="k2">}</span>, <span class="k2">{</span>
<span class="number"> 63</span>        <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">1</span><span class="k2">}</span><span class="k2">}</span><span class="k2">}</span>, inverse_transform <span class="k3">=</span> <span class="k2">{</span>m <span class="k3">=</span> <span class="k2">{</span><span class="k2">{</span><span class="n">1</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">}</span>, <span class="k2">{</span><span class="n">0</span>, <span class="n">1</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">}</span>, <span class="k2">{</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">1</span>, <span class="n">0</span><span class="k2">}</span>, <span class="k2">{</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">1</span><span class="k2">}</span><span class="k2">}</span><span class="k2">}</span>, inverse_transform_dirty <span class="k3">=</span> <span class="k1">false</span>, proj_transform <span class="k3">=</span> <span class="k2">{</span>m <span class="k3">=</span> <span class="k2">{</span><span class="k2">{</span><span class="n">0</span>.<span class="n">00214362261</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">}</span>, <span class="k2">{</span><span class="n">0</span>,
<span class="number"> 64</span>        <span class="k3">-</span><span class="n">0</span>.<span class="n">00308166421</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">}</span>, <span class="k2">{</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">1</span>, <span class="n">0</span><span class="k2">}</span>, <span class="k2">{</span><span class="k3">-</span><span class="n">1</span>, <span class="n">1</span>, <span class="n">0</span>, <span class="n">1</span><span class="k2">}</span><span class="k2">}</span><span class="k2">}</span>, shader <span class="k3">=</span> <span class="n">0x0</span>, parent <span class="k3">=</span> <span class="n">0x0</span>, xofs <span class="k3">=</span> <span class="n">0</span>, yofs <span class="k3">=</span> <span class="n">0</span>, memory <span class="k3">=</span> <span class="n">0x93e4020</span> <span class="s">""</span>, extra <span class="k3">=</span> <span class="n">0x0</span>, dirty <span class="k3">=</span> <span class="k1">true</span><span class="k2">}</span>
<span class="number"> 65</span><span class="k2">(</span>gdb<span class="k2">)</span>
</div></div><p>
So the _display of the bitmap I am drawing is NULL, and the render_target member of the d3d_disp is NULL as well.</p><p>Any ideas what I am doing wrong? When I recreate the buffer I set the target backbuffer to the display to make sure the buffer will be associated with the display. I can show code, but I&#39;m not sure what to show.</p><p>Here is what I am using </p><div class="source-code snippet"><div class="inner"><pre>      <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
         
         display.DrawToBuffer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
         <span class="k1">if</span> <span class="k2">(</span>clear_buffer <span class="k3">|</span><span class="k3">|</span> temp_clear<span class="k2">)</span> <span class="k2">{</span>
            <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
            temp_clear <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
         <span class="k2">}</span>
         spiraloid.Draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
         display.Flip<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
         
         redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
      <span class="k2">}</span>
</pre></div></div><p>

</p><div class="source-code snippet"><div class="inner"><pre>         <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_RESIZE<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">"ALLEGRO_EVENT_DISPLAY_RESIZE received.\n"</span><span class="k2">)</span><span class="k2">;</span>
            display.AcknowledgeResize<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
            spiraloid.SetSpiraloidTransform<span class="k2">(</span>display.CX<span class="k2">(</span><span class="k2">)</span> , display.CY<span class="k2">(</span><span class="k2">)</span> , display.SX<span class="k2">(</span><span class="k2">)</span> , display.SY<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
            redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
         <span class="k2">}</span>
</pre></div></div><p>

</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> Display::AcknowledgeResize<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
   <a href="http://www.allegro.cc/manual/al_acknowledge_resize"><span class="a">al_acknowledge_resize</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
   
   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>fs<span class="k2">)</span> <span class="k2">{</span>
      ww <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_width"><span class="a">al_get_display_width</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
      wh <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_height"><span class="a">al_get_display_height</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
      CreateBuffer<span class="k2">(</span>ww,wh<span class="k2">)</span><span class="k2">;</span>
   <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>

</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">bool</span> Display::CreateBuffer<span class="k2">(</span><span class="k1">int</span> bwidth , <span class="k1">int</span> bheight<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  2</span>   <span class="k1">if</span> <span class="k2">(</span>bwidth <span class="k3">!</span><span class="k3">=</span> bw <span class="k3">|</span><span class="k3">|</span> bheight <span class="k3">!</span><span class="k3">=</span> bh<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  3</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Recreating buffer.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>      DestroyBuffer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>      bw <span class="k3">=</span> bwidth<span class="k2">;</span>
<span class="number">  6</span>      bh <span class="k3">=</span> bheight<span class="k2">;</span>
<span class="number">  7</span>      centerx <span class="k3">=</span> bw<span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
<span class="number">  8</span>      centery <span class="k3">=</span> bh<span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
<span class="number">  9</span>      scalex <span class="k3">=</span> <span class="k2">(</span><span class="k1">double</span><span class="k2">)</span><span class="k2">(</span>fs?fsw:ww<span class="k2">)</span><span class="k3">/</span>bw<span class="k2">;</span>
<span class="number"> 10</span>      scaley <span class="k3">=</span> <span class="k2">(</span><span class="k1">double</span><span class="k2">)</span><span class="k2">(</span>fs?fsh:wh<span class="k2">)</span><span class="k3">/</span>bh<span class="k2">;</span>
<span class="number"> 11</span>   <span class="c">///      al_set_new_bitmap_flags(ALLEGRO_MIN_LINEAR | ALLEGRO_MAG_LINEAR);</span>
<span class="number"> 12</span>      <a href="http://www.allegro.cc/manual/al_set_target_backbuffer"><span class="a">al_set_target_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>      buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_bitmap"><span class="a">al_create_bitmap</span></a><span class="k2">(</span>bw,bh<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>   <span class="k2">}</span>
<span class="number"> 15</span>   DrawToBuffer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>   <span class="k1">return</span> buffer<span class="k2">;</span>
<span class="number"> 17</span>   
<span class="number"> 18</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 12 Apr 2016 07:43:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>There&#39;s a bug with resizing inside the Direct3D driver, see <a href="https://github.com/liballeg/allegro5/issues/565">https://github.com/liballeg/allegro5/issues/565</a> for a bit of a discussion. <s>Try sticking a little rest before creating the buffer or adding a `al_convert_bitmaps` call before you draw</s>. I forget what the workaround is...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 12 Apr 2016 08:58:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is there any way I can help debug this?</p><p>I noticed that the _display member of my bitmap is NULL. I tested this with your test program, and used <span class="source-code"><a href="http://www.allegro.cc/manual/al_set_new_bitmap_flags"><span class="a">al_set_new_bitmap_flags</span></a><span class="k2">(</span>ALLEGRO_VIDEO_BITMAP<span class="k2">)</span><span class="k2">;</span></span> and creation of video bitmaps after resizing the display fails.</p><p>Edit<br />One other thing I noticed is that it is failing to release the video textures.</p><div class="source-code snippet"><div class="inner"><pre>d3d      W C:\mingw\LIBS\A5113release\allegro\src\win\d3d_disp.cpp:2423 _al_d3d_destroy_bitmap           <span class="k2">[</span>   <span class="n">0</span>.<span class="n">36914</span><span class="k2">]</span> d3d_destroy_bitmap: Release video texture failed.
d3d      W C:\mingw\LIBS\A5113release\allegro\src\win\d3d_disp.cpp:2434 _al_d3d_destroy_bitmap           <span class="k2">[</span>   <span class="n">0</span>.<span class="n">36920</span><span class="k2">]</span> d3d_destroy_bitmap: Release render target failed.
display  I C:\mingw\LIBS\A5113release\allegro\src\display.c:240  <a href="http://www.allegro.cc/manual/al_resize_display"><span class="a">al_resize_display</span></a>                <span class="k2">[</span>   <span class="n">0</span>.<span class="n">36922</span><span class="k2">]</span> Requested display resize <span class="n">600x400</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 15 Apr 2016 08:40:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yep, all that information is in that bug report. The current best guess is that those failing releases are causing the device to not be reset properly, and while it is in that non-reset state, all video bitmaps will fail to create (and fall back to memory bitmaps).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sat, 16 Apr 2016 11:30:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I haven&#39;t had the chance to fully read this yet, but here is some interesting reading on D3D resources and resetting devices.</p><p><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/bb174714%28v=vs.85%29.aspx">https://msdn.microsoft.com/en-us/library/windows/desktop/bb174714%28v=vs.85%29.aspx</a></p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
All video memory must be released before a device can be reset from a lost state to an operational state.
</p></div></div><p>
So that failure to release the video texture is preventing us from resetting the D3D device.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 16 Apr 2016 13:32:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yipes. That&#39;s just one of the reasons D3D9 really blows. From what I know, later D3D versions to have this problem anymore. So... anyone in for an Allegro 6? <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (RPG Hacker)</author>
		<pubDate>Sat, 16 Apr 2016 18:14:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>From d3d_destroy_bitmap :
</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>d3d_bmp-&gt;video_texture<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  2</span>      <span class="k1">if</span> <span class="k2">(</span>d3d_bmp-&gt;video_texture-&gt;Release<span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  3</span>         ALLEGRO_WARN<span class="k2">(</span><span class="s">"d3d_destroy_bitmap: Release video texture failed.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>      <span class="k2">}</span>
<span class="number">  5</span>   <span class="k2">}</span>
<span class="number">  6</span>   <span class="k1">if</span> <span class="k2">(</span>d3d_bmp-&gt;system_texture<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  7</span>      <span class="k1">if</span> <span class="k2">(</span>d3d_bmp-&gt;system_texture-&gt;Release<span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  8</span>         ALLEGRO_WARN<span class="k2">(</span><span class="s">"d3d_destroy_bitmap: Release system texture failed.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>      <span class="k2">}</span>
<span class="number"> 10</span>   <span class="k2">}</span>
<span class="number"> 11</span>
<span class="number"> 12</span>   <span class="k1">if</span> <span class="k2">(</span>d3d_bmp-&gt;render_target<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 13</span>      <span class="k1">if</span> <span class="k2">(</span>d3d_bmp-&gt;render_target-&gt;Release<span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 14</span>         ALLEGRO_WARN<span class="k2">(</span><span class="s">"d3d_destroy_bitmap: Release render target failed.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>      <span class="k2">}</span>
<span class="number"> 16</span>   <span class="k2">}</span>
</div></div><p>

IUnknown::Release() only returns 0 when all references to the interface are released. So there&#39;s extra references floating around out there somewhere that haven&#39;t been released yet.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 17 Apr 2016 00:49:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Should be fixed on master now.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sun, 17 Apr 2016 07:10:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m on origin - should I change that?</p><p>Also, where was the leak?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 17 Apr 2016 07:28:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It happened whenever you set the target bitmap. Here&#39;s the commit that fixed it: <a href="https://github.com/liballeg/allegro5/commit/47f07d0865194f7021249ff8bea7eb144e78645f">linky</a>. Good thing I&#39;m not paid by lines of code <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />.</p><p>&#39;origin&#39; is just what the git remote is called. &#39;master&#39; is the branch. Just do a <span class="source-code">git fetch origin</span> and then <span class="source-code">git checkout master</span> and that should get you where you want to be.</p><p>EDIT:</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/616195/1021884#target">RPG Hacker</a> said:</div><div class="quote"><p> From what I know, later D3D versions to have this problem anymore. So... anyone in for an Allegro 6? <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p></div></div><p>Forgot to reply to this... there&#39;s no technical reason why you couldn&#39;t add a DX1x backend to Allegro 5.x even now.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sun, 17 Apr 2016 07:34:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>True, up to D3D11 should be no problem. Going up to D3D12 might be a different story, since it works fundamentally differnt and you&#39;d want to make best use of it. Then again, I don&#39;t know if Allegro would really profit much from that in the first place. Most of the time, it&#39;s used for simple 2D games, which work perfectly fine in older versions of D3D and Open GL, anyways.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (RPG Hacker)</author>
		<pubDate>Sun, 17 Apr 2016 19:03:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well that fixed it! I can resize perfectly with the D3D driver and 5.2.0 now! Minimize, maximize, and restore work too, but strangely they are not available when I right click on the taskbar icon (Windows 10). It still stretches the screen until you let go, which is kind of ugly though. I wish I could keep redrawing in the meantime. </p><p>If there were a function to filter events out of the queue, that would be perfect. That way every time you get a resize event you could just collect them all at once. I&#39;ve done that kind of thing before, and there are usually only 3-5 events piled up in the queue at a time.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 19 Apr 2016 11:02:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I had a crash like Edgar, but I just switched to OpenGL to get it working.<br />I may try with the patch and revert to original settings and see if I have the crash.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Tue, 19 Apr 2016 12:50:04 +0000</pubDate>
	</item>
</rss>
