Graphics Driver Interface Standardization

Charles Davis cdavis at mymail.mines.edu
Tue Apr 20 15:40:52 CDT 2010


Hi,

I'm getting ready to implement the Quartz Driver. For those of you who
don't know, this is a special graphics driver that only works on Mac OS
X, and uses its native Core Graphics (aka, Quartz) system to draw.

But before I can do this, there are two things that need to be done:

1. Wine currently assumes that the current graphics driver is the X11
driver. It directly GetModuleHandle()'s winex11.drv in order to call
driver functions. This needs to be fixed.
2. The driver interface needs to be standardized.

I can fix the first problem by adding a Wine-specific export to GDI32,
then updating all the winex11 clients to call this function, but the
second problem will make writing a non-X11 driver problematic. The GDI
and USER interfaces are already somewhat standardized, but the reason
many clients call winex11.drv directly is to call the "Thread-Safe X11"
locking routines. Also, Explorer calls winex11 to create the desktop and
notification area ("systray") windows.

Therefore, I propose this interface. It's largely based off of winex11,
but with some small modifications. It's attached to this mail. What do
you think of this?

And don't tell me that we need a DIB engine before I get started on
winequartz. I intend to use Mac OS X native APIs (like Core Image) to
accelerate DIBs, in much the same way winex11 uses Xrender.

Chip
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: winegdrv.drv.spec
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20100420/6c45f863/attachment.txt>


More information about the wine-devel mailing list