|  | This file contains information on the current implementation of the DirectDraw | 
|  | API. Information specific to Direct3D is in the direct3D file. | 
|  |  | 
|  | The DirectDraw API is being used in a lot of current computergames. Its API | 
|  | layer is represented by the functions in the Win32 DLL ddraw.dll and the | 
|  | IDirectDraw* interfaces (that can be created using the API functions). | 
|  |  | 
|  | WINE currently implements a very basic set of the DirectDraw functionality | 
|  | in graphics/ddraw.c. This implementation uses either the XFree86-DGA extension | 
|  | to get very fast access to the graphics card framebuffer and doublebuffering | 
|  | features or Xlib, which is slower. | 
|  | The implementation using XFree86-DGA is as fast as the MS equivalent for the | 
|  | stuff that is implemented. | 
|  |  | 
|  | Several applications already work, see below. | 
|  | Problems of the implementation using XFree86-DGA: | 
|  |  | 
|  | - XFree86 cannot switch depth on the fly. | 
|  | This is a problem with X and unavoidable. | 
|  | Current solution is to pop up a MessageBox with an error for | 
|  | mismatched parameters and advice the user to restart the X server | 
|  | with the specified depth. | 
|  | - The rest of the functionality that has to be implemented will have | 
|  | to be done in software and will be very slow. | 
|  | - This requires WINE to be run as root user so XF86DGA can mmap the | 
|  | framebuffer into the addressspace of the process. | 
|  | - Blocks all other X windowed applications. | 
|  |  | 
|  | Status: | 
|  | - Diablo [640x480x8]: | 
|  | No longer works. Unclear why. [WINE-990131, Marcus Meissner] | 
|  |  | 
|  | - WingCommander 4 / Win95 Patch [640x480x8]: | 
|  | The intromovie plays, in 8 bit mode (to reconfigure wc4, run wine | 
|  | "wc4w.exe -I"). The 16bit mode looks broken on Mystique, but I think | 
|  | this is due to the unusual colorweight (565 rgb) of the Mystique in 16bit | 
|  | mode. [Specifying it in DDPIXELFORMAT didn't help.] | 
|  |  | 
|  | Keyboard input does not work. This seems to be a problem with the | 
|  | cooperative window and USER input handling in general. | 
|  |  | 
|  | -> Unable to test Gameplay. | 
|  |  | 
|  | The display is slower as before. Reason is unknown, but I suspect the | 
|  | communication between winserver,dsoundmixerthread,mainthread takes | 
|  | up too much time. | 
|  |  | 
|  | [WINE-990131, Marcus Meissner] | 
|  |  | 
|  | - Monkey Island 3 [640x480x8]: | 
|  | WINE-CVS-981116: | 
|  | Works, using DGA and Xlib. (Mousecontrol is a bit off in windowed mode.) | 
|  |  | 
|  | - DiscWorld 2 [640x480x8]: | 
|  | Plays through nearly all intro movies. Sound and animation skip a lot of | 
|  | stuff (possible DirectSound asynchronization problem). | 
|  |  | 
|  | - Tomb Raider 2 Demo (using 8 bit renderer) [640x480x8]: | 
|  | I have played nearly all of the DEMO level using Keyboard Controls. | 
|  | Sound is a bit weird. Keyboard/Mouse handling too due to incomplete | 
|  | DirectInput. | 
|  |  | 
|  | - WingCommander Prophecy Demo (using software renderer) [640x480x16]: | 
|  | Plays trailer, hangs in selection screen (no keyboard input, DirectInput | 
|  | problem). |