DXGL Features
Jump to navigation
Jump to search
API
ddraw.dll functions
Function | Implemented | Notes |
---|---|---|
DirectDrawCreate | Partial | Only supports primary display |
DirectDrawCreateEx | Partial | Same as DirectDrawCreate |
DirectDrawCreateClipper | Yes | |
DirectDrawEnumerateA | Partial | |
DirectDrawEnumerateW | Partial | |
DirectDrawEnumerateExA | Partial | |
DirectDrawEnumerateExW | Partial |
Supports other DirectDrawEnumerate functions Only returns Primary Display Driver |
DllCanUnloadNow | No | Returns S_FALSE |
DllGetClassObject | Yes |
IClassFactory functions
Function | Implemented | Notes |
---|---|---|
AddRef | Yes | |
CreateInstance | Yes | |
LockServer | Yes | |
QueryInterface | Yes | |
Release | Yes |
IDirectDraw functions
Function | Implemented | Notes |
---|---|---|
Compact | N/A | Not implemented in "real" DirectDraw. |
CreteClipper | Yes | |
CreatePalette | Partial | Creates color palettes but not index palettes. |
CreateSurface | Partial | See other tables |
DuplicateSurface | Yes | |
EnumDisplayModes | Yes | Enhanced with extra modes and color depths |
EnumSurfaces | Yes | |
EvaluateMode | No | |
FlipToGDISurface | Broken | Currently crashes program |
GetAvailableVidMem | Partial | Returns available process memory |
GetCaps | Yes | See caps tables |
GetDeviceIdentifier | Partial | Creates "dummy" identifier |
GetDisplayMode | Yes | |
GetFourCCCodes | No | |
GetGDISurface | No | |
GetMonitorFrequency | Partial | Only supports primary display |
GetScanLine | No | |
GetSurfaceFromDC | No | |
GetVerticalBlankStatus | No | |
Initialize | Yes | |
RestoreAllSurfaces | Yes | Order of restoration not guaranteed |
RestoreDisplayMode | Broken | Has no effect under certain circumstances |
SetCooperativeLevel | Partial | Does not restore window when leaving fullscreen |
SetDisplayMode | Yes | Enhanced with extra modes and color depths |
StartModeTest | No | |
TestCooperativeLevel | Yes | |
WaitForVerticalBlank | Partial | Timing not correct |
IDirectDrawClipper functions
Function | Implemented | Notes |
---|---|---|
GetClipList | Partial | Not working correctly with hWnd |
GetHWnd | Yes | |
Initialize | Yes | |
IsClipListChanged | No | |
SetClipList | Yes | |
SetHWnd | Yes |
IDirectDrawColorControl functions
Not yet implemented
IDirectDrawGammaControl functions
Not yet implemented
IDirectDrawPalette functions
Function | Implemented | Notes |
---|---|---|
GetCaps | Yes | |
GetEntries | Yes | |
Initialize | Yes | Always returns DDERR_ALREADYINITIALIZED |
SetEntries | Yes |
IDirectDrawSurface functions
Function | Implemented | Notes |
---|---|---|
AddAttachedSurface | Partial | Can only attach one Z buffer. |
AddOverlayDirtyRect | No | |
Blt | Partial | Partial support for DDBLTFX |
BltBatch | No | Unimplemented in Microsoft DDraw |
BltFast | Yes | Wrapper for Blt function |
ChangeUniquenessValue | No | |
DeleteAttachedSurface | Partial | Can only attach one Z buffer. |
EnumAttachedSurfaces | Partial | Enumerates currently supported attachments. |
EnumOverlayZOrders | No | |
Flip | Yes | |
FreePrivateData | No | |
GetAttachedSurface | Partial | Gets backbuffer or zbuffer only. |
GetBltStatus | Partial | Returns DD_OK |
GetCaps | Yes | |
GetClipper | No | |
GetColorKey | Yes | |
GetDC | Partial | Currently slow |
GetDDInterface | Yes | |
GetFlipStatus | No | |
GetLOD | No | |
GetOverlayPosition | No | |
GetPalette | Yes | |
GetPixelFormat | Yes | |
GetPriority | No | |
GetPrivateData | No | |
GetSurfaceDesc | Yes | |
GetUniquenessValue | No | |
Initialize | Yes | Always returns DDERR_ALREADYINITIALIZED |
IsLost | Yes | |
Lock | Partial | Does not support multiple rects |
PageLock | Yes | Only increments an internal counter |
PageUnlock | Yes | Only decrements an internal counter |
ReleaseDC | No | Currently inefficient |
Restore | Partial | Possibly unstable |
SetClipper | Yes | |
SetColorKey | Yes | |
SetLOD | No | |
SetOverlayPosition | No | |
SetPalette | Yes | |
SetPriority | No | |
SetPrivateData | No | |
SetSurfaceDesc | No | |
Unlock | No | Does not support multiple rects |
UpdateOverlay | No | |
UpdateOverlayDisplay | No | Not implemented in Microsoft DDraw |
UpdateOverlayZOrder | No |
IDDVideoPortContainer functions
Not yet implemented
IDirectDrawVideoPort functions
Not yet implemented
IDirect3D functions
Currently only IDirect3D7 and IDirect3D3 are supported.
Function | Implemented | Notes |
---|---|---|
CreateDevice | Yes | |
CreateLight | Yes | |
CreateMaterial | Yes | |
CreateVertexBuffer | Partial | Vertex buffers do not work yet. |
CreateViewport | Yes | |
EnumDevices | Yes | |
EnumZBufferFormats | Partial | Formats not yet validated |
EvictManagedTextures | No | |
FindDevice | Yes |
IDirect3DDevice functions
Currently only IDirect3DDevice7 and IDirect3DDevice3 are supported.
Function | Implemented | Notes |
---|---|---|
AddViewport | Yes | |
Begin | No | |
BeginIndexed | No | |
ApplyStateBlock | No | |
BeginScene | Yes | |
BeginStateBlock | No | |
CaptureStateBlock | No | |
CreateStateBlock | No | |
Clear | Yes | |
ComputeSphereVisibility | No | |
DeleteStateBlock | No | |
DeleteViewport | Yes | |
DrawIndexedPrimitive | Partial | Shader generator in development |
DrawIndexedPrimitiveStrided | No | |
DrawIndexedPrimitiveVB | No | |
DrawPrimitive | Partial | Shader generator in development |
DrawPrimitiveStrided | No | |
DrawPrimitiveVB | No | |
End | No | |
EndScene | Yes | |
EndStateBlock | No | |
EnumTextureFormats | Partial | Only some formats supported |
GetCaps | Partial | |
GetClipPlane | No | |
GetClipStatus | No | |
GetCurrentViewport | Yes | |
GetDirect3D | Yes | |
GetInfo | No | |
GetLight | No | |
GetLightEnable | No | |
GetLightState | Yes | |
GetMaterial | Yes | |
GetRenderState | Yes | |
GetRenderTarget | Broken | Winetest fails to get proper render target. |
GetStateData | No | Not in system D3D |
GetStats | No | |
GetTexture | Yes | |
GetTexureStageState | Yes | |
GetTransform | Partial | Supports world, view, and projection only |
GetViewport | Yes | |
Index | No | |
LightEnable | Yes | |
Load | No | |
MultiplyTransform | No | |
NextViewport | No | |
PreLoad | No | |
SetClipPlane | No | |
SetClipStatus | No | |
SetCurrentViewport | Yes | |
SetLight | Yes | |
SetMaterial | Yes | |
SetRenderState | Partial | Only supports some states. |
SetRenderTarget | Yes | |
SetStateData | No | Not in system D3D |
SetTexture | Yes | |
SetTextureStageState | Yes | |
SetTransform | Partial | Supports world, view, and projection only |
SetViewport | Partial | Doesn't validate parameters; Z values not used |
ValidateDevice | Yes | |
Vertex | No |
IDirect3DExecuteBuffer functions
Not yet implemented
IDirect3DLight functions
Function | Implemented | Notes |
---|---|---|
GetLight | Yes | |
SetLight | Yes |
IDirect3DMaterial functions
Function | Implemented | Notes |
---|---|---|
GetHandle | Yes | |
GetMaterial | Yes | |
SetMaterial | Yes |
IDirect3DTexture functions
Function | Implemented | Notes |
---|---|---|
GetHandle | No | |
Load | No | |
PaletteChanged | No |
IDirect3DVertexBuffer functions
Function | Implemented | Notes |
---|---|---|
GetVertexBufferDesc | Yes | |
Lock | No | |
Optimize | No | |
ProcessVertices | No | |
ProcessVerticesStrided | No | |
Unlock | No |
IDirect3DViewport functions
Function | Implemented | Notes |
---|---|---|
AddLight | Yes | |
Clear | Yes | |
Clear2 | Yes | |
DeleteLight | Yes | |
GetBackground | Yes | |
GetBackgroundDepth | Yes | |
GetBackgroundDepth2 | Yes | |
GetViewport | Yes | |
GetViewport2 | Yes | |
LightElements | No | Not implemented in system D3D |
NextLight | No | |
SetBackground | Yes | |
SetBackgroundDepth | Yes | |
SetBackgroundDepth2 | Yes | |
SetViewport | Partial | Some parameters not yet supported. |
SetViewport2 | Partial | Some parameters not yet supported. |
TransformVertices | No |
Capabilites
DDCAPS
Member | Implemented | Notes |
---|---|---|
dwSize | Yes | |
dwCaps | Partial | |
dwCaps2 | Partial | |
dwCKeyCaps | Partial | |
dwFXCaps | Partial | |
dwFXAlphaCaps | No | |
dwPalCaps | Partial | |
dwSVCaps | No | |
dwAlphaBltConstBitDepths | No | |
dwAlphaBltPixelBitDepths | No | |
dwAlphaBltSurfaceBitDepths | No | |
dwAlphaOverlayConstBitDepths | No | |
dwAlphaOverlayPixelBitDepths | No | |
dwAlphaOverlaySurfaceBitDepths | No | |
dwZBufferBitDepths | No | |
dwVidMemTotal | No | |
dwVidMemTotal | No | |
dwMaxVisibleOverlays | 0 | |
dwCurrVisibleOverlays | No | |
dwNumFourCCCodes | 0 | |
dwAlignBoundarySrc | No | |
dwAlignSizeSrc | No | |
dwAlignBoundaryDest | No | |
dwAlignSizeDest | No | |
dwAlignStrideAlign | No | |
dwRops[DD_ROP_SPACE] | Partial | |
ddsOldCaps | Partial | |
dwMinOverlayStretch | No | |
dwMaxOverlayStretch | No | |
dwMinLiveVideoStretch | No | |
dwMaxLiveVideoStretch | No | |
dwMinHwCodecStretch | No | |
dwMaxHwCodecStretch | No | |
dwReserved1 | N/A | placeholder |
dwReserved2 | N/A | placeholder |
dwReserved3 | N/A | placeholder |
dwSVBCaps | No | |
dwSVBCKeyCaps | No | |
dwSVBFXCaps | No | |
dwSVBRops[DD_ROP_SPACE] | Partial | |
dwVSBCaps | No | |
dwVSBCKeyCaps | No | |
dwVSBFXCaps | No | |
dwVSBRops[DD_ROP_SPACE] | Partial | |
dwSSBCaps | No | |
dwSSBCKeyCaps | No | |
dwSSBFXCaps | No | |
dwSSBRops[DD_ROP_SPACE] | Partial | |
dwMaxVideoPorts | 0 | |
dwCurrVideoPorts | 0 | |
dwSVBCaps2 | No | |
dwNLVBCaps | No | |
dwNLVBCaps2 | No | |
dwNLVBCKeyCaps | No | |
dwNLVBFXCaps | No | |
dwNLVBRops[DD_ROP_SPACE] | Partial | |
ddsCaps | Partial |
DDCAPS.dwCaps
Bit | Set | Notes |
---|---|---|
DDCAPS_3D | Yes | |
DDCAPS_ALIGNBOUNDARYDEST | No | |
DDCAPS_ALIGNBOUNDARYSRC | No | |
DDCAPS_ALIGNSIZEDEST | No | |
DDCAPS_ALIGNSIZESRC | No | |
DDCAPS_ALIGNSTRIDE | No | |
DDCAPS_ALPHA | No | |
DDCAPS_BANKSWITCHED | No | |
DDCAPS_BLT | Partial | Blt() is not yet complete. |
DDCAPS_BLTCOLORFILL | Yes | |
DDCAPS_BLTDEPTHFILL | No | |
DDCAPS_BLTFOURCC | No | |
DDCAPS_BLTQUEUE | No | |
DDCAPS_BLTSTRETCH | Yes | |
DDCAPS_CANBLTSYSMEM | Yes | Irrelevent in DXGL's current architecture. |
DDCAPS_CANCLIP | Yes | |
DDCAPS_CANCLIPSTRETCHED | Yes | |
DDCAPS_COLORKEY | Yes | |
DDCAPS_COLORKEYHWASSIST | No | |
DDCAPS_GDI | Partial | Can create DC's |
DDCAPS_NOHARDWARE | No | |
DDCAPS_OVERLAY | No | |
DDCAPS_OVERLAYCANTCLIP | No | |
DDCAPS_OVERLAYFOURCC | No | |
DDCAPS_OVERLAYSTRETCH | No | |
DDCAPS_PALETTE | Yes | |
DDCAPS_PALETTEVSYNC | No | |
DDCAPS_READSCANLINE | Partial | Simulated with a timer |
DDCAPS_VBI | No | |
DDCAPS_ZBLTS | No | |
DDCAPS_ZOVERLAYS | No |
DDCAPS.dwCaps2
Bit | Set | Notes |
---|---|---|
DDCAPS2_AUTOFLIPOVERLAY | No | |
DDCAPS2_CANBOBHARDWARE | No | |
DDCAPS2_CANBOBINTERLEAVED | No | |
DDCAPS2_CANBOBNONINTERLEAVED | No | |
DDCAPS2_CANCALIBRATEGAMMA | No | |
DDCAPS2_CANDROPZ16BIT | No | |
DDCAPS2_CANFLIPODDEVEN | No | |
DDCAPS2_CANMANAGETEXTURE | No | |
DDCAPS2_CANRENDERWINDOWED | Yes | |
DDCAPS2_CERTIFIED | No | |
DDCAPS2_COLORCONTROLPRIMARY | No | |
DDCAPS2_COLORCONTROLOVERLAY | No | |
DDCAPS2_COPYFOURCC | No | |
DDCAPS2_FLIPINTERVAL | Yes | |
DDCAPS2_FLIPNOVSYNC | Yes | |
DDCAPS2_NO2DDURING3DSCENE | No | |
DDCAPS2_NONLOCALVIDMEM | Yes | |
DDCAPS2_NONLOCALVIDMEMCAPS | No | |
DDCAPS2_NOPAGELOCKREQUIRED | Yes | |
DDCAPS2_PRIMARYGAMMA | No | |
DDCAPS2_STEREO | No | |
DDCAPS2_TEXMANINNONLOCALVIDMEM | No | |
DDCAPS2_VIDEOPORT | No | |
DDCAPS2_WIDESURFACES | Yes |
DDCAPS.dwCKeyCaps
Bit | Set | Notes |
---|---|---|
DDCKEYCAPS_DESTBLT | Yes | |
DDCKEYCAPS_DESTBLTCLRSPACE | No | |
DDCKEYCAPS_DESTBLTCLRSPACEYUV | No | |
DDCKEYCAPS_DESTBLTYUV | No | |
DDCKEYCAPS_DESTOVERLAY | No | |
DDCKEYCAPS_DESTOVERLAYCLRSPACE | No | |
DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV | No | |
DDCKEYCAPS_DESTOVERLAYONEACTIVE | No | |
DDCKEYCAPS_DESTOVERLAYYUV | No | |
DDCKEYCAPS_NOCOSTOVERLAY | No | |
DDCKEYCAPS_SRCBLT | Yes | |
DDCKEYCAPS_SRCBLTCLRSPACE | No | |
DDCKEYCAPS_SRCBLTCLRSPACEYUV | No | |
DDCKEYCAPS_SRCBLTYUV | No | |
DDCKEYCAPS_SRCOVERLAY | No | |
DDCKEYCAPS_SRCOVERLAYCLRSPACE | No | |
DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV | No | |
DDCKEYCAPS_SRCOVERLAYONEACTIVE | No | |
DDCKEYCAPS_SRCOVERLAYYUV | No |
DDCAPS.dwFXCaps
Bit | Set | Notes |
---|---|---|
DDFXCAPS_BLTALPHA | No | |
DDFXCAPS_BLTARITHSTRETCHY | No | |
DDFXCAPS_BLTARITHSTRETCHYN | No | |
DDFXCAPS_BLTFILTER | No | |
DDFXCAPS_BLTMIRRORLEFTRIGHT | Yes | |
DDFXCAPS_BLTMIRRORUPDOWN | Yes | |
DDFXCAPS_BLTROTATION | No | |
DDFXCAPS_BLTROTATION90 | Yes | |
DDFXCAPS_BLTSHRINKX | Yes | |
DDFXCAPS_BLTSHRINKXN | No | |
DDFXCAPS_BLTSHRINKY | Yes | |
DDFXCAPS_BLTSHRINKYN | No | |
DDFXCAPS_BLTSTRETCHX | Yes | |
DDFXCAPS_BLTSTRETCHXN | No | |
DDFXCAPS_BLTSTRETCHY | Yes | |
DDFXCAPS_BLTSTRETCHYN | No | |
DDFXCAPS_BLTTRANSFORM | No | |
DDFXCAPS_OVERLAYFILTER | No | |
DDFXCAPS_OVERLAYMIRRORLEFTRIGHT | No | |
DDFXCAPS_OVERLAYMIRRORUPDOWN | No | |
DDFXCAPS_OVERLAYSHRINKX | No | |
DDFXCAPS_OVERLAYSHRINKXN | No | |
DDFXCAPS_OVERLAYSHRINKY | No | |
DDFXCAPS_OVERLAYSHRINKYN | No | |
DDFXCAPS_OVERLAYSTRETCHX | No | |
DDFXCAPS_OVERLAYSTRETCHXN | No | |
DDFXCAPS_OVERLAYSTRETCHY | No | |
DDFXCAPS_OVERLAYSTRETCHYN | No | |
DDFXCAPS_OVERLAYTRANSFORM | No |
DDCAPS.dwFXAlphaCaps
Bit | Set | Notes |
---|---|---|
DDFXALPHACAPS_BLTALPHAEDGEBLEND | No | |
DDFXALPHACAPS_BLTALPHAPIXELS | No | |
DDFXALPHACAPS_BLTALPHAPIXELSNEG | No | |
DDFXALPHACAPS_BLTALPHASURFACES | No | |
DDFXALPHACAPS_BLTALPHASURFACESNEG | No | |
DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND | No | |
DDFXALPHACAPS_OVERLAYALPHAPIXELS | No | |
DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG | No | |
DDFXALPHACAPS_OVERLAYALPHASURFACES | No | |
DDFXALPHACAPS_OVERLAYALPHASURFACESNEG | No |
DDCAPS.dwPalCaps
Bit | Set | Notes |
---|---|---|
DDPCAPS_1BIT | No | |
DDPCAPS_2BIT | No | |
DDPCAPS_4BIT | No | |
DDPCAPS_8BIT | Yes | |
DDPCAPS_8BITENTRIES | No | |
DDPCAPS_ALPHA | No | |
DDPCAPS_ALLOW256 | No | |
DDPCAPS_PRIMARYSURFACE | Yes | |
DDPCAPS_PRIMARYSURFACELEFT | No | |
DDPCAPS_VSYNC | No |
DDSCAPS2
Member | Implemented | Notes |
---|---|---|
dwCaps | Partial | |
dwCaps2 | Partial | |
dwCaps3 | N/A | Only useful for D3D9+ |
dwCaps4 | N/A | Only useful for D3D9+ |
DDSCAPS2.dwCaps
Bit | Set | Notes |
---|---|---|
DDSCAPS_3D | N/A | Unused |
DDSCAPS_3DDEVICE | Yes | |
DDSCAPS_ALLOCONLOAD | N/A | |
DDSCAPS_ALPHA | No | |
DDSCAPS_BACKBUFFER | Yes | |
DDSCAPS_COMPLEX | Partial | Only supports flipped surfaces |
DDSCAPS_FLIP | Yes | |
DDSCAPS_FRONTBUFFER | Yes | |
DDSCAPS_HWCODEC | No | |
DDSCAPS_LIVEVIDEO | No | |
DDSCAPS_LOCALVIDMEM | Yes | Currently ignored. |
DDSCAPS_MIPMAP | Yes | |
DDSCAPS_MODEX | No | Bit is ignored |
DDSCAPS_NONLOCALVIDMEM | Yes | Currently ignored. |
DDSCAPS_OFFSCREENPLAIN | Yes | |
DDSCAPS_OPTIMIZED | N/A | |
DDSCAPS_OVERLAY | No | |
DDSCAPS_OWNDC | No | |
DDSCAPS_PALETTE | Partial | Only supports 256 color palettes. |
DDSCAPS_PRIMARYSURFACE | Yes | |
DDSCAPS_STANDARDVGAMODE | No | Bit is ignored. |
DDSCAPS_SYSTEMMEMORY | Yes | Makes memory allocation occur at creation instead of first locking |
DDSCAPS_TEXTURE | Yes | |
DDSCAPS_VIDEOMEMORY | Yes | Copied to system memory when locked. |
DDSCAPS_VIDEOPORT | No | |
DDSCAPS_VISIBLE | No | |
DDSCAPS_WRITEONLY | No | |
DDSCAPS_ZBUFFER | No |
DDSCAPS2.dwCaps
Bit | Set | Notes |
---|---|---|
DDSCAPS2_CUBEMAP | No | |
DDSCAPS2_CUBEMAP_POSITIVEX | No | |
DDSCAPS2_CUBEMAP_NEGATIVEX | No | |
DDSCAPS2_CUBEMAP_POSITIVEY | No | |
DDSCAPS2_CUBEMAP_NEGATIVEY | No | |
DDSCAPS2_CUBEMAP_POSITIVEZ | No | |
DDSCAPS2_CUBEMAP_NEGATIVEZ | No | |
DDSCAPS2_CUBEMAP_ALLFACES | No | |
DDSCAPS2_D3DTEXTUREMANAGE | No | |
DDSCAPS2_DONOTPERSIST | No | |
DDSCAPS2_HARDWAREDEINTERLACE | No | |
DDSCAPS2_HINTANTIALIASING | No | |
DDSCAPS2_HINTDYNAMIC | No | |
DDSCAPS2_HINTSTATIC | No | |
DDSCAPS2_MIPMAPSUBLEVEL | Yes | |
DDSCAPS2_OPAQUE | No | |
DDSCAPS2_STEREOSURFACELEFT | No | |
DDSCAPS2_TEXTUREMANAGE | No |