Fwd: [Wine-d3d] d3d8 todo: updated

Raphaël Junqueira fenix at club-internet.fr
Tue Jun 10 18:33:25 CDT 2003

Hash: SHA1

Hi all,

only a little "reminder" of what is done, and what we need.
I sugest having a global todo for all directx
(dinput,dplay,dsound,dmusic,ddraw,d3d[1..9],dshow/quartz) ;)

DONE (since last TODO list)
o Performance
o Get more of the SDK samples to work with it
o Try to get a game working with it: War3, MaxPayne, UT2003, mafia, GTA3, ...
o Checking for opengl extenstions before using certain functions
o Use max values from opengl rather than hardcoded values
o Buffer support (GetFrontBuffer, GetBackBuffer)
o TexturePalettes (not really tested as i don't have gta3)
o Gamma Ramp
o MultiplyTransform
o Mipmap support
o Dirty Areas
o CubeMap support
o Raster states
o Better debug/cleaner debug channels


- - -- Device interface: --
o CreateRenderTarger / GetRenderTarget support (Optimisation, MemoryManager)
o CreateAdditionalSwapChain/Swap Chains (Optimisation, MemoryManager)
o Get/CreateDepthStencilSurface (Optimisation, MemoryManager)
o Pixel and Vertex shaders support:
 - merge of the hw support patch in my shader tree
 - support of pixel shader
 - ps2.0
 - vs3.0
o Tex Op: really use of caps

- - -- Surfaces/Textures interfaces --
o Better Textures management:
 - unlock always reload all surface (really slow for cube maps used after a
Render to surface)
 - see if when a texture is used as render surfaces the apps must use
SetTexture after that for using it (and this way restoring the new texture to
cg mem)
o CopyRect:
 - dont lock/Unlock when not really needed
 - use glTexSubImage2d for optimisation when possible
o Lock/Unlock:
 - only restore or copy when needed (exemple no save renders when WRITE_ONLY
flags was used)
o Preload function for textures

- - -- DirectX interface: --
o Better Caps code (must be detected at DirectX8 init, only once)
o Check* functions
o Window sizes / fullscreen support is awful - its a real hack at the moment

o More Performance (many users complains about that)
o Get the last SDK samples (principally blending and bump) to work
o D3D9 support (easy but need a lot of d3d8 cleanup/ and the d3dcore split)
o A Memory Manager singleton who manage allocation and life cycle of cg
 object (vertex buffers, surfaces, textures, ... as directx have) better for
 performances and easy management of cg memory

Missing Functionalities:

- - -- General --
o Private Data (Get/Set) support
o Priority Levels (Should be reasonably easy as opengl has this
 functionality) o LOD support

- - -- Device interface --
o nPatchs (Rect,Tri)
o GetInfo (need a Better Caps code)
o Reset (need Memory Manager)
o ResrceMgrDiscard (need Memory Manager)
o Cursor functions (already begin but almost a stub)
o UpdateTexture (already begin but almost a stub)
o TestCoop support
o ValidateDevice (need a Better Caps code)

Version: GnuPG v1.2.2 (GNU/Linux)


More information about the wine-devel mailing list