Jump to content

DXGL Features

From www.williamfeely.info

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 Partial Class Factory not yet written

IClassFactory functions

Function Implemented Notes
AddRef Yes
CreateInstance Yes
LockServer Yes
QueryInterface Yes
Release Yes

IDirectDraw7 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 No
EnumDisplayModes Yes Enhanced with extra modes and color depths
EnumSurfaces No
EvaluateMode No
FlipToGDISurface Broken Currently crashes program
GetAvailableVidMem No
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 No
RestoreDisplayMode Broken Has no effect under certain circumstances
SetCooperativeLevel Partial Does not support null HWND
SetDisplayMode Yes Enhanced with extra modes and color depths
StartModeTest No
TestCooperativeLevel No
WaitForVerticalBlank Partial Timing not correct

IDirectDrawClipper functions

Function Implemented Notes
GetClipList No
GetHWnd Yes
Initialize Yes
IsClipListChanged No
SetClipList No
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 Does not support DDBLTFX
BltBatch No Unimplemented in Microsoft DDraw
BltFast Yes Wrapper for Blt function
ChangeUniquenessValue No
DeleteAttachedSurface Partial Can only attach one Z buffer.
EnumAttachedSurfaces No
EnumOverlayZOrders No
Flip Partial No vsync support
FreePrivateData No
GetAttachedSurface Partial Gets backbuffer or zbuffer only.
GetBltStatus No
GetCaps Yes
GetClipper No
GetColorKey Yes
GetDC Partial Currently slow
GetDDInterface No
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 No
Lock Partial Does not support rects
PageLock Yes Only increments an internal counter
PageUnlock Yes Only decrements an internal counter
ReleaseDC No Currently inefficient
Restore Partial Fails if surface is lost
SetClipper Partial Currently has no effect
SetColorKey Yes
SetLOD No
SetOverlayPosition No
SetPalette Yes
SetPriority No
SetPrivateData No
SetSurfaceDesc No
Unlock No Does not support rects
UpdateOverlay No
UpdateOverlayDisplay No Not implemented in Microsoft DDraw
UpdateOverlayZOrder No

IDDVideoPortContainer functions

Not yet implemented

IDirectDrawVideoPort functions

Not yet implemented

IDirect3D functions

Function Implemented Notes
CreateDevice Yes
CreateVertexBuffer No
EnumDevices No
EnumZBufferFormats Partial Formats not yet validated
EvictManagedTextures No

IDirect3DDevice functions

Function Implemented Notes
ApplyStateBlock No
BeginScene No
BeginStateBlock No
CaptureStateBlock No
CreateStateBlock No
Clear No
ComputeSphereVisibility No
DeleteStateBlock No
DrawIndexedPrimitive No
DrawIndexedPrimitiveStrided No
DrawIndexedPrimitiveVB No
DrawPrimitive No
DrawPrimitiveStrided No
DrawPrimitiveVB No
EndScene No
EndStateBlock No
EnumTextureFormats No
GetCaps No
GetClipPlane No
GetClipStatus No
GetDirect3D Yes
GetInfo No
GetLight No
GetLightEnable No
GetMaterial Yes
GetRenderState Yes
GetRenderTarget No
GetStateData No Not in system D3D
GetTexture No
GetTexureStageState No
GetTransform No
GetViewport Yes
LightEnable No
Load No
MultiplyTransform No
PreLoad No
SetClipPlane No
SetClipStatus No
SetLight No
SetMaterial Yes
SetRenderState Partial Only supports some states.
SetRenderTarget No
SetStateData No Not in system D3D
SetTexture No
SetTextureStageState No
SetTransform No
SetViewport Partial Doesn't validate parameters
ValidateDevice No

IDirect3DExecuteBuffer functions

Not yet implemented

IDirect3DLight functions

Not yet implemented

IDirect3DMaterial functions

Not yet implemented

IDirect3DTexture functions

Not yet implemented

IDirect3DVertexBuffer functions

Not yet implemented

IDirect3DViewport functions

Not yet implemented

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] No
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] No
dwVSBCaps No
dwVSBCKeyCaps No
dwVSBFXCaps No
dwVSBRops[DD_ROP_SPACE] No
dwSSBCaps No
dwSSBCKeyCaps No
dwSSBFXCaps No
dwSSBRops[DD_ROP_SPACE] No
dwMaxVideoPorts 0
dwCurrVideoPorts 0
dwSVBCaps2 No
dwNLVBCaps No
dwNLVBCaps2 No
dwNLVBCKeyCaps No
dwNLVBFXCaps No
dwNLVBRops[DD_ROP_SPACE] No
ddsCaps Partial

DDCAPS.dwCaps

Bit Set Notes
DDCAPS_3D No
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 architecture.
DDCAPS_CANCLIP No
DDCAPS_CANCLIPSTRETCHED No
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 No
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 No
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 No
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 No
DDFXCAPS_BLTMIRRORUPDOWN No
DDFXCAPS_BLTROTATION No
DDFXCAPS_BLTROTATION90 No
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 No
dwCaps3 N/A
dwCaps4 N/A

DDSCAPS2.dwCaps

Bit Set Notes
DDSCAPS_3D N/A Unused
DDSCAPS_3DDEVICE No
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 No
DDSCAPS_MIPMAP No
DDSCAPS_MODEX No Bit is ignored
DDSCAPS_NONLOCALVIDMEM No
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 No
DDSCAPS_VIDEOMEMORY Yes Copied to system memory when locked.
DDSCAPS_VIDEOPORT No
DDSCAPS_VISIBLE No
DDSCAPS_WRITEONLY No
DDSCAPS_ZBUFFER No