<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Error when drawing a scaled bitmap</title>
		<link>http://www.allegro.cc/forums/view/616945</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 25 Jun 2017 09:20:38 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m trying to load an image that is scaled based on a constant <span class="source-code">TILESIZE</span> by taking the original image file and loading it to an <span class="source-code"><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a></span> then using <span class="source-code"><a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a></span> to draw it to the final <span class="source-code">image</span>
</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"> 193</span><span class="k1">void</span> tile::imageLoad<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 194</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Loading "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> fileName <span class="k3">&lt;</span><span class="k3">&lt;</span> std::endl<span class="k2">;</span>
<span class="number"> 195</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>unresizedImage <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>fileName.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 196</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>prevTarget <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_target_bitmap"><span class="a">al_get_target_bitmap</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 197</span>  <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 198</span>  <span class="k1">int</span> origHeight <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>unresizedImage<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 199</span>  <span class="k1">int</span> origWidth <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>unresizedImage<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 200</span>  <span class="k1">int</span> finalHeight <span class="k3">=</span> <span class="k2">(</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>origHeight <span class="k3">/</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>origWidth <span class="k3">*</span> TILESIZE<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 201</span>  image <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>TILESIZE, finalHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 202</span>  <a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a><span class="k2">(</span>unresizedImage, <span class="n">0</span>, <span class="n">0</span>, origWidth, origHeight, <span class="n">0</span>, <span class="n">0</span>, TILESIZE, finalHeight, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 203</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Created Empty Bitmap"</span><span class="k2">;</span>
<span class="number"> 204</span>  <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>prevTarget<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 205</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>image<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 206</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>display, <span class="s">"Error"</span>, <span class="s">"Error"</span>, fileName.c_str<span class="k2">(</span><span class="k2">)</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 207</span>    <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 208</span>    <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 209</span>  <span class="k2">}</span> std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Loaded "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> fileName <span class="k3">&lt;</span><span class="k3">&lt;</span> std::endl<span class="k2">;</span>
<span class="number"> 210</span><span class="k2">}</span>
</div></div><p>

but instead it gives </p><pre class="terminal">Assertion failed: src, file C:\dev\allegro_winpkg\universal\allegro\src\transformations.c, line 32</pre><p> to the console and aborts.</p><p>I&#39;ve confirmed that origWidth, origHeight, and finalHeight have the correct values.</p><p>The code below succeeds.
</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"> 182</span><span class="k1">void</span> imageMap::imageLoad<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 183</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Loading "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> fileName <span class="k3">&lt;</span><span class="k3">&lt;</span> std::endl<span class="k2">;</span>
<span class="number"> 184</span>  image <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>fileName.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//fileName.c_str()</span>
<span class="number"> 185</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>image<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 186</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>display, <span class="s">"Error"</span>, <span class="s">"Error"</span>, fileName.c_str<span class="k2">(</span><span class="k2">)</span>, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 187</span>    <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 188</span>    <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 189</span>  <span class="k2">}</span> std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Loaded "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> fileName <span class="k3">&lt;</span><span class="k3">&lt;</span> std::endl<span class="k2">;</span>
<span class="number"> 190</span><span class="k2">}</span>
</div></div><p>

Can anyone help me with this?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GudPiggeh)</author>
		<pubDate>Sun, 18 Jun 2017 12:21:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It seems you&#39;re calling <span class="source-code"><a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>image<span class="k2">)</span></span> when it still uninitialized, i.e. before <span class="source-code"> image <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>TILESIZE, finalHeight<span class="k2">)</span></span>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Polybios)</author>
		<pubDate>Sun, 18 Jun 2017 15:26:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks, that worked.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GudPiggeh)</author>
		<pubDate>Sun, 25 Jun 2017 09:20:38 +0000</pubDate>
	</item>
</rss>
