From: "Felix Nawothnig" felix.nawothnig@t-online.de
You can't have it fully on the X side, since you need direct memory
access
Direct memory access can be done using X11 SHM, no?
But then you lose network transparency.
(non-synchronized I might add) to the DIB data.
MSDN says:
Windows NT/2000/XP: You need to guarantee that the GDI subsystem has completed any drawing to a bitmap created by CreateDIBSection before you draw to the bitmap yourself. Access to the bitmap must be synchronized. Do this by calling the GdiFlush function. This applies to any use of the pointer to the bitmap bit values, including passing the pointer in calls to functions such as SetDIBits.
(and I assume they are talking to application developers, not to Wine devs... :)
Or is MSDN lying here?
This may be true for NT/2000/XP but Win 3.x/9x didn't have such a requirement, and AFAIK, a lot of apps do non-synchronized access. So they have to support it, and as such, I'm not sure that many people bother to fix their apps.
We really need a DIB engine in Wine.