MacOSX/QuartzDriver

Quartzdrv is a Mac OS X graphic driver for Wine which intends to replace the x11drv on Mac OS X to provide better integration of Wine in Mac OS X. If you are interested in working on it please contact Steven Edwards (winehacker@gmail.com) for write access to the git branch where it is currently being hosted.

It is being developed outside of the main WineHQ repository due to the detrimental impact introduction would currently make on the stock WineHQ build. There are many changes in the Graphics driver design that need to be implemented in Wine to more cleanly separate the driver model from the USER and GDI components. Until this effort is completed, the Wine maintainer will not accept Quartzdrv patches. Also if at all possible he would like to avoid the use of Objective-C in Wine code. The first incarnation of the Quartzdrv makes extensive use of Objective-C so may need to be rewritten.

Status

How to install

=== Pending Patches

=== Rejected Patches ====

TODO

The whole driver needs a lot of work/fixes/enhancements ...

  • Font support (using CoreGraphics or ATS functions) :

  • adding GDI font support (Mac OSX already supports windows ttf fonts) - this one is questionable/not clear: GDI already supports TrueType and bitmap fonts via FreeType, and that doesn't require a lot of additional support on the driver's side.

  • Fixing DIB section support
  • Palette support (color support is minimal: 1 or 32 bpp)
  • Windows handling / Desktop support
  • ScrollDC
  • Fix rendering bugs
  • ...

Testing

  • set the [HKEY_CURRENT_USER\Software\Wine\Drivers] key of the registry to add the string val "Graphics" set to "quartz" using regedit with the GUI, or do it "by hand":

 $ printf "[HKEY_CURRENT_USER\Software\Wine\Drivers]\n\"Graphics\"=\"quartz\"" > quartzdrv.reg
 $ regedit quartzdrv.reg
  • test with quartzdrv

 $ winemine
  • to revert to the x11drv:

 $ printf "[HKEY_CURRENT_USER\Software\Wine\Drivers]\n\"Graphics\"=\"x11\"" > x11drv.reg
 $ regedit x11drv.reg

Old Information

This section will be removed.

 $ cvs -z3 -d:pserver:anonymous:@darwine.cvs.sourceforge.net:/cvsroot/darwine co -P drivers
  • copy the quartzdrv to the wine sources.

 $ cp -r ~/drivers/dlls/quartzdrv ~/wine/dlls/winequartz.drv
  • (don't forget to rename directory to winequartz.drv)
  • add it to the build system

 $ cd ~/wine
 $ patch -p0 < ~/drivers/add_winequartz.drv_to_the_build_system.diff
  • reset the build system and build.

 $ autoconf && ./configure && make && make install
  • add fake Menu and Info.plist

 $ cp ~/drivers/dlls/app_hack/Info.plist /Applications/Darwine/Wine.bundle/Contents/bin/
 $ cp -r ~/drivers/dlls/app_hack/MainMenu.nib /Applications/Darwine/Wine.bundle/Contents/bin/

MacOSX/QuartzDriver (last edited 2008-02-24 09:28:20 by DmitryTimoshkov)