DXGL Features

From DXGL Wiki
Jump to: navigation, 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 Currently only creates 256-color 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