On Tue, Apr 14, 2009 at 1:22 AM, Massimo Del Fedele max@veneto.com wrote:
The approach taken so far consisted in having 2 device pointers inside GDI32, one for dib engine and the other for normal display driver. This way had the disadvantage of having to keep in sync the DC with the right driver depending on selected bitmap, which lead to many small changes spread along all gdi code; going deeper with development this approach showed many limits and problems.
So I decided to start again from scratch with a completely different approach which is giving good results and is quite less invasive on gdi32 code. Instead of doing :
-- DIB ENGINE /
GDI32 --- \ -- X11 DRIVER
I took this approach :
GDI32 -- DIB ENGINE -- X11 DRIVER
I'm trying to understand what the problem is to make you think there needs to be a change. Are most of the problems with Blt related functions?
It is my understanding the DIB engine should actually be able to call the display driver and vice-versa. So I think we shouldn't abandon the two driver approach, just add the capability to call each other. I believe GDI on windows has infrastructure for this too.