-----BEGIN PGP SIGNED MESSAGE----- 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
NEED MORE WORK: ====================
- - -- 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
TODO ====== 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)
Regards, Raphael