1999-01-03 18:00:19 +01:00
|
|
|
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
|
|
|
|
------
|
|
|
|
|
1999-01-17 17:55:11 +01:00
|
|
|
Some programs with which I tested the code :
|
1999-01-03 18:00:19 +01:00
|
|
|
|
1999-01-17 17:55:11 +01:00
|
|
|
* 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.
|
1999-01-03 18:00:19 +01:00
|
|
|
|
1999-01-17 17:55:11 +01:00
|
|
|
* 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
|
1999-01-03 18:00:19 +01:00
|
|
|
|
|
|
|
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
|
1999-01-17 17:55:11 +01:00
|
|
|
Last updated : Sun Jan 10 1999
|