Group commit for recovery after disk crash.
[wine/multimedia.git] / documentation / status / direct3D
blob308889cc0eec2859e7275fbcc8c381a90fff346f
1 Introduction
2 ------------
4 This file contains information about Wine's implementation of
5 Direct3D. 
7 The current version requires :
8  * Mesa (tested with version 3.1 beta)
9  * a display in 16bpp
11 To minimize the impact on DirectDraw (i.e. to reuse most of the code
12 already done for DirectDraw), I decided not to start with an
13 implementation based on GLX, but on OSMesa. This way, all the OpenGL
14 rendering are done in a 'private' memory buffer, buffer that will
15 copied back to the DirectDraw Surface each time a 3D scene
16 finishes. It is not optimal for execution speed (on each frame, the
17 OpenGL buffer is converted from 32 to 16 bpp and copied onto the
18 screen) but is for development (I had almost nothing to change in
19 DirectDraw). Moreover, 99 % of the code in the Direct3D implementation
20 is 'device independant' (i.e. GLX / OSMesa / whatever), so that
21 changing to GLX will have only a minor impact on Direct3D's code.
23 Code structure
24 --------------
26 TODO (well, once the code will be put in the dll/ddraw directory)
28 Status
29 ------
31 Some programs with which I tested the code :
33  * BOIDS.EXE (DX5.0) that comes with the 5.2 DirectX SDK : works
34    great. Only thing missing is the texturing and transparency on the
35    spinning gobes. Lighting seems to be a bit different than the Real
36    One.
38  * Tomb Raider II (DX5.0) : works perfectly (but slowly). All the
39    calls needed to make TR2 work have been written.
41  * Jedi Knight (DX3.0) : does not start
43  * Shadow of the Empire demo (DX3.0) : runs but does not display
44    anything
46 TODO
47 ----
48  * finish working on Execute Buffers (i.e. Direct3D 3.0)
49  * real GLX implementation (will need a complete rewrite of DirectDraw
50    also) to have 3DFx support
51  * restructuration of all the DDRAW.DLL (put that in the dll
52    directory, better separation of 'drivers, ...)
53  * start looking into DirectX 6.0
54  * inquire on Mesa / XFree86 mailing lists about direct access to 
55    display hardware (for games such as Tomb Raider II that displays 
56    vertices that are already in screen coordinates)
57  * look into thread safeness...
59 -- 
60 Lionel Ulmer - ulmer@directprovider.net
61 Last updated : Sun Jan 10 1999