From: Kevin Koltzau
The solution IMO is to use a real DIB engine
Since ReactOS never had the benefit of being able to use X11 functions, we've already done a lot of work on a DIB engine. As with just about everything in ReactOS, it is not complete yet. However, often-used stuff like BitBlt is fully supported, just don't expect Bezier curves drawn with a 3 pixel wide pen using a PATPAINT rop to work.
Recently we've added a code generator which generates pretty fast code for BitBlt operations. At the moment, it only works for 16bpp destinations, but I expect to add the other depths very soon. Timing tests show that this code is significantly faster than the XP non-hardware-accellerated code.
It will take some effort to port this to Wine, since the internal datastructures used are different (we're bound by the DDK engine types like SURFOBJ). If there is interest in this from the Wine side, I'd be happy to provide assistance.
Ge van Geldorp.