<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Alllegro 4.2.0 beta 3 has been released!</title>
		<link>http://www.allegro.cc/forums/view/490130</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 17 May 2005 01:27:25 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Allegro 4.2.0 beta 3 is ready and has been released. This is a beta release for Allegro 4.2.0 that adds features and corrects problems with regard to the 4.0 codebase. It is<br />API (source) compatible with 4.0.0 on every platform, except for a few minor changes (see docs/html/api.html).<br />Get it from <a href="http://sourceforge.net/project/shownotes.php?release_id=327344">the download page on sourceforge.</a>
</p><div class="quote_container"><div class="title">CHANGES said:</div><div class="quote"><p>==============================================================================<br />============ Changes from 4.2.0 beta 2 to 4.2.0 beta 3 (May 2005) ============<br />==============================================================================</p><p>   Grzegorz Adam Hankiewicz did several documenation update.</p><p>   Evert Glebbeek cleaned up some of the global namespace pollution in the <br />   Windows port.</p><p>   Chris Robinson made improvements to the Windows sound driver.</p><p>   Chris Robinson made the GUI multi-selection box behave a bit nicer.</p><p>   Grzegorz Adam Hankiewicz added a bunch of ASSERTs to the code to check for<br />   out-of-range arguments.</p><p>   Jakub Wasilewski fixed a bug when loading greyscale TGA images</p><p>   Evert Glebbeek fixed a bug where the bottom and right line of pixels was <br />   not updated on show_video_bitmap, as pointed out by Thomas Harte.</p><p>   Evert Glebbeek documented JOY_TYPE_* defines for Windows and Linux.</p><p>   Peter Wang made some cosmetic changes to some of the examples.</p><p>   Dark Nation restored the ability to read old-style encrypted packfiles, <br />   i.e. those produced before Allegro 3.9.30.  This was silently removed<br />   from 4.1.18 when custom packfile support / decoupled compression routines <br />   were added.</p><p>   Peter Wang added acomment describing the evdev mouse driver in allegro.cfg.</p><p>   Evert Glebbeek made the grabber and dat utilities now use Allegro&#39;s buildin <br />   load_font() function and made datafiles properly store truecolour fonts and<br />   added a datedit_select() callback to datedit.</p><p>   Evert Glebbeek fixed some unsafe assumptions on the size of integer datatypes.</p><p>   Arthur Huillet fixed a typo in the docs.</p><p>   Elias Pschernig restored Alt+key = ASCII code 0 behavior for the windows <br />   keyboard driver</p><p>   Evert Glebbeek fixed a bug that caused a crash when loading Allegro 1.x <br />   datafiles containing 4 bit bitmaps.</p><p>   Peter Wang clarified the mode select documentation and made the mode <br />   selector clear the input variables before passing them on to the filter.</p><p>   Peter Wang fixed a bug in the mode selector where disabled drivers were <br />   still shown with empty resolution lists. Pointed out by Hrvoje Ban.</p><p>   Elias Pschernig fixed Allegro&#39;s internal multithreading in Windows. This<br />   fixes a deadlock on exit.</p><p>   Robert Alfonso made the MSVC makefile call `link /lib&#39; rather than `lib&#39;,<br />   which doesn&#39;t work for the free toolkit.</p><p>   Peter Hull fixed a problem with hardware cursors not working properly in <br />   MacOS X.</p><p>   Peter Hull added a missing enable_hardware_cursor vtable entry and added OS <br />   native cursors for the MacOS X port.</p><p>   Grzegorz Adam Hankiewicz documented online Allegro patch generator.</p><p>   Evert Glebbeek renamed datafiles._tx -&gt; datafile._tx</p><p>   StApostol updated the FAQ to use rest(0) instead of the deprecated yield_timeslice().</p><p>   Evert Glebbeek silenced some GCC4 warnings in MacOS X.</p><p>   Peter Wang fixed warnings and errors with gcc 4.0.0 on the unix port; <br />   reported by Milan Mimica.</p><p>   Peter Wang added preprocessor symbol ALLEGRO_NO_FIX_CLASS that the user can <br />   define to not pull in the `fix&#39; class in C++ programs.</p><p>   Peter Wang removed the exdodgy example.</p><p>   Elias Pschernig fixed another X11 async reply.</p><p>   Elias Pschernig made the seek in expackf test work with windows line endings.</p><p>   Elias Pschernig removed some superfluous variables</p><p>   Evert Glebbeek fixed a small bug that prevented the Allegro template for <br />   Project Builder from installing correctly on MacOSX</p><p>   Elias Pschernig enabled warnings about unused variables with<br />   --enable-strictwarn in unix.</p><p>   Peter Wang fixed a warning with Watcom 1.3
</p></div></div><p>

This release fixes problems in the previous beta, which was announced in this thread. Please download and test the new release, especially if you had problems with that last beta, and let us know if there are problems. Do not hesitate to report problems even if they have been reported before! Please provide an example programme that demonstrates the problem and if possible help to locate and fix the problem. You can report bugs on the <a href="http://www.allegro.cc/forums/list_threads.php?_id=1">forums</a>, but it would be preferable if you post the problem on <a href="http://alleg.sourceforge.net/maillist.html#AD">the mailing list</a> or <a href="http://sourceforge.net/tracker/?atid=105665&amp;group_id=5665&amp;func=browse">the tracker.</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sat, 14 May 2005 23:50:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Allegro 4.2.0 beta 2 is ready and has been released.</p></div></div><p>
Old news <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><pre>make: *** Warning: File `obj/mingw32/alleg/makefile.dep&#39; has modification time i
n the future (2005-05-14 20:00:34 &gt; 2005-05-14 16:08:46)</pre><p>
Ah, great, now I will have to wait 4 hours! <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>Now, where I had left my touch...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Sun, 15 May 2005 00:01:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Now, where I had left my touch...</p></div></div><p>
Yeah, I&#39;ll wait about 24 hours when 4.2 stable comes out before I announce it. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 15 May 2005 00:04:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This wasn&#39;t fixed:</p><pre>
gcc -DALLEGRO_LIB_BUILD -Wall -Wno-unused -mcpu=i586 -O2 -funroll-loops -ffast-m
ath  -fomit-frame-pointer -I. -I./include -o obj/mingw32/alleg/grabber.o -c tool
s/grabber.c
tools/grabber.c: In function `datedit_ask&#39;:
tools/grabber.c:3501: warning: implicit declaration of function `vsnprintf&#39;
obj/mingw32/runner.exe gcc -s  -Wl,--subsystem,windows -o tools/grabber.exe obj/
mingw32/alleg/grabber.o lib/mingw32/libaldat.a lib/mingw32/liballeg.a -lkernel32
 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound
obj/mingw32/alleg/grabber.o(.text+0x731e):grabber.c: undefined reference to `vsn
printf&#39;
obj/mingw32/alleg/grabber.o(.text+0x7667):grabber.c: undefined reference to `vsn
printf&#39;
make[1]: *** [tools/grabber.exe] Error 1
make[1]: Leaving directory `D:/Compiler/Source/C/allegro-4.2.0b3&#39;
make: *** [all] Error 2
</pre><p>

My ancient MinGW GCC 2.95.3-6.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Sun, 15 May 2005 00:13:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>This wasn&#39;t fixed:</p></div></div><p>
Aaaaaaaaaaaaaaaaaaaargh!<br />Actually, I did take some time to fix those. It would seem that I missed a few though. <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /> <b>sigh</b> Fixed in CVS...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 15 May 2005 00:15:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The released version worked fine with 3.2.3. Now got this problem again in Open Watcom 1.3:</p><pre>wcl386 -w1 -zq -fr=nul -bt=dos4g -5s -s -I. -I.\\include -fo=obj\\watcom\\asmdef
.obj -fe=obj\\watcom\\asmdef.exe src\\i386\\asmdef.c
Stub exec failed:
D:\Compiler\Watcom\binw\dos4gw.exe
Arg list too big
Error: Compiler returned a bad status compiling &#39;src\i386\ASMDEF.C&#39;make[1]: ***
[obj/watcom/asmdef.exe] Error 1
make[1]: Leaving directory `D:/Compiler/Source/C/allegro-4.2.0b3&#39;
make: *** [all] Error 2</pre><p>

(<b>Edited</b>: After compiling the file by hand, it continued up to:</p><pre>obj/watcom/runner.exe wcc386 \\ tools/grabber.c @ -w1 -bt=dos4g -5s -ox -zq -fr=
nul -I. -I./include -fo=obj/watcom/alleg/grabber.obj
DOS/4GW Protected Mode Run-time  Version 1.97
Copyright (c) Rational Systems, Inc. 1990-1994
tools\grabber.c(3529): Error! E1054: Expression must be constant
make[1]: *** [obj/watcom/alleg/grabber.obj] Error 1
make[1]: Leaving directory `D:/Compiler/Source/C/ALLEGR~1.0B3&#39;
make: *** [all] Error 2</pre><p>

</p><div class="quote_container"><div class="title">Watcom  said:</div><div class="quote"><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> datedit_select<span class="k2">(</span>AL_CONST <span class="k1">char</span> <span class="k3">*</span><span class="k2">(</span><span class="k3">*</span>list_getter<span class="k2">)</span><span class="k2">(</span><span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a>, <span class="k1">int</span> <span class="k3">*</span>list_size<span class="k2">)</span>, AL_CONST <span class="k1">char</span> <span class="k3">*</span>fmt, ...<span class="k2">)</span>
<span class="k2">{</span>
   <a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> datedit_select_dlg<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
      <span class="c">/* (dialog proc)     (x)   (y)   (w)   (h)   (fg)  (bg)  (key)    (flags)     (d1)           (d2)     (dp)                 (dp2) (dp3) */</span>
      <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_shadow_box_proc" target="_blank"><span class="a">d_shadow_box_proc</span></a>, <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">224</span>,  <span class="n">113</span>,  <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">0</span>,       <span class="n">0</span>,          <span class="n">0</span>,             <span class="n">0</span>,       NULL,                NULL, NULL  <span class="k2">}</span>,
      <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_ctext_proc" target="_blank"><span class="a">d_ctext_proc</span></a>,      <span class="n">0</span>,    <span class="n">2</span>,    <span class="n">220</span>,  <span class="n">15</span>,   <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">0</span>,       <span class="n">0</span>,          <span class="n">0</span>,             <span class="n">0</span>,       NULL,                NULL, NULL  <span class="k2">}</span>,

      <span class="c">/*  the error is in this line, it does not like to initialize the  */</span>
      <span class="c">/*  dialog with an argument of the function  */</span>
      <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_list_proc" target="_blank"><span class="a">d_list_proc</span></a>,       <span class="n">28</span>,   <span class="n">24</span>,   <span class="n">161</span>,  <span class="n">50</span>,   <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">0</span>,       <span class="n">0</span>,          <span class="n">0</span>,             <span class="n">0</span>,       list_getter,         NULL, NULL  <span class="k2">}</span>,
      <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_button_proc" target="_blank"><span class="a">d_button_proc</span></a>,     <span class="n">16</span>,   <span class="n">80</span>,   <span class="n">81</span>,   <span class="n">17</span>,   <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">13</span>,      D_EXIT,     <span class="n">0</span>,             <span class="n">0</span>,       <span class="s">"OK"</span>,                NULL, NULL  <span class="k2">}</span>, 
      <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_button_proc" target="_blank"><span class="a">d_button_proc</span></a>,     <span class="n">127</span>,  <span class="n">80</span>,   <span class="n">81</span>,   <span class="n">17</span>,   <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">27</span>,      D_EXIT,     <span class="n">0</span>,             <span class="n">0</span>,       <span class="s">"Cancel"</span>,            NULL, NULL  <span class="k2">}</span>, 
      <span class="k2">{</span> NULL,              <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">0</span>,       <span class="n">0</span>,          <span class="n">0</span>,             <span class="n">0</span>,       NULL,                NULL, NULL  <span class="k2">}</span>
   <span class="k2">}</span><span class="k2">;</span>
</pre></div></div></div></div><p>

(<b>Edited 2</b>: The Windows version compiled fine).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Sun, 15 May 2005 00:39:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What&#39;s with the <a href="http://www.allegro.cc/forums/search.php?search=a76457b1256ef46cf8d27dc9aa94381e">Sticky L key</a>?</p><p>Pete
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Sun, 15 May 2005 00:49:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>PH: I typed All and then picked the announcement headline from the list of earlier-typed options as a base. I&#39;ll try to remember paying closer attention next time.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 15 May 2005 01:03:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Isn&#39;t that the second time you do that? <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
 Evert Glebbeek fixed a bug that caused a crash when loading Allegro 1.x<br />datafiles containing 4 bit bitmaps.
</p></div></div><p>
Wow! <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /> What took you so long? <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> Anyway, it&#39;s nice to see that we are keeping backwards compatability.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ron Ofir)</author>
		<pubDate>Sun, 15 May 2005 01:39:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Peter Wang removed the exdodgy example.</p></div></div><p>
Thats all needed to get in to the credits:o. I think I&#39;ll just randomly delete a file and post an update;D
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Avenger)</author>
		<pubDate>Sun, 15 May 2005 01:43:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you could make it one of the GUI or FLI related source files then I&#39;d cheer for you!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Harte)</author>
		<pubDate>Sun, 15 May 2005 01:59:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>If you could make it one of the GUI or FLI related source files then I&#39;d cheer for you!</p></div></div><p>
<img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edward Sheets)</author>
		<pubDate>Sun, 15 May 2005 02:36:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Wow! <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /> What took you so long? <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> Anyway, it&#39;s nice to see that we are keeping backwards compatability.</p></div></div><p>
Actually, I think it was recently introduced. It&#39;s a pretty pointless fix, since no one is going to run into it (unless they want to play the Allegro 1.0 demo game I posted a week or so ago), but since the loading code is there anyway, we might as well make sure it actually works.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Thats all needed to get in to the credits:o.</p></div></div><p>
It&#39;s not credits, it&#39;s changes. As for exdodgy... you really don&#39;t want to know what it tried to show you to do (it probably doesn&#39;t even work properly on non-DOS systems).</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>If you could make it one of the GUI or FLI related source files then I&#39;d cheer for you!</p></div></div><p>
Both go to the 4.2 compatibility layer in 4.3.<br />Although as I&#39;ve said before, I actually <i>use</i> both of them. Well, don&#39;t actually use the FLI player much, but I do use the GUI for displaying menus and such. I could write code to do it myself, but as Allegro already has it (and it works fine), it saves me time.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 15 May 2005 02:38:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Compiled fine on Mac OS X 10.4.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Sun, 15 May 2005 02:43:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Compiles here on WindowsXP without any trouble...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edward Sheets)</author>
		<pubDate>Sun, 15 May 2005 02:59:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
It&#39;s not credits, it&#39;s changes.
</p></div></div><p>

I do think trivial changes (spelling, adding comments, etc.) don&#39;t need mentioning.  The full CVS log is just too detailed; I used to prune it also when making releases.  Removing exdodgy was important enough to mention, though you didn&#39;t really need to credit me for that :-)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Wang)</author>
		<pubDate>Sun, 15 May 2005 08:55:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>edward Sheets;  what compiler(s)?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (A J)</author>
		<pubDate>Sun, 15 May 2005 10:46:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Compiles all versions without problems - MinGW/MSYS with GCC 3.4.2
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Hrvoje Ban)</author>
		<pubDate>Sun, 15 May 2005 11:37:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>I do think trivial changes (spelling, adding comments, etc.) don&#39;t need mentioning.</p></div></div><p>
I agree. I actually did prune a few attributions and meant to combine several others in something like `minor tweaks and updates to code and examples by such and so&#39; and combine the two GCC4 fixes into one. I must have walked away from my computer after converting the raw changelog and simply zipped up the release when I came back.<br />I&#39;m growing old <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 15 May 2005 12:14:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Still no change to <a href="http://www.allegro.cc/forums/view_thread.php?_id=488085">the way pure-C fixed point is handled</a>?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Harte)</author>
		<pubDate>Sun, 15 May 2005 15:36:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Still no change to the way pure-C fixed point is handled?</p></div></div><p>
Sorry... I&#39;d forgotten all about that patch!<br />Peter&#39;s patch actually looks fine to me, although I&#39;d like to get rid of the conditionals for the signs of the two integers (I think Bob had a trck for that on his page-of-tricks).</p><p>EDIT: found it. That would produce
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>AL_INLINE<span class="k2">(</span><a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a>, <a href="http://www.allegro.cc/manual/fixmul" target="_blank"><span class="a">fixmul</span></a>, <span class="k2">(</span><a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> x, <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> y<span class="k2">)</span>,</td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>   <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> sign <span class="k3">=</span> <span class="k2">(</span>x^y<span class="k2">)</span> <span class="k3">&amp;</span> <span class="n">0x80000000</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>   <span class="k1">int</span> mask_x <span class="k3">=</span> x <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">31</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>   <span class="k1">int</span> mask_y <span class="k3">=</span> y <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">31</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>   <span class="k1">int</span> mask_result <span class="k3">=</span> sign <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">31</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>   <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> result<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td>   x <span class="k3">=</span> <span class="k2">(</span>x^mask_x<span class="k2">)</span> <span class="k3">-</span> mask_x<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>   y <span class="k3">=</span> <span class="k2">(</span>y^mask_y<span class="k2">)</span> <span class="k3">-</span> mask_y<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>   result <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>y <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>x <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">)</span> <span class="k3">+</span></td></tr><tr><td class="number">13</td><td>             <span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>y <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>x<span class="k3">&amp;</span><span class="n">0xff</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">)</span> <span class="k3">+</span></td></tr><tr><td class="number">14</td><td>             <span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>x <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>y<span class="k3">&amp;</span><span class="n">0xff</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td>   <span class="k1">return</span> <span class="k2">(</span>result^mask_result<span class="k2">)</span> <span class="k3">-</span> mask_result<span class="k2">;</span></td></tr><tr><td class="number">17</td><td><span class="k2">}</span><span class="k2">)</span></td></tr></tbody></table></div></div><p>
(Untested). Thomas, can you check if this does what it&#39;s actually supposed to do? It depends on fixed being a 32 bit integer internally, which may not be very nice, although it&#39;s probably safe if a C99 compiler is in use.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 15 May 2005 16:14:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>(Untested). Thomas, can you check if this does what it&#39;s actually supposed to do?</p></div></div><p>
A quick test, replacing all the fmuls in my own code with that version works fine. I use fmul quite a lot for graphics calculation (the program is my fledgling entry for the Ray Casting Competition I&#39;m organising) so this gives me a lot of confidence.</p><p>EDIT: rebuild (of beta 2 because I&#39;m a bit behind - will update to beta 3 and retry but have some work to do first) seems to work fine. I have no idea which are the best tests to determine this sort of thing but everything I&#39;ve tried looks okay, including exsprite and ex3d.</p><p>Actually, there appears to be a slight mouse cursor bug in that when the mouse cursor is &#39;changed&#39; (e.g. in exmouse when it says &quot;press a key to change cursor&quot; and the user then pressed a key) it remains exactly as it was until the user moves the mouse. It strikes me this is unlikely to be fixmul related and if I find the same behaviour in beta 3 then I&#39;ll properly report it as a bug.</p><p>Spot statistic: my heavily fixed point program, compiled against the altered Allegro, is about 5-10% faster with this change.
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>It depends on fixed being a 32 bit integer internally, which may not be very nice, although it&#39;s probably safe if a C99 compiler is in use.</p></div></div><p>
Is it not also dependant on signed shifts? Anyway, if a 48 or above bit integer is in use internally then the even better solution of</p><p>(x*y) &gt;&gt; 16</p><p>is available. Perhaps it is desirable that Allegro starts checking for integer size before library building? Or is there already a #define for that sort of thing?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Harte)</author>
		<pubDate>Sun, 15 May 2005 16:56:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Thomas Harte said:</div><div class="quote"><p>is available. Perhaps it is desirable that Allegro starts checking for integer size before library building? Or is there already a #define for that sort of thing?
</p></div></div><p>
Well, Allegro uses C99 integer types provided by the system if they&#39;re available, or it defines them itself (using an `educated guess&#39; where an int is 32 bit) if they&#39;re not. This will generate a compile-time warning that Allegro is guessing for integer size. include/allegro/platform/alosxcfg.h defines HAVE_INTTYPES_H, which means that the platform defines C99 types (see include/allegro/platform/astdint.h for the fall-back solution). The fixed datatype is a typedef for int32_t, so assuming it&#39;s 32 bit should be safe.</p><p>As for checking integer sizes at compile-time, sure but the way I&#39;d do it is with a configure script, which the MacOS X port doesn&#39;t use... <b>shrugs</b> I think C99 integer types should be enough saveguard. I wouldn&#39;t be opposed to having allegro_init() check if the sizes are actually what Allegro suspects. That will make the library fail on platforms where it guesses wrongly, which is probably better than crashing (however, I suspect not many people check the return value of allegro_init(), so their programmes would still crash).</p><p>EDIT:
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Actually, there appears to be a slight mouse cursor bug in that when the mouse cursor is &#39;changed&#39; (e.g. in exmouse when it says &quot;press a key to change cursor&quot; and the user then pressed a key) it remains exactly as it was until the user moves the mouse. It strikes me this is unlikely to be fixmul related and if I find the same behaviour in beta 3 then I&#39;ll properly report it as a bug.</p></div></div><p>
Yes, that&#39;s a bug. It should be fixed in beta 3 though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 15 May 2005 17:12:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Using the latest cvs, the djgpp version is still having problems.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>gcc -s -o demo/demo.exe obj/djgpp/alleg/demo.o lib/djgpp/liballeg.a<br />lib/djgpp/liballeg.a(vbeafex.o):vbeafex.c:(.text+0x77f): undefined reference to `_int_ds&#39;<br />lib/djgpp/liballeg.a(vbeafex.o):vbeafex.c:(.text+0x79c): undefined reference to `_int_ds&#39;<br />lib/djgpp/liballeg.a(vbeafex.o):vbeafex.c:(.text+0x7a7): undefined reference to `_int_ds&#39;<br />lib/djgpp/liballeg.a(vbeafex.o):vbeafex.c:(.text+0x7ce): undefined reference to `_int_ds&#39;<br />collect2: ld returned 1 exit status<br />make.exe: *** [demo/demo.exe] Error 1</p></div></div><p>

This happens only in the optimized version, not the debug version.  On line 684 or so of vbeafex.c, int_ds is declared as a global static int.  Changing it to a non-static global seems to correct the problems above, and the optimized version builds without issue.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Robert Hightower)</author>
		<pubDate>Sun, 15 May 2005 18:08:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>WinXP, Mingw 3.4.2 both debug and release compile fine. MSVC2003 cannot build the grabber, however, due to the references to vsnprintf. I know this has been fixed in CVS, but I thought I&#39;d comment on it anyway.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Apostol)</author>
		<pubDate>Sun, 15 May 2005 18:44:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">AJ said:</div><div class="quote"><p>edward Sheets; what compiler(s)?</p></div></div><p>

gcc 3.4.2 (mingw-special) </p><p>Nice job, devs. Your work is appreciated <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edward Sheets)</author>
		<pubDate>Sun, 15 May 2005 19:55:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now something is amiss with the two last betas. Since the beta1 I&#39;ve seen a ~100 fps reduction in a program of mine (with beta3 it is ~5-10fps slower than with beta2). What&#39;s more, since beta2 both debug and release versions operate at the same speed (whereas with beta1 the release was about 80fps faster). Results show up with both msvc2003 and mingw3.4.2 on WinXP SP2. What</p><p>The scene I&#39;m using consists of a clear bitmap, two &#39;textprintf_ex&#39;s, a rotated, masked blit and key input. Is there something that&#39;s changed that could account for this slowdown? I&#39;ll make a simple demo and try to trace the slowdown, but it would help if possible causes for this where given first.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fiddler)</author>
		<pubDate>Sun, 15 May 2005 22:06:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Nothing obvious comes to mind. There were a few changes to the keyboard driver, some bugfixes to the mouse driver and some threading issues solved.</p><p>Running the code through a profiler may shed some light.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 15 May 2005 22:29:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here are a few details about compiling Allegro with the latest djgpp (with GCC 4.0) under Windows 2000 (yes, I know, don&#39;t use Windows 2000 with djgpp, but I cannot test it under plain DOS right now):</p><p>1. When compiled with WARNMODE=1, I get this warning (does not stop the processing, though):</p><pre>
gcc -fno-exceptions -DALLEGRO_LIB_BUILD -Wall -W -Wstrict-prototypes -Wno-unused
 -Werror -mtune=i586 -O2 -funroll-loops -ffast-math -fomit-frame-pointer -I. -I.
/include -o obj/djgpp/alleg/cpptest.o -c tests/cpptest.cpp
cc1plus.exe: warning: command line option &quot;-Wstrict-prototypes&quot; is valid for Ada
/C/ObjC but not for C++
</pre><p>
2. When the directory is already created, mdhelper.bat throws this error under Windows 2000 (does not stop the building): <i>Extended Error 183</i></p><p>3. Under Windows 2000, at least, the info is not installed:
</p><pre>
copy docs\info\allegro.info d:\compiler\djgpp\info
File not found - DOCS\INFO\ALLEGRO.INFO
        0 file(s) copied
</pre><p>
4. Attached the five patchs I got to get djgpp working correctly (except the -Wstrict-prototypes warning). I am not happy with the vbeafex.c patch (it is already reported in a previous post, replacing <i>static int int_ds</i> with <i>int int_ds</i>. I tried to make it local variable, but there are not a single free register to store it with <i>&quot;r&quot;</i>.</p><p>The patches should work correctly in previous DJGPP versions, since they are casts. My 2.95.3 copy is broken (asks for txi, I use <i>make all</i> and it compiles one file and stops again. I can continue using <i>make all</i> to compile the next file, but it is just too stupid to continue).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Sun, 15 May 2005 22:51:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>RB: I&#39;ve slightly modified three out of five of your patches. Revised version attached. Can you check if these still work properly and do what they&#39;re supposed to do?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Mon, 16 May 2005 18:00:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Couldn&#39;t yet test your patch, will do later when I arrive home. At work, as promised, worked on the MinGW patch. Attached it is. The most interesting patch is:</p><pre>
Index: src/win/wgdi.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/win/wgdi.c,v
retrieving revision 1.35
diff -u -r1.35 wgdi.c
--- src/win/wgdi.c	14 May 2005 15:54:52 -0000	1.35
+++ src/win/wgdi.c	16 May 2005 20:00:37 -0000
@@ -114,7 +114,6 @@
 /* hardware mouse cursor emulation */
 static int mouse_on = FALSE;
 static int mouse_was_on = FALSE;
-static BITMAP *mouse_sprite = NULL;
 static BITMAP *mouse_frontbuffer = NULL;
 static BITMAP *mouse_backbuffer = NULL;
 static int mouse_xfocus, mouse_yfocus;
</pre><p>

I am not sure if this was made on purpose, but this local variable was shadowing the global one defined in mouse.c. I removed this copy, and it worked fine. Maybe someone should compile with <i>-Wshadow</i> and check everything again?</p><p>Also, I casted the parameters to DWORD or BYTE if they were used in Win32 API functions. If you want, you can change them to unsigned long and unsigned char.</p><p>Note that this is a unofficial version of GCC 4.0 for MinGW, but I am confident solving these warnings will prepare Allegro to work flawlessly with the official branch.</p><p>(<b>Edited on 2005-05-17</b>: I tested your patch. Moving the static variable inside the function doesn&#39;t work, the compiler cannot find it. By the way, I cannot setup sound with DJGPP (no hardware detected). I hope someone can test this on a real W9x system. I will see if I can install Windows 95 on Qemu).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Tue, 17 May 2005 01:27:25 +0000</pubDate>
	</item>
</rss>
