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