| 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). |