[AD] Some windows stuff

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


from TODO.txt:
>  windows crash bug involving sub-bitmap locking and hardware acceleration

The problem was an incorrect pairing of _enter_gfx_critical() and
_leave_gfx_critical(), (in gfx_directx_autolock(), _leave_gfx_critical was
called twice). Hey, I have learned something from my
Operating Systems class :-)

As MSDN says:
<MSDN>
If a thread calls LeaveCriticalSection when it does not have ownership of the
specified critical section object, an error occurs that may cause another thread
using EnterCriticalSection to wait indefinitely.
</MSDN>

I have moved these functions and now it works correctly. But concurrency is a
very complex issue, so I can't be completely sure.

>  the BMP_ID_LOCKED flag should be cleared during sub-bitmap creation

Done

>  implement desktop_color_depth() in Windows

implemented through GDI. Note that it doesn't distinguish between 15 and 16
bits, but it's not a problem if you try both (DX window driver will only work
with the correct)

>  implement yield_timeslice() on Windows

implemented with Sleep(0)


Apply the patch with patch -p1 <windows.diff

Attachment: windows.zip
Description: Zip compressed data



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