<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>git format-patch: troubles with white space trailing</title>
		<link>http://www.allegro.cc/forums/view/617749</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 25 Feb 2019 22:24:36 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello.</p><p>I am trying to &quot;git format-patch&quot; for allegro5 and i have encounter a small<br />problem with trailing white space. My editor is set to remove the trailing<br />white space and i was so sure( Oh how wrong i was ! ) that every other editor<br />in the world does it. Well who the hell needs a bunch of white space characters<br />on an empty line.<br />And now when i formated the patch i noticed that the files i was working with<br />had this white space trailing on almost every empty line. The patch is now plagued<br />with lines like 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="k3">-</span><span class="n">224</span>,<span class="n">15</span> <span class="k3">+</span><span class="n">225</span>,<span class="n">15</span> @@ <span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span><span class="k3">*</span>argv<span class="k2">)</span>
<span class="number">  2</span>             al_acknowledge_drawing_halt<span class="k2">(</span>event.display.source<span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span> 
<span class="number">  4</span>             <span class="k1">break</span><span class="k2">;</span>
<span class="number">  5</span><span class="k3">-</span>         
<span class="number">  6</span><span class="k3">+</span>
<span class="number">  7</span>          <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_RESUME_DRAWING:
<span class="number">  8</span>             background <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  9</span>             <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 10</span><span class="k3">-</span>         
<span class="number"> 11</span><span class="k3">+</span>
<span class="number"> 12</span>          <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_RESIZE:
<span class="number"> 13</span>             <a href="http://www.allegro.cc/manual/al_acknowledge_resize"><span class="a">al_acknowledge_resize</span></a><span class="k2">(</span>event.display.source<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>             <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 15</span><span class="k3">-</span>              
<span class="number"> 16</span><span class="k3">+</span>
<span class="number"> 17</span>          <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number"> 18</span>             update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>             need_redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
</div></div><p>

Not only is the patch unnecessary large but it is also harder to look trough<br />and see what was really done.</p><p>Does allegro have any kind of guidelines regarding white space trailing in the code.<br />Should it be removed? Or should it be kept as the original author wrote it?</p><p>I am asking because it will be a real pain to return the white space in the files<br />to original state. My GIT-KUNG-FU is not that good to remove this kind of problem( if it is possible).<br />And my patch looks ugly. <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Izual)</author>
		<pubDate>Tue, 19 Feb 2019 01:41:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Your best bet is to reapply your changes to a fresh source checkout with a different editor that doesn&#39;t eat white space.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 19 Feb 2019 03:01:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>We prefer the whitespace changes to be their own commits (although we rarely do them unless the whitespace is really bad). It&#39;s not particularly hard to split up a commit though:</p><p>First, undo the commit (this&#39;ll keep the changes):</p><pre class="terminal">git reset HEAD~1</pre><p>

Then use the interactive add mode.</p><pre class="terminal">git add -p &lt;optionally put the files you meant to change here&gt;</pre><p>

That&#39;ll put you in a mode where you&#39;ll go through every diff hunk. Press <span class="source-code">y</span> if you want to stage it (i.e. the changes you really meant to do), or <span class="source-code">n</span> if not. After that&#39;s done you can do:</p><pre class="terminal">git commit -m &quot;Your commit message&quot;</pre><p>

After that&#39;s done you&#39;ll still have your whitespace changes... I&#39;d probably avoid committing them, but you can if you want.</p><p>If that gives you too much trouble, then don&#39;t worry too much we can do the split for you as well.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 19 Feb 2019 03:30:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>^ Excellent post SiegeLord. Interactive add is probably the best option here.</p><p>Edgar, I&#39;m getting old too, but seriously learn something new and master such an important tool. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> Git can save you so much fuss if you just take a weekend to learn it. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> There&#39;s even a free/libre &quot;book&quot; available online to walk you through most of it. Beyond that, ask in #git on freenode any question and they&#39;ll steer you in the right direction and hold your hand if you need it. And when we&#39;re present we can help you in #allegro too.</p><p>On a side note: if you are viewing a patch with a Git command and the patch is full of white-space only noise you can add a -w option to suppress it. It won&#39;t help with merging such a patch, but it can at least help for reviewing it. UIs for viewing Git history should support such an option too (or should be complained to if it doesn&#39;t).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Tue, 19 Feb 2019 09:59:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>@bamccaig</p><p>I do use git, but I haven&#39;t really had the need for its more advanced features. I rarely need any more than git branch and git merge. If git can somehow magically remove whitespace changes from a commit that&#39;s cool and its news to me.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 19 Feb 2019 12:31:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you all.</p><p>I will try to get rid of the white space changes on my own for now. Improving my GIT-KUNG-FU along the way.<br />It will be propably a real pain, but on the other hand, a valuable experience.</p><p>Will post the result when i am satisfied with them. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Izual)</author>
		<pubDate>Tue, 19 Feb 2019 14:44:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You may be able to hand edit the patch and literally remove whole swaths of ws changes.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 19 Feb 2019 23:01:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok. I have managed to get rid of the white space changes and i have compiled a<br />patch preview so that you can see what i am trying to do and if it is worth<br />to continue( if it is actually desired to make such changes ).</p><p><a href="https://www.allegro.cc/files/attachment/611905">PATCH HERE</a></p><p>I have noticed a little differences between some bitmap drawing functions so i made those changes:</p><p>1:<br />al_draw_scaled_bitmap and al_draw_scaled_rotated_bitmap where one takes<br />absolute destination bitmap size and one takes scale value.</p><p>Made them both take scale value and to compensate for the change i added<br />another functions named al_draw_stretched_bitmap and al_draw_stretched_rotated_bitmap<br />that takes absolute destination bitmap size.</p><p>2:<br />al_draw_tinted_bitmap_region and al_draw_tinted_scaled_rotated_bitmap_region had<br />the tint argument in different order. Corrected that.</p><p>3:<br />Now only region drawing functions use source bitmap position and dimensions arguments.</p><p>4:<br />Made a function for every sane combination of Tinted, Scaled, Stretched and Rotated drawing.<br />Also made those functions with region variants.</p><p>5:<br />Added documentation for all available functions.</p><p>6:<br />Adjusted examples to use the new or changed drawing functions.</p><p>To compile the allegro with this preview patch you have to disable<br />WANT_DEMO and WANT_TESTS in cmake for now.<br />Still trying to figure out how the tests works for now.</p><p>Take a look and share your opinions please.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Izual)</author>
		<pubDate>Wed, 20 Feb 2019 00:54:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Woah man, are you from the future?</p><p><span class="remote-thumbnail"><span class="json">{"name":"611906","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/2\/72e00ab6eb7bf3b17b698d64d215eedd.png","w":1920,"h":1080,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/2\/72e00ab6eb7bf3b17b698d64d215eedd"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/7/2/72e00ab6eb7bf3b17b698d64d215eedd-240.jpg" alt="611906" width="240" height="135" /></span></p><p>I&#39;m looking at your patch now...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 20 Feb 2019 02:31:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>A tiny bit of work has been done on the patch again. The demos and tests now compiles too.<br />Also managed to get the test_bitmaps2.ini to pass all the tests.<br />But the test_bitmaps.ini is much bigger beast and i still fully do not understand<br />whole test_driver.c so it fails some of the tests.<br />A few tips from someone who knows what is going on there would be really helpfull.</p><p><a href="https://www.allegro.cc/files/attachment/611911">New patch preview can be found here.</a></p><p>@Edgar:<br />Seems like all that white space trailing in the patch also messed up my TTD ( a Time Travel Device, not a Tranport Tycoon Deluxe <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> )<br />settings and the patch ended in the wrong time <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Izual)</author>
		<pubDate>Thu, 21 Feb 2019 01:55:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Seems there are options for dealing with white space changes ;</p><div class="quote_container"><div class="title"><a href="https://www.git-scm.com/docs/git-pull">git help pull</a> said:</div><div class="quote"><p>
The merge mechanism (git merge and git pull commands) allows the backend merge strategies to be chosen with -s option. Some strategies can also take their own options, which can be passed by giving -X&lt;option&gt; arguments to git merge and/or git pull.</p><p>...</p><p>ignore-space-change<br />ignore-all-space<br />ignore-space-at-eol</p><p>    Treats lines with the indicated type of whitespace change as unchanged for the sake of a three-way merge. Whitespace changes mixed with other changes to a line are not ignored. See also git-diff(1) -b, -w, and --ignore-space-at-eol.</p><p>        If their version only introduces whitespace changes to a line, our version is used;</p><p>        If our version introduces whitespace changes but their version includes a substantial change, their version is used;</p><p>        Otherwise, the merge proceeds in the usual way.</p></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 22 Feb 2019 01:28:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just to be clear - items 1 &amp; 2 in your list are breaking changes to the Allegro API, are they?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Fri, 22 Feb 2019 03:49:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, they are. Unfortunately.</p><p>But then i could just name the new functions something like:</p><p>al_blit_bitmap<br />al_blit_tinted_bitmap<br />al_blit_stretched_rotated_bitmap_region</p><p>and so on to keep the current al_draw_bitmap routines untouched.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Izual)</author>
		<pubDate>Fri, 22 Feb 2019 22:21:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If we&#39;re going to make sweeping changes, I have some suggestions :</p><p>Make naming and parameters consistent (its hard enough to remember the parameters as it is) :</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="c">/// Drawing routines</span>
<span class="number">  2</span>
<span class="number">  3</span><a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a>                         <span class="k2">(</span>bmp , dx , dy ,                                  flags<span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span>al_draw_bitmap_stretched               <span class="k2">(</span>bmp , dx , dy , dw , dh ,                        flags<span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>al_draw_bitmap_scaled                  <span class="k2">(</span>bmp , dx , dy , scalex , scaley ,                flags<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>al_draw_bitmap_tinted                  <span class="k2">(</span>bmp , dx , dy , tint ,                           flags<span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>al_draw_bitmap_rotated                 <span class="k2">(</span>bmp , dx , dy , theta ,                          flags<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span>al_draw_bitmap_stretched_tinted        <span class="k2">(</span>bmp , dx , dy , dw , dh , tint ,                 flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>al_draw_bitmap_stretched_rotated       <span class="k2">(</span>bmp , dx , dy , dw , dh , theta ,                flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>al_draw_bitmap_scaled_tinted           <span class="k2">(</span>bmp , dx , dy , scalex , scaley , tint ,         flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>al_draw_bitmap_scaled_rotated          <span class="k2">(</span>bmp , dx , dy , scalex , scaley , theta ,        flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>al_draw_bitmap_tinted_rotated          <span class="k2">(</span>bmp , dx , dy , tint , theta ,                   flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>
<span class="number"> 18</span>al_draw_bitmap_stretched_tinted_rotated<span class="k2">(</span>bmp , dx , dy , dw , dh , tint , theta ,         flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>al_draw_bitmap_scaled_tinted_rotated   <span class="k2">(</span>bmp , dx , dy , scalex , scaley , tint , theta , flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>
<span class="number"> 21</span>
<span class="number"> 22</span><span class="c">/// Region drawing routines</span>
<span class="number"> 23</span>
<span class="number"> 24</span><a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a>                         <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy ,                                  flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>
<span class="number"> 26</span>al_draw_bitmap_region_stretched               <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , dw , dh ,                        flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>al_draw_bitmap_region_scaled                  <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , scalex , scaley ,                flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>al_draw_bitmap_region_tinted                  <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , tint ,                           flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>al_draw_bitmap_region_rotated                 <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , theta ,                          flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>
<span class="number"> 31</span>al_draw_bitmap_region_stretched_tinted        <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , dw , dh , tint ,                 flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>al_draw_bitmap_region_stretched_rotated       <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , dw , dh , theta ,                flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>
<span class="number"> 34</span>al_draw_bitmap_region_scaled_tinted           <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , scalex , scaley , tint ,         flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>al_draw_bitmap_region_scaled_rotated          <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , scalex , scaley , theta ,        flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>
<span class="number"> 37</span>al_draw_bitmap_region_tinted_rotated          <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , tint , theta ,                   flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>
<span class="number"> 39</span>al_draw_bitmap_region_stretched_tinted_rotated<span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , dw , dh , tint , theta ,         flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>al_draw_bitmap_region_scaled_tinted_rotated   <span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , scalex , scaley , tint , theta , flags<span class="k2">)</span><span class="k2">;</span>
</div></div><p>

See how all the drawing routines start with the destination? And how the region drawing routines start with the source rectangle and then the destination?</p><p>After that, it&#39;s just a matter of adding the parameter named by the function to the argument list before the flags parameter.</p><p>Everything lines up, the parameters are accepted in the order given by the naming of the function, and it just makes things so much easier.</p><p>*The bonus of this naming scheme is that it doesn&#39;t require any changes to the ABI of Allegro. The current versions of drawing routines could be mapped to the new ones to maintain compatibility, while at the same time, creating consistency and order in the naming and use of these functions.</p><p>I&#39;m still looking at your patch.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 23 Feb 2019 03:46:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you Edgar for your suggestion and wording my intention with this patch correctly.<br />As my english is self-taught, sometimes its hard to write down exactly what i want. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Yes. The whole point of this patch is to make the drawing functions naming and parameter list consistent.<br />But my propposed changes are actually breaking the compatibility that is why i like your naming of the functions better.<br />I am willing to completely rewrite it if we can come up with a reasonable naming and parameter order.</p><p>I am proposing to use your naming witch does not interfere with the current drawing functions:<br />al_draw_bitmap_all-sane-variations and al_draw_bitmap_region_all-sane-variations</p><p>And parameter order list:<br /> bitmap, tint, sx, sy, sw, sh, cx, cy, dx, dy, dw or scalex, dh or scaley, angle, flags</p><p>Witch would make the longest function name:
</p><div class="source-code snippet"><div class="inner"><pre>al_draw_bitmap_region_tinted_stretched_rotated<span class="k2">(</span> bmp, tint, sx, sy, sw, sh, cx, cy, dx, dy, dw, dh, angle, flags <span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

But i am realy fine with anything that is consistent.</p><p>Current naming and parameter order list in my patch ( breaks compatibility ):
</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="c">// Bitmap:</span>
<span class="number">  2</span><a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a>                          <span class="k2">(</span> bmp, dx, dy, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span><a href="http://www.allegro.cc/manual/al_draw_tinted_bitmap"><span class="a">al_draw_tinted_bitmap</span></a>                   <span class="k2">(</span> bmp, tint, dx, dy, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</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> bmp, dx, dy, xscale, yscale, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>al_draw_stretched_bitmap                <span class="k2">(</span> bmp, dx, dy, dw, dh, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span><a href="http://www.allegro.cc/manual/al_draw_rotated_bitmap"><span class="a">al_draw_rotated_bitmap</span></a>                  <span class="k2">(</span> bmp, cx, cy, dx, dy, angle, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</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> bmp, tint, dx, dy, xscale, yscale, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>al_draw_tinted_stretched_bitmap         <span class="k2">(</span> bmp, tint, dx, dy, dw, dh, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span><a href="http://www.allegro.cc/manual/al_draw_tinted_rotated_bitmap"><span class="a">al_draw_tinted_rotated_bitmap</span></a>           <span class="k2">(</span> bmp, tint, cx, cy, dx, dy, angle, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span><a href="http://www.allegro.cc/manual/al_draw_scaled_rotated_bitmap"><span class="a">al_draw_scaled_rotated_bitmap</span></a>           <span class="k2">(</span> bmp, cx, cy, dx, dy, xscale, yscale, angle, flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>al_draw_stretched_rotated_bitmap        <span class="k2">(</span> bmp, cx, cy, dx, dy, dw, dh, angle, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span><a href="http://www.allegro.cc/manual/al_draw_tinted_scaled_rotated_bitmap"><span class="a">al_draw_tinted_scaled_rotated_bitmap</span></a>    <span class="k2">(</span> bmp, tint, cx, cy, dx, dy, xscale, yscale, angle, flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>al_draw_tinted_stretched_rotated_bitmap <span class="k2">(</span> bmp, tint, cx, cy, dx, dy, dw, dh, angle, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span><span class="c">// Bitmap region:</span>
<span class="number"> 16</span><a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a>                         <span class="k2">(</span> bmp, sx, sy, sw, sh, dx, dy, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span><a href="http://www.allegro.cc/manual/al_draw_tinted_bitmap_region"><span class="a">al_draw_tinted_bitmap_region</span></a>                  <span class="k2">(</span> bmp, tint, sx, sy, sw, sh, dx, dy, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>al_draw_scaled_bitmap_region                  <span class="k2">(</span> bmp, sx, sy, sw, sh, dx, dy, xscale, yscale, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>al_draw_stretched_bitmap_region               <span class="k2">(</span> bmp, sx, sy, sw, sh, dx, dy, dw, dh, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>al_draw_rotated_bitmap_region                 <span class="k2">(</span> bmp, sx, sy, sw, sh, cx, cy, dx, dy, angle, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>al_draw_tinted_scaled_bitmap_region           <span class="k2">(</span> bmp, tint, sx, sy, sw, sh, dx, dy, xscale, yscale, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>al_draw_tinted_stretched_bitmap_region        <span class="k2">(</span> bmp, tint, sx, sy, sw, sh, dx, dy, dw, dh, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>al_draw_tinted_rotated_bitmap_region          <span class="k2">(</span> bmp, tint, sx, sy, sw, sh, cx, cy, dx, dy, angle, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>al_draw_scaled_rotated_bitmap_region          <span class="k2">(</span> bmp, sx, sy, sw, sh, cx, cy, dx, dy, xscale, yscale, angle, flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>al_draw_stretched_rotated_bitmap_region       <span class="k2">(</span> bmp, sx, sy, sw, sh, cx, cy, dx, dy, dw, dh, angle, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>al_draw_tinted_scaled_rotated_bitmap_region   <span class="k2">(</span> bmp, tint, sx, sy, sw, sh, cx, cy, dx, dy, xscale, yscale, angle, flags<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>al_draw_tinted_stretched_rotated_bitmap_region<span class="k2">(</span> bmp, tint, sx, sy, sw, sh, cx, cy, dx, dy, dw, dh, angle, flags <span class="k2">)</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Izual)</author>
		<pubDate>Sat, 23 Feb 2019 15:34:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Okay, let me try to explain my naming scheme :</p><p>It goes like this (if it were C++, these would be the functions names, but since C doesn&#39;t allow function overloading this will have to do);</p><p>al_draw_bitmap<br />al_draw_bitmap_region</p><p>Which makes the first parameters the bmp , and then source and destination. After that you have either stretched, scaled, tinted, or rotated. Any version that is stretched or scaled should be the next part of the function name.</p><p>_stretched<br />_scaled</p><p>This makes the next parameter either the destination width and height, or the scale factor for x and y. This parameter is optional, and then the next ones are _tinted, _rotated, and _tinted_rotated in that order. And then the flags come last.</p><p>So it is :</p><p>al_draw_bitmap[_region][_stretched | _scaled] | [_tinted | _rotated | _tinted_rotated]</p><p>I think that&#39;s pretty easy to do, but you&#39;d have to ask others for their opinion on this, I&#39;m not a developer, but I can help you.</p><p>And in the end, there should basically only be one function that every one of those function calls. draw_bitmap should call draw_bitmap_region.</p><p>Or if performance is a concern I guess you have to write every single function. But I would try to avoid that.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 24 Feb 2019 05:17:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>#include &lt;std_disclaimer.h&gt;</p><p>Side question: Do... you actually need GIF support?</p><p>I mean, yeah yeah, lots of people on forums say that and they&#39;re often wrong and need to just STFU and answer the question... </p><p>But, </p><p>High-level question: <i>do</i> you really need GIF support? Are you using it for animations? Could you implement animations a different way? Because the only real use-case I can think of for GIF in &gt;2010 is for an image editor or conversion tool and the thing is... Allegro is a bad candidate for that because Allegro is designed for games--not tools. It fails on all kinds of edge cases of images that if you were simply making a game, you&#39;d already have complete control of file formats and just use a different file format, or the same format, but with a different internal header that works. That is, is Allegro fails on some variation of BMP/GIF/PNG, you simply convert all your files to be a workable format.</p><p>PNG is basically the only file format anyone uses anymore. Even BMP&#39;s are fat, and, may even be slower than PNG because compression increases the speed you can suck them from the hard drive while modern CPUs can easily run decompression. (That&#39;s the entire premise for NTFS compression, btw. And we&#39;ve been using it since... the 2000&#39;s. Hard drives are slower than CPUs, so make the files smaller and decompress them once they hit the CPU.)</p><p>So I&#39;m not sure if I&#39;m illustrating my point effectively but if this is a game, you should be able to control your file formats and GIF doesn&#39;t add any features that other, better, formats don&#39;t already have. Except animation... for which I really wish APNG (animated PNG) would become a wildly accepted format. But for a game, there&#39;s almost zero situations (that I can think of) where you&#39;d want to intentionally use the GIF format.</p><p>But if it&#39;s a tool (I&#39;m speaking from experience here!) Allegro is going to bite you in the butt in strange places. Like loading BMP&#39;s which can have tons of different header styles and Allegro fails on some of them--even ones that GIMP outputs. Even if it&#39;s just one type, end-users aren&#39;t going to appreciate &quot;It&#39;s not in my control, it&#39;s Allegro&#39;s fault.&quot; when your tool can&#39;t load every image on their computer. They just need it to work. And in that case, you should use a dedicated image loading library. Because Allegro is focused on making games, not making every edge-case image format work--unlike an image library.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Sun, 24 Feb 2019 09:44:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Beautiful post I&#39;m not sure it belongs in this thread though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 24 Feb 2019 17:06:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok. <a href="https://www.allegro.cc/files/attachment/611922">Here it is.</a></p><p>This is how the function names and parameter list looks like:</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="c">// function name,                      ( bmp, cx, cy, dx, dy, dw, dh, xscale, yscale, angle, tint, flags );</span>
<span class="number">  2</span>al_draw_bitmap_scaled                  <span class="k2">(</span> bmp,         dx, dy,         xscale, yscale,              flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span>al_draw_bitmap_stretched               <span class="k2">(</span> bmp,         dx, dy, dw, dh,                              flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>al_draw_bitmap_rotated                 <span class="k2">(</span> bmp, cx, cy, dx, dy,                         angle,       flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>al_draw_bitmap_tinted                  <span class="k2">(</span> bmp,         dx, dy,                                tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>al_draw_bitmap_scaled_rotated          <span class="k2">(</span> bmp, cx, cy, dx, dy,         xscale, yscale, angle,       flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>al_draw_bitmap_stretched_rotated       <span class="k2">(</span> bmp, cx, cy, dx, dy, dw, dh,                 angle,       flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>al_draw_bitmap_scaled_tinted           <span class="k2">(</span> bmp,         dx, dy,         xscale, yscale,        tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>al_draw_bitmap_stretched_tinted        <span class="k2">(</span> bmp,         dx, dy, dw, dh,                        tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>al_draw_bitmap_rotated_tinted          <span class="k2">(</span> bmp, cx, cy, dx, dy,                         angle, tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>al_draw_bitmap_scaled_rotated_tinted   <span class="k2">(</span> bmp, cx, cy, dx, dy,         xscale, yscale, angle, tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>al_draw_bitmap_stretched_rotated_tinted<span class="k2">(</span> bmp, cx, cy, dx, dy, dw, dh,                 angle, tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span><span class="c">// function name,                             ( bmp, sx, sy, sw, sh, cx, cy, dx, dy, dw, dh, xscale, yscale, angle, tint, flags );</span>
<span class="number"> 15</span>al_draw_bitmap_region_scaled                  <span class="k2">(</span> bmp, sx, sy, sw, sh,         dx, dy,         xscale, yscale,              flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>al_draw_bitmap_region_stretched               <span class="k2">(</span> bmp, sx, sy, sw, sh,         dx, dy, dw, dh,                              flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>al_draw_bitmap_region_rotated                 <span class="k2">(</span> bmp, sx, sy, sw, sh, cx, cy, dx, dy,                         angle,       flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>al_draw_bitmap_region_tinted                  <span class="k2">(</span> bmp, sx, sy, sw, sh,         dx, dy,                                tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>al_draw_bitmap_region_scaled_rotated          <span class="k2">(</span> bmp, sx, sy, sw, sh, cx, cy, dx, dy,         xscale, yscale, angle,       flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>al_draw_bitmap_region_stretched_rotated       <span class="k2">(</span> bmp, sx, sy, sw, sh, cx, cy, dx, dy, dw, dh,                 angle,       flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>al_draw_bitmap_region_scaled_tinted           <span class="k2">(</span> bmp, sx, sy, sw, sh,         dx, dy,         xscale, yscale,        tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>al_draw_bitmap_region_stretched_tinted        <span class="k2">(</span> bmp, sx, sy, sw, sh,         dx, dy, dw, dh,                        tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>al_draw_bitmap_region_rotated_tinted          <span class="k2">(</span> bmp, sx, sy, sw, sh, cx, cy, dx, dy,                         angle, tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>al_draw_bitmap_region_scaled_rotated_tinted   <span class="k2">(</span> bmp, sx, sy, sw, sh, cx, cy, dx, dy,         xscale, yscale, angle, tint, flags <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>al_draw_bitmap_region_stretched_rotated_tinted<span class="k2">(</span> bmp, sx, sy, sw, sh, cx, cy, dx, dy, dw, dh,                 angle, tint, flags <span class="k2">)</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Izual)</author>
		<pubDate>Sun, 24 Feb 2019 23:15:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>There are always trade-offs when adding new API. On one hand, you add new functionality that was not easy or possible before. On the other hand, you add complexity that makes it more difficult to learn and use it. Only when the first outweighs the second does should we consider adding it. I don&#39;t think it does in the case of this change.</p><p>Allegro already has 11 ways to draw a bitmap. This patch adds 11 more ways (or 22, since you&#39;re coming up with new names). That&#39;s up to 33 ways to draw a bitmap. What new functionality do you gain from this? It would appear that you&#39;re saving a person from occasionally writing <span class="source-code">dw <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>bmp<span class="k2">)</span></span> or <span class="source-code">xscale <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>bmp<span class="k2">)</span></span> if their requirements are mismatched with what Allegro expects. But, in return, you now need to know the difference between <span class="source-code">scaled</span> and <span class="source-code">stretched</span>; you need to understand exactly what it means for <span class="source-code">dw</span> to be specified when <span class="source-code">angle</span> is e.g. <span class="source-code">PI<span class="k3">/</span><span class="n">3</span></span> (it clearly doesn&#39;t actually correspond to the destination width). And, of course, you need to spend time thinking about which variant to use given what values you have.</p><p>Is Allegro&#39;s current bitmap drawing API perfect? No; I for sure can appreciate the oddity of having <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> and <span class="source-code"><a href="http://www.allegro.cc/manual/al_draw_scaled_rotated_bitmap"><span class="a">al_draw_scaled_rotated_bitmap</span></a></span> taking different methods of scaling. And why does <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> need to know the source width and height?</p><p>I actually know the reason why. It&#39;s because this is <i>Allegro</i> 5, and it just copied <a href="https://liballeg.org/stabledocs/en/alleg014.html">Allegro 4&#39;s API</a> with a few renames. People often say that Allegro 5 is completely different than Allegro 4, but this is one of the places where the resemblance is clear. Maybe it should have done something different, but at this point it&#39;s 8 years too late.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Mon, 25 Feb 2019 05:29:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>8 years too late but never a day too soon to fix old mistakes. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>Izual,</p><p>That&#39;s closer to what I had in mind, but there&#39;s an important problem. cx and cy should not be the second parameter in draw bitmap or the fifth in draw bitmap region. It should come after dw,dh.</p><p>So that you always have 
</p><div class="source-code snippet"><div class="inner"><pre>al_draw_bitmap_X<span class="k2">(</span>bmp , dx , dy , ...<span class="k2">)</span>
al_draw_bitmap_scaled_X<span class="k2">(</span>bmp , dx , dy , dw , dh , ...<span class="k2">)</span>
</pre></div></div><p>
and
</p><div class="source-code snippet"><div class="inner"><pre>al_draw_bitmap_region_X<span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , ...<span class="k2">)</span>
al_draw_bitmap_region_scaled_X<span class="k2">(</span>bmp , sx , sy , sw , sh , dx , dy , dw , dh , ...<span class="k2">)</span>
</pre></div></div><p>

Also, I have a question, are cx and cy pivot points in the source bitmap?</p><p>SiegeLord - the destination width and height would be assumed to be pre-rotation.</p><p>stretched vs scaled is obvious in their naming. Scaling uses factors and stretching involves dimensions.</p><p>Consistency is key. And with autocomplete these days you can type al_draw and then select which one you want and it will give you the parameters.</p><p>Anyway, this could all be hidden under ALLEGRO_UNSTABLE. And we could easily deprecate the old style drawing functions and have them forward themselves to the new ones. It could all happen rather painlessly. The only thing that would change is that you would get deprecation warnings when defining ALLEGRO_UNSTABLE.</p><p>My 2¢ <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 25 Feb 2019 18:13:02 +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/617749/1041424#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>
Beautiful post I&#39;m not sure it belongs in this thread though.
</p></div></div><p>
lulul I&#39;m embarassed. Don&#39;t post at 3 am folks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Mon, 25 Feb 2019 20:26:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>@Edgar<br />Yes. cx,cy is a point on the source bitmap. This point is drawn at the dx,dy position and the bitmap is rotated around this point.<br />That is why i placed it together with the parameters that deal with the source bitmap. It seemed logical to me.</p><p>@SiegeLord<br />Thank you for your answear and stating the reasons. Just wanted to add a little bit to allready a great library.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Izual)</author>
		<pubDate>Mon, 25 Feb 2019 21:51:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>With the availability of transforms, similar code can be easily written, but at the expense of a great deal of verbosity ;</p><p>The question is, do we want 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><a href="http://www.allegro.cc/manual/ALLEGRO_STATE"><span class="a">ALLEGRO_STATE</span></a> s<span class="k2">;</span>
<span class="number">  2</span><a href="http://www.allegro.cc/manual/al_store_state"><span class="a">al_store_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>s , ALLEGRO_BLENDER<span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span><a href="http://www.allegro.cc/manual/al_set_blender"><span class="a">al_set_blender</span></a><span class="k2">(</span>ALLEGRO_ADD, ALLEGRO_CONST_COLOR, ALLEGRO_ONE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>al_set_blend_color<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">96</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">/* nice Chrysler blue */</span>
<span class="number">  5</span>
<span class="number">  6</span><a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> t,old<span class="k2">;</span>
<span class="number">  7</span>t <span class="k3">=</span> old <span class="k3">=</span> <span class="k3">*</span><a href="http://www.allegro.cc/manual/al_get_current_transform"><span class="a">al_get_current_transform</span></a><span class="k2">;</span>
<span class="number">  8</span><a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>t , <span class="k3">-</span>cx , <span class="k3">-</span>cy<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span><a href="http://www.allegro.cc/manual/al_scale_transform"><span class="a">al_scale_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>t , <span class="n">2</span> , <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span><a href="http://www.allegro.cc/manual/al_rotate_transform"><span class="a">al_rotate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>t , M_PI<span class="k3">/</span><span class="n">2</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span><a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>t , cx , cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span><a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>t<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span><a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>bmp , <span class="n">0</span> , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span><a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>old<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span><a href="http://www.allegro.cc/manual/al_restore_state"><span class="a">al_restore_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>s<span class="k2">)</span><span class="k2">;</span>
</div></div><p>

Or do we want this :
</p><div class="source-code snippet"><div class="inner"><pre>al_draw_bitmap_scaled_tinted_rotated<span class="k2">(</span>bmp , cx , cy , scalex , scaley , <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">96</span>,<span class="n">255</span><span class="k2">)</span> , M_PI<span class="k3">/</span><span class="n">2</span>.<span class="n">0</span> , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

The choice seems clear.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 25 Feb 2019 22:24:36 +0000</pubDate>
	</item>
</rss>
