<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Drawing a quad with al_draw_prim not appearing</title>
		<link>http://www.allegro.cc/forums/view/613603</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 05 Dec 2013 10:16:21 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I can&#39;t get this code to work. I&#39;ve tried drawing the same texture 3 different times, and the texture coords are painted on the screen after it, but none of the al_draw_prim calls work. They don&#39;t display anything. I know the texture loaded successfully because I display it first.</p><p><a href="https://www.allegro.cc/files/attachment/608137">WorldWrap.7z</a> Binary + src + data</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> DrawWorldWrapped<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  2</span>   <span class="c">// this won't work because al_draw_bitmap_region clips the source bitmap</span>
<span class="number">  3</span><span class="c">///   al_draw_bitmap_region(tex , texX , texY , viewwidth , viewheight , viewcenterx - viewwidth/2 , viewcentery - viewheight/2 , 0);</span>
<span class="number">  4</span>
<span class="number">  5</span>   <span class="k1">double</span> texlx <span class="k3">=</span> <span class="k2">(</span>viewcenterx <span class="k3">-</span> viewwidth<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">/</span><span class="k2">(</span><span class="k1">double</span><span class="k2">)</span>texwidth<span class="k2">;</span>
<span class="number">  6</span>   <span class="k1">double</span> texrx <span class="k3">=</span> <span class="k2">(</span>viewcenterx <span class="k3">+</span> viewwidth<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">/</span><span class="k2">(</span><span class="k1">double</span><span class="k2">)</span>texwidth<span class="k2">;</span>
<span class="number">  7</span>   <span class="k1">double</span> texty <span class="k3">=</span> <span class="k2">(</span>viewcentery <span class="k3">-</span> viewheight<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">/</span><span class="k2">(</span><span class="k1">double</span><span class="k2">)</span>texheight<span class="k2">;</span>
<span class="number">  8</span>   <span class="k1">double</span> texby <span class="k3">=</span> <span class="k2">(</span>viewcentery <span class="k3">+</span> viewheight<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">/</span><span class="k2">(</span><span class="k1">double</span><span class="k2">)</span>texheight<span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> white <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgb_f"><span class="a">al_map_rgb_f</span></a><span class="k2">(</span><span class="n">1</span>,<span class="n">1</span>,<span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span><span class="c">/**</span>
<span class="number"> 12</span><span class="c">   ALLEGRO_VERTEX quad[4] = {// counterclockwise from top left</span>
<span class="number"> 13</span><span class="c">      MakeAllegroVertex(viewdrawx             , viewdrawy              , 0.0 , white , texlx , texty),</span>
<span class="number"> 14</span><span class="c">      MakeAllegroVertex(viewdrawx             , viewdrawy + viewheight , 0.0 , white , texlx , texby),</span>
<span class="number"> 15</span><span class="c">      MakeAllegroVertex(viewdrawx + viewwidth , viewdrawy + viewheight , 0.0 , white , texrx , texby),</span>
<span class="number"> 16</span><span class="c">      MakeAllegroVertex(viewdrawx + viewwidth , viewdrawy              , 0.0 , white , texrx , texty)</span>
<span class="number"> 17</span><span class="c">   };</span>
<span class="number"> 18</span><span class="c">//*/</span>
<span class="number"> 19</span><span class="c">/**</span>
<span class="number"> 20</span><span class="c">   ALLEGRO_VERTEX quad2[4] = {// clockwise from top left</span>
<span class="number"> 21</span><span class="c">      MakeAllegroVertex(viewdrawx             , viewdrawy              , 0.0 , white , texlx , texty),</span>
<span class="number"> 22</span><span class="c">      MakeAllegroVertex(viewdrawx + viewwidth , viewdrawy              , 0.0 , white , texrx , texty),</span>
<span class="number"> 23</span><span class="c">      MakeAllegroVertex(viewdrawx + viewwidth , viewdrawy + viewheight , 0.0 , white , texrx , texby),</span>
<span class="number"> 24</span><span class="c">      MakeAllegroVertex(viewdrawx             , viewdrawy + viewheight , 0.0 , white , texlx , texby)</span>
<span class="number"> 25</span><span class="c">   };</span>
<span class="number"> 26</span><span class="c">//*/</span>
<span class="number"> 27</span><span class="c">//*</span>
<span class="number"> 28</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_VERTEX"><span class="a">ALLEGRO_VERTEX</span></a> quad<span class="k2">[</span><span class="n">4</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="c">// counterclockwise from top left</span>
<span class="number"> 29</span>      MakeAllegroVertex<span class="k2">(</span><span class="n">0</span> , <span class="n">0</span> , <span class="n">0</span>.<span class="n">0</span> , white , texlx , texty<span class="k2">)</span>,
<span class="number"> 30</span>      MakeAllegroVertex<span class="k2">(</span><span class="n">0</span> , <span class="n">300</span> , <span class="n">0</span>.<span class="n">0</span> , white , texlx , texby<span class="k2">)</span>,
<span class="number"> 31</span>      MakeAllegroVertex<span class="k2">(</span><span class="n">400</span> , <span class="n">300</span> , <span class="n">0</span>.<span class="n">0</span> , white , texrx , texby<span class="k2">)</span>,
<span class="number"> 32</span>      MakeAllegroVertex<span class="k2">(</span><span class="n">400</span> , <span class="n">0</span> , <span class="n">0</span>.<span class="n">0</span> , white , texrx , texty<span class="k2">)</span>
<span class="number"> 33</span>   <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 34</span><span class="c">//*/</span>
<span class="number"> 35</span><span class="c">//*</span>
<span class="number"> 36</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_VERTEX"><span class="a">ALLEGRO_VERTEX</span></a> quad2<span class="k2">[</span><span class="n">4</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="c">// counterclockwise from top left</span>
<span class="number"> 37</span>      MakeAllegroVertex<span class="k2">(</span><span class="n">400</span> , <span class="n">300</span> , <span class="n">0</span>.<span class="n">0</span> , white , texlx , texty<span class="k2">)</span>,
<span class="number"> 38</span>      MakeAllegroVertex<span class="k2">(</span><span class="n">400</span> , <span class="n">600</span> , <span class="n">0</span>.<span class="n">0</span> , white , texlx , texby<span class="k2">)</span>,
<span class="number"> 39</span>      MakeAllegroVertex<span class="k2">(</span><span class="n">800</span> , <span class="n">600</span> , <span class="n">0</span>.<span class="n">0</span> , white , texrx , texby<span class="k2">)</span>,
<span class="number"> 40</span>      MakeAllegroVertex<span class="k2">(</span><span class="n">800</span> , <span class="n">300</span> , <span class="n">0</span>.<span class="n">0</span> , white , texrx , texty<span class="k2">)</span>
<span class="number"> 41</span>   <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 42</span><span class="c">//*/</span>
<span class="number"> 43</span><span class="c">//**</span>
<span class="number"> 44</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_VERTEX"><span class="a">ALLEGRO_VERTEX</span></a> quad3<span class="k2">[</span><span class="n">4</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="c">// clockwise from top left</span>
<span class="number"> 45</span>      MakeAllegroVertex<span class="k2">(</span>viewdrawx             , viewdrawy              , <span class="n">0</span>.<span class="n">0</span> , white , texlx , texty<span class="k2">)</span>,
<span class="number"> 46</span>      MakeAllegroVertex<span class="k2">(</span>viewdrawx <span class="k3">+</span> viewwidth , viewdrawy              , <span class="n">0</span>.<span class="n">0</span> , white , texrx , texty<span class="k2">)</span>,
<span class="number"> 47</span>      MakeAllegroVertex<span class="k2">(</span>viewdrawx <span class="k3">+</span> viewwidth , viewdrawy <span class="k3">+</span> viewheight , <span class="n">0</span>.<span class="n">0</span> , white , texrx , texby<span class="k2">)</span>,
<span class="number"> 48</span>      MakeAllegroVertex<span class="k2">(</span>viewdrawx             , viewdrawy <span class="k3">+</span> viewheight , <span class="n">0</span>.<span class="n">0</span> , white , texlx , texby<span class="k2">)</span>
<span class="number"> 49</span>   <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 50</span><span class="c">//*/</span>
<span class="number"> 51</span>   <a href="http://www.allegro.cc/manual/al_draw_prim"><span class="a">al_draw_prim</span></a><span class="k2">(</span>quad , NULL , tex , <span class="n">0</span> , <span class="n">3</span> , ALLEGRO_PRIM_TRIANGLE_FAN<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 52</span>   <a href="http://www.allegro.cc/manual/al_draw_prim"><span class="a">al_draw_prim</span></a><span class="k2">(</span>quad2 , NULL , tex , <span class="n">0</span> , <span class="n">3</span> , ALLEGRO_PRIM_TRIANGLE_FAN<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 53</span>   <a href="http://www.allegro.cc/manual/al_draw_prim"><span class="a">al_draw_prim</span></a><span class="k2">(</span>quad3 , NULL , tex , <span class="n">0</span> , <span class="n">3</span> , ALLEGRO_PRIM_TRIANGLE_FAN<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 54</span>
<span class="number"> 55</span><span class="c">//void al_draw_textf(const ALLEGRO_FONT *font, ALLEGRO_COLOR color,</span>
<span class="number"> 56</span><span class="c">//   float x, float y, int flags,</span>
<span class="number"> 57</span><span class="c">//   const char *format, ...)</span>
<span class="number"> 58</span>
<span class="number"> 59</span>   <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> , white , <span class="n">50</span> , <span class="n">50</span> , <span class="n">0</span> , <span class="s">"lx = %f , rx = %f"</span> , texlx , texrx<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span>   <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> , white , <span class="n">50</span> , <span class="n">100</span> , <span class="n">0</span> , <span class="s">"ty = %f , by = %f"</span> , texty , texby<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 61</span>
<span class="number"> 62</span><span class="c">///   al_draw_textf(font , white , 50 , 150 , 0 , "lx = %lf , rx = %lf" , texlx , texrx);</span>
<span class="number"> 63</span><span class="c">///   al_draw_textf(font , white , 50 , 200 , 0 , "ty = %lf , by = %lf" , texty , texby);</span>
<span class="number"> 64</span>
<span class="number"> 65</span>   <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> , white , <span class="n">50</span> , <span class="n">250</span> , <span class="n">0</span> , <span class="s">"vlx = %i , vrx = %i"</span> , viewdrawx  , viewdrawx <span class="k3">+</span> viewwidth<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 66</span>   <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> , white , <span class="n">50</span> , <span class="n">300</span> , <span class="n">0</span> , <span class="s">"vty = %i , vby = %i"</span> , viewdrawy  , viewdrawy <span class="k3">+</span> viewheight<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 67</span>   
<span class="number"> 68</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 05 Dec 2013 04:59:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I see this<br /><span class="remote-thumbnail"><span class="json">{"name":"608139","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/a\/6a37e65e5fb247256b1938b38027cf3d.png","w":800,"h":600,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/a\/6a37e65e5fb247256b1938b38027cf3d"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/6/a/6a37e65e5fb247256b1938b38027cf3d-240.jpg" alt="608139" width="240" height="180" /></span></p><p>What&#39;s it supposed to look like?</p><p>BTW, you forgot to include mybackground.png, so I substituted a random image.</p><p>[EDIT]</p><p>Upon further examination, the x&#39;s and y&#39;s are the same, so you&#39;re only showing one pixel of Map.BMP, which is black.</p><p>Waiting for charter.com to reconnect so I can hit the submit button. <img src="http://www.allegro.cc/forums/smileys/angry.gif" alt="&gt;:(" /><br />Maybe the new roomie&#39;s laptop is riddled with spyware and it&#39;s overloading the data cap with spam emails or something.</p><p>[EDIT 2]</p><p>I added a new vertex, and copied the first to the 5th and now it shows a rectangle, scrolling along with the arrow keys eventually changes the color due to enormous pixels much larger than the window, fiddling with the numbers hasn&#39;t helped yet.</p><p><span class="remote-thumbnail"><span class="json">{"name":"608140","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/3\/d3155a721a90088e2d470545b2a427fe.png","w":800,"h":600,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/3\/d3155a721a90088e2d470545b2a427fe"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/d/3/d3155a721a90088e2d470545b2a427fe-240.jpg" alt="608140" width="240" height="180" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 05 Dec 2013 05:29:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry, forgot to specify, you can specify. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>Usage :<br />WorldWrap.exe ImageFileName.png</p><p>It&#39;s supposed to be drawing 3 quads, one in the top left quadrant, one in the bottom right, and one in the center. It doesn&#39;t draw anything for me.</p><p>Oh, sorry, didn&#39;t update the binary. Gotta wait til I get home now.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 05 Dec 2013 06:01:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Use an image program to provide a crude example of what that would look like, please.  I&#39;m multitasking too hard and my dual-cell brain is thrashing badly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 05 Dec 2013 06:05:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><ul><li><p><span class="source-code">u</span>, <span class="source-code">v</span> need to be in pixels.
</p></li><li><p><span class="source-code">end</span> argument is last valid index + 1 (i.e. 4 not 3).
</p></li><li><p>Your bitmap needs to have its dimensions be a power of 2.
</p></li></ul></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Thu, 05 Dec 2013 06:12:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Has to be a power of 2? So how would I wrap a texture around that is not a power of 2?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 05 Dec 2013 07:00:35 +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/613603/993639#target">Edgar Reynaldo</a> said:</div><div class="quote"><p> how would I wrap a texture around that is not a power of 2? </p></div></div><p>You mean how to force a texture to be a power of 2?  Either stretch it with a good graphic program to the desired dimensions, or copy the image and paste it to a larger image that does have power of two dimensions.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 05 Dec 2013 07:04:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>But I don&#39;t want it to be POT. Then I would have to scale it. The whole idea is that it can be any size and you can wrap the edges for a continuously scrolling background.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 05 Dec 2013 07:06:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The answer then is a shader or abandoning <span class="source-code"><a href="http://www.allegro.cc/manual/al_draw_prim"><span class="a">al_draw_prim</span></a></span> and just calling <span class="source-code"><a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a></span> 4 times (assuming your bitmap is larger than the screen).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Thu, 05 Dec 2013 08:06:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Okay, I fixed what you said, and it&#39;s drawing now, but allegro is using a POT texture with zero alpha in the gaps and wrapping that. My source image is 1024x768 and the texture is 1024x1024 I believe. How do I avoid scaling? I don&#39;t want to change the aspect ratio either. You said draw 4 bitmaps, what if the view size is larger than the wrapped background? I might have to draw more. Isn&#39;t there an easy way to tile?</p><p>And I don&#39;t really know how to write a shader. Any good tutorials? Websites?</p><p><a href="https://www.allegro.cc/files/attachment/608152">WorldWrap.7z</a> Bin + src + dat</p><p>WorldWrap.exe HarperVR2.BMP</p><p><span class="remote-thumbnail"><span class="json">{"name":"608151","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/8\/f\/8f76d9ce132caae530147f4db5ba57a4.png","w":812,"h":632,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/8\/f\/8f76d9ce132caae530147f4db5ba57a4"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/8/f/8f76d9ce132caae530147f4db5ba57a4-240.jpg" alt="608151" width="240" height="186" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 05 Dec 2013 09:07:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s a simple piece of code to draw a grid of bitmaps to fill the screen.</p><p>For shaders you need to use A5.1, obviously. I think just looking at A5 examples will be sufficient for such a simple shader. I&#39;d just grab the default ones and modify them a bit (untested):</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">const</span> <span class="k1">char</span> <span class="k3">*</span>glsl_pixel_source <span class="k3">=</span>
<span class="number">  2</span>   <span class="p">#ifndef ALLEGRO_CFG_OPENGLES</span>
<span class="number">  3</span>   <span class="s">"#version 120\n"</span> <span class="c">/* Must be first so we can't use #ifndef GL_ES. */</span>
<span class="number">  4</span>   <span class="p">#endif</span>
<span class="number">  5</span>   <span class="s">"#ifdef GL_ES\n"</span>
<span class="number">  6</span>   <span class="s">"precision mediump float;\n"</span>
<span class="number">  7</span>   <span class="s">"#endif\n"</span>
<span class="number">  8</span>   <span class="s">"uniform sampler2D "</span> ALLEGRO_SHADER_VAR_TEX <span class="s">";\n"</span>
<span class="number">  9</span>   <span class="s">"uniform bool "</span> ALLEGRO_SHADER_VAR_USE_TEX <span class="s">";\n"</span>
<span class="number"> 10</span>   <span class="s">"varying vec4 varying_color;\n"</span>
<span class="number"> 11</span>   <span class="s">"varying vec2 varying_texcoord;\n"</span>
<div class="highlight"><span class="number"> 12</span>   <span class="s">"uniform vec2 bitmap_size_frac;\n"</span></div><span class="number"> 13</span>   <span class="s">"void main()\n"</span>
<span class="number"> 14</span>   <span class="s">"{\n"</span>
<span class="number"> 15</span>   <span class="s">"  if ("</span> ALLEGRO_SHADER_VAR_USE_TEX <span class="s">")\n"</span>
<div class="highlight"><span class="number"> 16</span>   <span class="s">"    gl_FragColor = varying_color * texture2D("</span> ALLEGRO_SHADER_VAR_TEX <span class="s">", fract(varying_texcoord / bitmap_size_frac) * bitmap_size_frac );\n"</span> </div><span class="number"> 17</span>   <span class="s">"  else\n"</span>
<span class="number"> 18</span>   <span class="s">"    gl_FragColor = varying_color;\n"</span>
<span class="number"> 19</span>   <span class="s">"}\n"</span><span class="k2">;</span>
<span class="number"> 20</span>
<span class="number"> 21</span><span class="k1">static</span> <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>hlsl_pixel_source <span class="k3">=</span>
<span class="number"> 22</span>   <span class="s">"bool "</span> ALLEGRO_SHADER_VAR_USE_TEX <span class="s">";\n"</span>
<span class="number"> 23</span>   <span class="s">"texture "</span> ALLEGRO_SHADER_VAR_TEX <span class="s">";\n"</span>
<span class="number"> 24</span>   <span class="s">"sampler2D s = sampler_state {\n"</span>
<span class="number"> 25</span>   <span class="s">"   texture = &lt;"</span> ALLEGRO_SHADER_VAR_TEX <span class="s">"&gt;;\n"</span>
<span class="number"> 26</span>   <span class="s">"};\n"</span>
<div class="highlight"><span class="number"> 27</span>   <span class="s">"float2 bitmap_size_frac; \n"</span></div><span class="number"> 28</span>   <span class="s">"\n"</span>
<span class="number"> 29</span>   <span class="s">"float4 ps_main(VS_OUTPUT Input) : COLOR0\n"</span>
<span class="number"> 30</span>   <span class="s">"{\n"</span>
<span class="number"> 31</span>   <span class="s">"   if ("</span> ALLEGRO_SHADER_VAR_USE_TEX <span class="s">") {\n"</span>
<div class="highlight"><span class="number"> 32</span>   <span class="s">"      return Input.Color * tex2D(s, frac(Input.TexCoord / bitmap_size_frac) * bitmap_size_frac);\n"</span></div><span class="number"> 33</span>   <span class="s">"   }\n"</span>
<span class="number"> 34</span>   <span class="s">"   else {\n"</span>
<span class="number"> 35</span>   <span class="s">"      return Input.Color;\n"</span>
<span class="number"> 36</span>   <span class="s">"   }\n"</span>
<span class="number"> 37</span>   <span class="s">"}\n"</span><span class="k2">;</span>
</div></div><p>

Then you&#39;ll need to set the <span class="source-code">bitmap_size_frac</span> variable in your code like so:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> true_w, true_h<span class="k2">;</span>
<a href="http://www.allegro.cc/manual/al_get_opengl_texture_size"><span class="a">al_get_opengl_texture_size</span></a><span class="k2">(</span>tex, <span class="k3">&amp;</span>true_w, <span class="k3">&amp;</span>true_h<span class="k2">)</span><span class="k2">;</span>
<span class="k1">float</span> bitmap_size_frac<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</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>tex<span class="k2">)</span> <span class="k3">/</span> true_w, <span class="k2">(</span><span class="k1">float</span><span class="k2">)</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>tex<span class="k2">)</span> <span class="k3">/</span> true_h<span class="k2">}</span><span class="k2">;</span>
al_set_shader_float_vector<span class="k2">(</span><span class="s">"bitmap_size_frac"</span>, <span class="n">2</span>, bitmap_size_frac, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Thu, 05 Dec 2013 10:16:21 +0000</pubDate>
	</item>
</rss>
