56 lines
2.0 KiB
Plaintext
56 lines
2.0 KiB
Plaintext
![]() |
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
|