<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>[A5] how to use a bitmap as a pattern to fill a rectangular area?</title>
		<link>http://www.allegro.cc/forums/view/613849</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 31 Jan 2014 16:31:43 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, I&#39;d like to fill a rectangular area with a bitmap used as a pattern. How do I do that with A5?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (axilmar)</author>
		<pubDate>Thu, 30 Jan 2014 19:52:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Use the primitives addon. Look at the source code for the primitives example...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Don Freeman)</author>
		<pubDate>Thu, 30 Jan 2014 20:29:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks. After lots of experimentation, I came up with this:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">void</span> al_draw_bitmap_rect<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> sx, <span class="k1">int</span> sy, <span class="k1">int</span> sw, <span class="k1">int</span> sh, <span class="k1">float</span> dx, <span class="k1">float</span> dy, <span class="k1">float</span> dw, <span class="k1">float</span> dh, <span class="k1">int</span> flags<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  2</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>sub <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_sub_bitmap"><span class="a">al_create_sub_bitmap</span></a><span class="k2">(</span>bmp, sx, sy, sw, sh<span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>clone <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_clone_bitmap"><span class="a">al_clone_bitmap</span></a><span class="k2">(</span>sub<span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> c <span class="k3">=</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">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_VERTEX"><span class="a">ALLEGRO_VERTEX</span></a> vertices<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span>    vertices<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x <span class="k3">=</span> dx<span class="k2">;</span>
<span class="number"> 10</span>    vertices<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.y <span class="k3">=</span> dy<span class="k2">;</span>
<span class="number"> 11</span>    vertices<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.z <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 12</span>    vertices<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.color <span class="k3">=</span> c<span class="k2">;</span>
<span class="number"> 13</span>    vertices<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.u <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 14</span>    vertices<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.v <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>    vertices<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.x <span class="k3">=</span> dx <span class="k3">+</span> dw<span class="k2">;</span>
<span class="number"> 17</span>    vertices<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.y <span class="k3">=</span> dy<span class="k2">;</span>
<span class="number"> 18</span>    vertices<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.z <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 19</span>    vertices<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.color <span class="k3">=</span> c<span class="k2">;</span>
<span class="number"> 20</span>    vertices<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.u <span class="k3">=</span> dw<span class="k2">;</span>
<span class="number"> 21</span>    vertices<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.v <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 22</span>
<span class="number"> 23</span>    vertices<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.x <span class="k3">=</span> dx<span class="k2">;</span>
<span class="number"> 24</span>    vertices<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.y <span class="k3">=</span> dy <span class="k3">+</span> dh<span class="k2">;</span>
<span class="number"> 25</span>    vertices<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.z <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 26</span>    vertices<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.color <span class="k3">=</span> c<span class="k2">;</span>
<span class="number"> 27</span>    vertices<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.u <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 28</span>    vertices<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.v <span class="k3">=</span> dh<span class="k2">;</span>
<span class="number"> 29</span>
<span class="number"> 30</span>    vertices<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.x <span class="k3">=</span> dx <span class="k3">+</span> dw<span class="k2">;</span>
<span class="number"> 31</span>    vertices<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.y <span class="k3">=</span> dy <span class="k3">+</span> dh<span class="k2">;</span>
<span class="number"> 32</span>    vertices<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.z <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 33</span>    vertices<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.color <span class="k3">=</span> c<span class="k2">;</span>
<span class="number"> 34</span>    vertices<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.u <span class="k3">=</span> dw<span class="k2">;</span>
<span class="number"> 35</span>    vertices<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.v <span class="k3">=</span> dh<span class="k2">;</span>
<span class="number"> 36</span>
<span class="number"> 37</span>    <a href="http://www.allegro.cc/manual/al_draw_prim"><span class="a">al_draw_prim</span></a><span class="k2">(</span>vertices, nullptr, clone, <span class="n">0</span>, <span class="n">4</span>, ALLEGRO_PRIM_TRIANGLE_STRIP<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>
<span class="number"> 39</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>clone<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>sub<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span><span class="k2">}</span>
</div></div><p>

Am I doing it correctly? the visual output seems correct.</p><p>The function obviously creates and destroys bitmaps, so it&#39;s not the fastest thing. Other than pre-creating the bitmaps, is there another way to specify a subarea of the bitmap? perhaps using the vertices?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (axilmar)</author>
		<pubDate>Thu, 30 Jan 2014 21:19:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/613849/995752#target">axilmar</a> said:</div><div class="quote"><p> Other than pre-creating the bitmaps, is there another way to specify a subarea of the bitmap? perhaps using the vertices? </p></div></div><p>Can&#39;t be done without shaders, which is why Allegro doesn&#39;t support this operation.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Fri, 31 Jan 2014 02:58:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/613849/995766#target">SiegeLord</a> said:</div><div class="quote"><p> Can&#39;t be done without shaders, which is why Allegro doesn&#39;t support this operation. </p></div></div><p>Thanks. So it seems I would have to actually split the bitmap into other bitmaps.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (axilmar)</author>
		<pubDate>Fri, 31 Jan 2014 16:31:43 +0000</pubDate>
	</item>
</rss>
