Sweden-Number/documentation/status/direct3D

62 lines
2.1 KiB
Plaintext
Raw Normal View History

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
------
Some programs with which I tested the code :
* BOIDS.EXE (DX5.0) 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 (DX5.0) : works perfectly (but slowly). All the
calls needed to make TR2 work have been written.
* Jedi Knight (DX3.0) : does not start
* Shadow of the Empire demo (DX3.0) : runs but does not display
anything
TODO
----
* finish working on Execute Buffers (i.e. Direct3D 3.0)
* 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 10 1999