| Introduction |
| ------------ |
| |
| This file contains information about Wine's implementation of |
| Direct3D. |
| |
| The current version requires : |
| * Mesa (tested with version 3.1 beta) |
| * a display in 16bpp |
| |
| To minimize the impact on DirectDraw (i.e. to reuse most of the code |
| already done for DirectDraw), I decided not to start with an |
| implementation based on GLX, but on OSMesa. This way, all the OpenGL |
| rendering are done in a 'private' memory buffer, buffer that will |
| copied back to the DirectDraw Surface each time a 3D scene |
| finishes. It is not optimal for execution speed (on each frame, the |
| OpenGL buffer is converted from 32 to 16 bpp and copied onto the |
| screen) but is for development (I had almost nothing to change in |
| DirectDraw). Moreover, 99 % of the code in the Direct3D implementation |
| is 'device independant' (i.e. GLX / OSMesa / whatever), so that |
| changing to GLX will have only a minor impact on Direct3D's code. |
| |
| Code structure |
| -------------- |
| |
| TODO (well, once the code will be put in the dll/ddraw directory) |
| |
| Status |
| ------ |
| |
| I tested this code with two programs (all using Direct3D 5.0) : |
| |
| * BOIDS.EXE that comes with the 5.2 DirectX SDK : works great. Only |
| thing missing is the texturing and transparency on the spinning |
| gobes. Lighting seems to be a bit different than the Real One. |
| |
| * Tomb Raider II : works quite well (without texturing). |
| |
| TODO |
| ---- |
| * finish working on Execute Buffers (i.e. Direct3D 3.0) |
| * texture mapping / blending effects |
| * real GLX implementation (will need a complete rewrite of DirectDraw |
| also) to have 3DFx support |
| * restructuration of all the DDRAW.DLL (put that in the dll |
| directory, better separation of 'drivers, ...) |
| * start looking into DirectX 6.0 |
| * inquire on Mesa / XFree86 mailing lists about direct access to |
| display hardware (for games such as Tomb Raider II that displays |
| vertices that are already in screen coordinates) |
| * look into thread safeness... |
| |
| -- |
| Lionel Ulmer - ulmer@directprovider.net |
| Last updated : Sun Jan 03 1999 |