Greetings,
I'm trying to understand how windows drawing gets translated into X in wine and so I was looking at the {im,ex}ports of x11drv and gdi32. x11drv depends on gdi32 and just seems to export a good chunk of the api that gdi32 exports (BitBlt etc). gdi32 doesn't depend on x11drv or even Xlib. How do native win32 apps end up calling into x11drv?
Cheers, Adam
On Fri, 25 Feb 2005 11:00:59 -0500, Adam Connell wrote:
I'm trying to understand how windows drawing gets translated into X in wine and so I was looking at the {im,ex}ports of x11drv and gdi32. x11drv depends on gdi32 and just seems to export a good chunk of the api that gdi32 exports (BitBlt etc). gdi32 doesn't depend on x11drv or even Xlib. How do native win32 apps end up calling into x11drv?
Well, the x11drv is built like a graphics driver would be in real windows. It's loaded in dlls/user/user_main.c, and then the USER and GDI driver table is filled via GetProcAddress. The USER/GDI calls then delegate to the x11drv via these function pointers when necessary.
thanks -mike