[AD] New patch for BeAllegro

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


Ok, I've finally had the time to sit down and continue my work where I 
stopped a while ago...
I've added to the sourceforge page a new patch that adds the following things 
to BeAllegro:

- Variable names are now namespace compatible.
- Various windowed driver fixes: now you can switch color depth at runtime 
and the Allegro program will always work nicely. I've tried every combination 
of Allegro depth / Be depth (switching modes on the fly while the programs 
were running), but I'd like to know if you find problems again on this topic.
- Increased window drawing thread priority to realtime priority (now it looks 
MUCH smoother).
- Now scrolling and virtual resolutions are disabled in windowed mode.
- Display mode switching routines. Now BeAllegro supports -all- the Allegro 
display switch modes... More on this below.

Now some notes:

I've read the discussion about fullscreen virtual resolution and the virtual 
width problem; well, I've hacked the virtual resolution setup routine because 
it was causing BeAllegro to crash on my system (Personal Edition 5.0.3). Now 
it runs smoothly, but it seems it can't detect a region bigger than 
1024x1024... For me (I have a TNT2 PCI) the test program scrolling test works 
great and I have no problems. What do you get with it?

The mouse problem with the windowed gfx driver should be fixed; if you get 
strange behaviours, try to restart the app, as sometimes it's Be itself at 
fault, or simply move the mouse out of the program window and in again.

Ok, now about the display switching code: it supports SWITCH_PAUSE, 
SWITCH_AMNESIA, SWITCH_BACKGROUND and SWITCH_BACKAMNESIA. SWITCH_NONE 
actually works the same as SWITCH_BACKGROUND by default. At startup 
SWITCH_PAUSE is selected automatically; of course display switching only 
works if you're using the windowed gfx driver.
SWITCH_AMNESIA and SWITCH_BACKAMNESIA suspend the window drawing thread and I 
think this is good for their purpose. SWITCH_PAUSE suspends all the Allegro 
threads and does some other hacks to ensure everything stops (including 
audio: about this, I've not been able to use suspend_thread() with the sound 
thread, so I've put a dirty hack in bsndapi.cpp to make the sound to stop if 
the app is paused. If you have a better solution, let me know it!). On the 
other hand, SWITCH_BACKGROUND doesn't stop anything and your programs keep on 
running behind.

Well, that's all. Let me know!

-- 
Angelo Mottola
a.mottola@xxxxxxxxxx
ICQ UIN 66972680



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/