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