-
Notifications
You must be signed in to change notification settings - Fork 118
DirectDraw to Direct3D9 Conversion Status
Elisha Riedlinger edited this page Nov 18, 2020
·
28 revisions
For this page I will be talking about the status of the work to convert DirectX 1-7 to DirectX 9. This is a more technical discussion. For game compatibility check out this page here: Dd7to9 Compatibility
| Note | --Status-- |
|---|---|
| The function is fully implemented. |
|
| The function is partially implemented. It may work in some circumstances but not all. |
|
| The function is either not implemented at all or not enough to work correctly. |
|
| Function | Notes | -Support- |
|---|---|---|
| Compact() | Not implemented in DirectDraw. |
|
| CreateClipper() |
|
|
| CreatePalette() | Using Direct3D9 pixel shader for handling the palette colors. Does not support DDPCAPS_PRIMARYSURFACELEFT flag. |
|
| CreateSurface() | Does not support CubeMaps, MipMaps, FourCCs, zBuffers, zPixels, StencelBuffers, YUV, DUDV, BumpDUDV, BumpLuminance, Luminance, Linear |
|
| DuplicateSurface() |
|
|
| EnumDisplayModes() |
|
|
| EnumSurfaces() | Not implemented. |
|
| FlipToGDISurface() | Does not properly flip to GDI surface. |
|
| GetCaps() |
|
|
| GetDisplayMode() |
|
|
| GetFourCCCodes() | Lists some hard coded FourCC types. |
|
| GetGDISurface() | Not implemented. |
|
| GetMonitorFrequency() |
|
|
| GetScanLine() |
|
|
| GetVerticalBlankStatus() |
|
|
| Initialize() |
|
|
| RestoreDisplayMode() |
|
|
| SetCooperativeLevel() |
|
|
| SetDisplayMode() |
|
|
| WaitForVerticalBlank() | Loops until vertical blink. |
|
| GetAvailableVidMem() | Only able to get video memory after SetCooperativeLevel() and SetDisplayMode() is called. |
|
| GetSurfaceFromDC() | Not implemented. |
|
| RestoreAllSurfaces() |
|
|
| TestCooperativeLevel() |
|
|
| GetDeviceIdentifier() |
|
|
| StartModeTest() | Not implemented. |
|
| EvaluateMode() | Not implemented. |
|
| Function | Notes | -Support- |
|---|---|---|
| AddAttachedSurface() | This function is emulated. Only one backbuffer is supported when using Direct3D. |
|
| AddOverlayDirtyRect() | Not implemented. |
|
| Blt() | This function is emulated. Does not support non-Windows raster operations, depth fill, zBuffer, 90 and 270 degree rotation operations, alpha flags. |
|
| BltBatch() | This function is emulated. Does not support non-Windows raster operations, depth fill, zBuffer, 90 and 270 degree rotation operations, alpha flags. |
|
| BltFast() | This function is emulated. |
|
| DeleteAttachedSurface() |
|
|
| EnumAttachedSurfaces() |
|
|
| EnumOverlayZOrders() | Not implemented. |
|
| Flip() | This function is emulated. Only one backbuffer is supported when using Direct3D. |
|
| GetAttachedSurface() | This function is emulated. Only one backbuffer is supported when using Direct3D. |
|
| GetBltStatus() |
|
|
| GetCaps() |
|
|
| GetClipper() |
|
|
| GetColorKey() |
|
|
| GetDC() |
|
|
| GetFlipStatus() |
|
|
| GetOverlayPosition() | Not implemented. |
|
| GetPalette() |
|
|
| GetPixelFormat() |
|
|
| GetSurfaceDesc() |
|
|
| Initialize() |
|
|
| IsLost() |
|
|
| Lock() |
|
|
| ReleaseDC() |
|
|
| Restore() |
|
|
| SetClipper() | Clipper is being set, but does not do anything yet. |
|
| SetColorKey() |
|
|
| SetOverlayPosition() | Not implemented. |
|
| SetPalette() |
|
|
| Unlock() |
|
|
| UpdateOverlay() | Not implemented. |
|
| UpdateOverlayDisplay() | Not implemented. |
|
| UpdateOverlayZOrder() | Not implemented. |
|
| GetDDInterface() |
|
|
| PageLock() | Does nothing since Blt() is emulated. |
|
| PageUnlock() | Does nothing since Blt() is emulated. |
|
| SetSurfaceDesc() | Only supports DDSD_LPSURFACE flag. |
|
| SetPrivateData() | Private Data may be deleted prematurely in some cases. |
|
| GetPrivateData() |
|
|
| FreePrivateData() |
|
|
| GetUniquenessValue() |
|
|
| ChangeUniquenessValue() |
|
|
| SetPriority() | Priority can be set, but is not used. |
|
| GetPriority() |
|
|
| SetLOD() | LOD can be set, but MipMaps are not yet supported. |
|
| GetLOD() |
|
| Function | Notes | -Support- |
|---|---|---|
| GetClipList() |
|
|
| GetHWnd() |
|
|
| Initialize() |
|
|
| IsClipListChanged() |
|
|
| SetClipList() | ClipList can be set, but is not used. |
|
| SetHWnd() | HWnd can be set, but is not used. |
|
| Function | Notes | -Support- |
|---|---|---|
| GetCaps() |
|
|
| GetEntries() |
|
|
| Initialize() |
|
|
| SetEntries() |
|
| Function | Notes | -Support- |
|---|---|---|
| GetColorControls() |
|
|
| SetColorControls() | Color can be set, but is not used. |
|
| Function | Notes | -Support- |
|---|---|---|
| GetGammaRamp() |
|
|
| SetGammaRamp() | Gamma can be set, but is not used. |
|
| Function | Notes | -Support- |
|---|---|---|
| Initialize() | ||
| EnumDevices() | ||
| CreateLight() | ||
| CreateMaterial() | ||
| CreateViewport() | ||
| FindDevice() | ||
| CreateDevice() | ||
| CreateVertexBuffer() | ||
| EnumZBufferFormats() | ||
| EvictManagedTextures() |
| Function | Notes | -Support- |
|---|---|---|
| Initialize() | ||
| GetCaps() | ||
| SwapTextureHandles() | ||
| CreateExecuteBuffer() | ||
| GetStats() | ||
| Execute() | ||
| AddViewport() | ||
| DeleteViewport() | ||
| NextViewport() | ||
| Pick() | ||
| GetPickRecords() | ||
| EnumTextureFormats() | ||
| CreateMatrix() | ||
| SetMatrix() | ||
| GetMatrix() | ||
| DeleteMatrix() | ||
| BeginScene() | ||
| EndScene() | ||
| GetDirect3D() | ||
| SetCurrentViewport() | ||
| GetCurrentViewport() | ||
| SetRenderTarget() | ||
| GetRenderTarget() | ||
| Begin() | ||
| BeginIndexed() | ||
| Vertex() | ||
| Index() | ||
| End() | ||
| GetRenderState() | ||
| SetRenderState() | ||
| GetLightState() | ||
| SetLightState() | ||
| SetTransform() | ||
| GetTransform() | ||
| MultiplyTransform() | ||
| DrawPrimitive() | ||
| DrawIndexedPrimitive() | ||
| SetClipStatus() | ||
| GetClipStatus() | ||
| DrawPrimitiveStrided() | ||
| DrawIndexedPrimitiveStrided() | ||
| DrawPrimitiveVB() | ||
| DrawIndexedPrimitiveVB() | ||
| ComputeSphereVisibility() | ||
| GetTexture() | ||
| SetTexture() | ||
| GetTextureStageState() | ||
| SetTextureStageState() | ||
| ValidateDevice() | ||
| Clear() | ||
| SetViewport() | ||
| GetViewport() | ||
| SetMaterial() | ||
| GetMaterial() | ||
| SetLight() | ||
| GetLight() | ||
| BeginStateBlock() | ||
| EndStateBlock() | ||
| PreLoad() | ||
| ApplyStateBlock() | ||
| CaptureStateBlock() | ||
| DeleteStateBlock() | ||
| CreateStateBlock() | ||
| Load() | ||
| LightEnable() | ||
| GetLightEnable() | ||
| SetClipPlane() | ||
| GetClipPlane() | ||
| GetInfo() |
| Function | Notes | -Support- |
|---|---|---|
| Initialize() | ||
| GetViewport() | ||
| SetViewport() | ||
| TransformVertices() | ||
| LightElements() | ||
| SetBackground() | ||
| GetBackground() | ||
| SetBackgroundDepth() | ||
| GetBackgroundDepth() | ||
| Clear() | ||
| AddLight() | ||
| DeleteLight() | ||
| NextLight() | ||
| GetViewport2() | ||
| SetViewport2() | ||
| SetBackgroundDepth2() | ||
| GetBackgroundDepth2() | ||
| Clear2() |
| Function | Notes | -Support- |
|---|---|---|
| Initialize() | ||
| GetHandle() | ||
| PaletteChanged() | ||
| Load() | ||
| Unload() |
| Function | Notes | -Support- |
|---|---|---|
| Initialize() | ||
| SetMaterial() | ||
| GetMaterial() | ||
| GetHandle() | ||
| Reserve() | ||
| Unreserve() |
| Function | Notes | -Support- |
|---|---|---|
| Initialize() | ||
| SetLight() | ||
| GetLight() |
| Function | Notes | -Support- |
|---|---|---|
| Initialize() | ||
| Lock() | ||
| Unlock() | ||
| SetExecuteData() | ||
| GetExecuteData() | ||
| Validate() | ||
| Optimize() |
| Function | Notes | -Support- |
|---|---|---|
| Lock() | ||
| Unlock() | ||
| ProcessVertices() | ||
| GetVertexBufferDesc() | ||
| Optimize() | ||
| ProcessVerticesStrided() |