1 /*==========================================================================; 2 * 3 * Copyright (C) Microsoft Corporation. All Rights Reserved. 4 * 5 * File: d3d9.h 6 * Content: Direct3D include file 7 * 8 ****************************************************************************/ 9 module win32.directx.d3d9; 10 version(Windows): 11 12 import win32.windows; 13 public import win32.directx.d3d9types; 14 public import win32.directx.d3d9caps; 15 16 const DIRECT3D_VERSION = 0x0900; 17 18 /**This identifier is passed to Direct3DCreate9 in order to ensure that an 19 * application was built against the correct header files. This number is 20 * incremented whenever a header (or other) change would require applications 21 * to be rebuilt. If the version doesn't match, Direct3DCreate9 will fail. 22 * (The number itself has no meaning.)*/ 23 24 debug { 25 const D3D_SDK_VERSION = (32 | 0x80000000); 26 const D3D9b_SDK_VERSION = (31 | 0x80000000); 27 } 28 else { 29 const D3D_SDK_VERSION = 32; 30 const D3D9b_SDK_VERSION = 31; 31 } 32 33 /* IID_IDirect3D9 */ 34 /* {81BDCBCA-64D4-426d-AE8D-AD0147F4275C} */ 35 extern (C) const GUID IID_IDirect3D9 = { 0x81bdcbca, 0x64d4, 0x426d, [0xae, 0x8d, 0xad, 0x1, 0x47, 0xf4, 0x27, 0x5c] }; 36 37 /* IID_IDirect3DDevice9 */ 38 // {D0223B96-BF7A-43fd-92BD-A43B0D82B9EB} */ 39 extern (C) const GUID IID_IDirect3DDevice9 = { 0xd0223b96, 0xbf7a, 0x43fd, [0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb] }; 40 41 /* IID_IDirect3DResource9 */ 42 // {05EEC05D-8F7D-4362-B999-D1BAF357C704} 43 extern (C) const GUID IID_IDirect3DResource9 = { 0x05eec05d, 0x8f7d, 0x4362, [0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x04] }; 44 45 /* IID_IDirect3DBaseTexture9 */ 46 /* {580CA87E-1D3C-4d54-991D-B7D3E3C298CE} */ 47 extern (C) const GUID IID_IDirect3DBaseTexture9 = { 0x580ca87e, 0x1d3c, 0x4d54, [0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce] }; 48 49 /* IID_IDirect3DTexture9 */ 50 /* {85C31227-3DE5-4f00-9B3A-F11AC38C18B5} */ 51 extern (C) const GUID IID_IDirect3DTexture9 = { 0x85c31227, 0x3de5, 0x4f00, [0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5] }; 52 53 /* IID_IDirect3DCubeTexture9 */ 54 /* {FFF32F81-D953-473a-9223-93D652ABA93F} */ 55 extern (C) const GUID IID_IDirect3DCubeTexture9 = { 0xfff32f81, 0xd953, 0x473a, [0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f] }; 56 57 /* IID_IDirect3DVolumeTexture9 */ 58 /* {2518526C-E789-4111-A7B9-47EF328D13E6} */ 59 extern (C) const GUID IID_IDirect3DVolumeTexture9 = { 0x2518526c, 0xe789, 0x4111, [0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6] }; 60 61 /* IID_IDirect3DVertexBuffer9 */ 62 /* {B64BB1B5-FD70-4df6-BF91-19D0A12455E3} */ 63 extern (C) const GUID IID_IDirect3DVertexBuffer9 = { 0xb64bb1b5, 0xfd70, 0x4df6, [0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3] }; 64 65 /* IID_IDirect3DIndexBuffer9 */ 66 /* {7C9DD65E-D3F7-4529-ACEE-785830ACDE35} */ 67 extern (C) const GUID IID_IDirect3DIndexBuffer9 = { 0x7c9dd65e, 0xd3f7, 0x4529, [0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35] }; 68 69 /* IID_IDirect3DSurface9 */ 70 /* {0CFBAF3A-9FF6-429a-99B3-A2796AF8B89B} */ 71 extern (C) const GUID IID_IDirect3DSurface9 = { 0xcfbaf3a, 0x9ff6, 0x429a, [0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b] }; 72 73 /* IID_IDirect3DVolume9 */ 74 /* {24F416E6-1F67-4aa7-B88E-D33F6F3128A1} */ 75 extern (C) const GUID IID_IDirect3DVolume9 = { 0x24f416e6, 0x1f67, 0x4aa7, [0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1] }; 76 77 /* IID_IDirect3DSwapChain9 */ 78 /* {794950F2-ADFC-458a-905E-10A10B0B503B} */ 79 extern (C) const GUID IID_IDirect3DSwapChain9 = { 0x794950f2, 0xadfc, 0x458a, [0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b] }; 80 81 /* IID_IDirect3DVertexDeclaration9 */ 82 /* {DD13C59C-36FA-4098-A8FB-C7ED39DC8546} */ 83 extern (C) const GUID IID_IDirect3DVertexDeclaration9 = { 0xdd13c59c, 0x36fa, 0x4098, [0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46] }; 84 85 /* IID_IDirect3DVertexShader9 */ 86 /* {EFC5557E-6265-4613-8A94-43857889EB36} */ 87 extern (C) const GUID IID_IDirect3DVertexShader9 = { 0xefc5557e, 0x6265, 0x4613, [0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36] }; 88 89 /* IID_IDirect3DPixelShader9 */ 90 /* {6D3BDBDC-5B02-4415-B852-CE5E8BCCB289} */ 91 extern (C) const GUID IID_IDirect3DPixelShader9 = { 0x6d3bdbdc, 0x5b02, 0x4415, [0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89] }; 92 93 /* IID_IDirect3DStateBlock9 */ 94 /* {B07C4FE5-310D-4ba8-A23C-4F0F206F218B} */ 95 extern (C) const GUID IID_IDirect3DStateBlock9 = { 0xb07c4fe5, 0x310d, 0x4ba8, [0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b] }; 96 97 /* IID_IDirect3DQuery9 */ 98 /* {d9771460-a695-4f26-bbd3-27b840b541cc} */ 99 extern (C) const GUID IID_IDirect3DQuery9 = { 0xd9771460, 0xa695, 0x4f26, [0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc] }; 100 101 102 /* IID_HelperName */ 103 /* {E4A36723-FDFE-4b22-B146-3C04C07F4CC8} */ 104 extern (C) const GUID IID_HelperName = { 0xe4a36723, 0xfdfe, 0x4b22, [0xb1, 0x46, 0x3c, 0x4, 0xc0, 0x7f, 0x4c, 0xc8] }; 105 106 /* IID_IDirect3D9Ex */ 107 /* {02177241-69FC-400C-8FF1-93A44DF6861D} */ 108 extern (C) const GUID IID_IDirect3D9Ex = { 0x02177241, 0x69FC, 0x400C, [0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D] }; 109 110 /* IID_IDirect3DDevice9Ex */ 111 // {B18B10CE-2649-405a-870F-95F777D4313A} 112 extern (C) const GUID IID_IDirect3DDevice9Ex = { 0xb18b10ce, 0x2649, 0x405a, [0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a] }; 113 114 /* IID_IDirect3DSwapChain9Ex */ 115 /* {91886CAF-1C3D-4d2e-A0AB-3E4C7D8D3303} */ 116 extern (C) const GUID IID_IDirect3DSwapChain9Ex = { 0x91886caf, 0x1c3d, 0x4d2e, [0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x03] }; 117 118 119 120 extern (C): 121 /** 122 * DLL Function for creating a Direct3D9 object. This object supports 123 * enumeration and allows the creation of Direct3DDevice9 objects. 124 * Pass the value of the constant D3D_SDK_VERSION to this function, so 125 * that the run-time can validate that your application was compiled 126 * against the right headers. 127 */ 128 129 extern (Windows) LPDIRECT3D9 Direct3DCreate9(UINT SDKVersion); 130 131 /** 132 * Stubs for graphics profiling. 133 */ 134 extern (Windows) int D3DPERF_BeginEvent( D3DCOLOR col, LPCWSTR wszName ); 135 extern (Windows) int D3DPERF_EndEvent(); 136 extern (Windows) void D3DPERF_SetMarker( D3DCOLOR col, LPCWSTR wszName ); 137 extern (Windows) void D3DPERF_SetRegion( D3DCOLOR col, LPCWSTR wszName ); 138 extern (Windows) BOOL D3DPERF_QueryRepeatFrame(); 139 140 extern (Windows) void D3DPERF_SetOptions( DWORD dwOptions ); 141 extern (Windows) DWORD D3DPERF_GetStatus(); 142 143 144 interface LPDIRECT3D9 : IUnknown 145 { 146 HRESULT RegisterSoftwareDevice(void* pInitializeFunction); 147 UINT GetAdapterCount(); 148 HRESULT GetAdapterIdentifier( UINT Adapter,DWORD Flags,D3DADAPTER_IDENTIFIER9* pIdentifier); 149 UINT GetAdapterModeCount(UINT Adapter,D3DFORMAT Format); 150 HRESULT EnumAdapterModes( UINT Adapter,D3DFORMAT Format,UINT Mode,D3DDISPLAYMODE* pMode); 151 HRESULT GetAdapterDisplayMode( UINT Adapter,D3DDISPLAYMODE* pMode); 152 HRESULT CheckDeviceType( UINT Adapter,D3DDEVTYPE DevType,D3DFORMAT AdapterFormat,D3DFORMAT BackBufferFormat,BOOL bWindowed); 153 HRESULT CheckDeviceFormat( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,DWORD Usage,D3DRESOURCETYPE RType,D3DFORMAT CheckFormat); 154 HRESULT CheckDeviceMultiSampleType( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SurfaceFormat,BOOL Windowed,D3DMULTISAMPLE_TYPE MultiSampleType,DWORD* pQualityLevels); 155 HRESULT CheckDepthStencilMatch( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT AdapterFormat,D3DFORMAT RenderTargetFormat,D3DFORMAT DepthStencilFormat); 156 HRESULT CheckDeviceFormatConversion( UINT Adapter,D3DDEVTYPE DeviceType,D3DFORMAT SourceFormat,D3DFORMAT TargetFormat); 157 HRESULT GetDeviceCaps( UINT Adapter,D3DDEVTYPE DeviceType,D3DCAPS9* pCaps); 158 HMONITOR GetAdapterMonitor(UINT Adapter); 159 HRESULT CreateDevice( UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,LPDIRECT3DDEVICE9* ppReturnedDeviceInterface); 160 /* 161 debug { 162 LPCWSTR Version; 163 } 164 */ 165 } 166 alias LPDIRECT3D9 IDirect3D9; 167 168 interface LPDIRECT3DDEVICE9 : IUnknown 169 { 170 HRESULT TestCooperativeLevel(); 171 UINT GetAvailableTextureMem(); 172 HRESULT EvictManagedResources(); 173 HRESULT GetDirect3D( LPDIRECT3D9* ppD3D9); 174 HRESULT GetDeviceCaps( D3DCAPS9* pCaps); 175 HRESULT GetDisplayMode( UINT iSwapChain,D3DDISPLAYMODE* pMode); 176 HRESULT GetCreationParameters( D3DDEVICE_CREATION_PARAMETERS *pParameters); 177 HRESULT SetCursorProperties( UINT XHotSpot,UINT YHotSpot,LPDIRECT3DSURFACE9 pCursorBitmap); 178 void SetCursorPosition(int X,int Y,DWORD Flags); 179 BOOL ShowCursor(BOOL bShow); 180 HRESULT CreateAdditionalSwapChain( D3DPRESENT_PARAMETERS* pPresentationParameters,LPDIRECT3DSWAPCHAIN9* pSwapChain); 181 HRESULT GetSwapChain( UINT iSwapChain,LPDIRECT3DSWAPCHAIN9* pSwapChain); 182 UINT GetNumberOfSwapChains(); 183 HRESULT Reset( D3DPRESENT_PARAMETERS* pPresentationParameters); 184 HRESULT Present(RECT* pSourceRect,RECT* pDestRect,HWND hDestWindowOverride, RGNDATA* pDirtyRegion); 185 HRESULT GetBackBuffer( UINT iSwapChain,UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,LPDIRECT3DSURFACE9* ppBackBuffer); 186 HRESULT GetRasterStatus( UINT iSwapChain,D3DRASTER_STATUS* pRasterStatus); 187 HRESULT SetDialogBoxMode( BOOL bEnableDialogs); 188 void SetGammaRamp(UINT iSwapChain,DWORD Flags, D3DGAMMARAMP* pRamp); 189 void GetGammaRamp(UINT iSwapChain,D3DGAMMARAMP* pRamp); 190 HRESULT CreateTexture( UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DTEXTURE9* ppTexture,HANDLE* pSharedHandle); 191 HRESULT CreateVolumeTexture( UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DVOLUMETEXTURE9* ppVolumeTexture,HANDLE* pSharedHandle); 192 HRESULT CreateCubeTexture( UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DCUBETEXTURE9* ppCubeTexture,HANDLE* pSharedHandle); 193 HRESULT CreateVertexBuffer( UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,LPDIRECT3DVERTEXBUFFER9* ppVertexBuffer,HANDLE* pSharedHandle); 194 HRESULT CreateIndexBuffer( UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DINDEXBUFFER9* ppIndexBuffer,HANDLE* pSharedHandle); 195 HRESULT CreateRenderTarget( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle); 196 HRESULT CreateDepthStencilSurface( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle); 197 HRESULT UpdateSurface( LPDIRECT3DSURFACE9 pSourceSurface, RECT* pSourceRect,LPDIRECT3DSURFACE9 pDestinationSurface, POINT* pDestPoint); 198 HRESULT UpdateTexture( LPDIRECT3DBASETEXTURE9 pSourceTexture,LPDIRECT3DBASETEXTURE9 pDestinationTexture); 199 HRESULT GetRenderTargetData( LPDIRECT3DSURFACE9 pRenderTarget,LPDIRECT3DSURFACE9 pDestSurface); 200 HRESULT GetFrontBufferData( UINT iSwapChain,LPDIRECT3DSURFACE9 pDestSurface); 201 HRESULT StretchRect( LPDIRECT3DSURFACE9 pSourceSurface, RECT* pSourceRect,LPDIRECT3DSURFACE9 pDestSurface, RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter); 202 HRESULT ColorFill( LPDIRECT3DSURFACE9 pSurface, RECT* pRect,D3DCOLOR color); 203 HRESULT CreateOffscreenPlainSurface( UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle); 204 HRESULT SetRenderTarget( DWORD RenderTargetIndex,LPDIRECT3DSURFACE9 pRenderTarget); 205 HRESULT GetRenderTarget( DWORD RenderTargetIndex,LPDIRECT3DSURFACE9* ppRenderTarget); 206 HRESULT SetDepthStencilSurface( LPDIRECT3DSURFACE9 pNewZStencil); 207 HRESULT GetDepthStencilSurface( LPDIRECT3DSURFACE9* ppZStencilSurface); 208 HRESULT BeginScene(); 209 HRESULT EndScene(); 210 HRESULT Clear( DWORD Count, D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil); 211 HRESULT SetTransform( D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix); 212 HRESULT GetTransform( D3DTRANSFORMSTATETYPE State,D3DMATRIX* pMatrix); 213 HRESULT MultiplyTransform( D3DTRANSFORMSTATETYPE, D3DMATRIX*); 214 HRESULT SetViewport( D3DVIEWPORT9* pViewport); 215 HRESULT GetViewport( D3DVIEWPORT9* pViewport); 216 HRESULT SetMaterial( D3DMATERIAL9* pMaterial); 217 HRESULT GetMaterial( D3DMATERIAL9* pMaterial); 218 HRESULT SetLight( DWORD Index, D3DLIGHT9*); 219 HRESULT GetLight( DWORD Index,D3DLIGHT9*); 220 HRESULT LightEnable( DWORD Index,BOOL Enable); 221 HRESULT GetLightEnable( DWORD Index,BOOL* pEnable); 222 HRESULT SetClipPlane( DWORD Index, float* pPlane); 223 HRESULT GetClipPlane( DWORD Index,float* pPlane); 224 HRESULT SetRenderState( D3DRENDERSTATETYPE State,DWORD Value); 225 HRESULT GetRenderState( D3DRENDERSTATETYPE State,DWORD* pValue); 226 HRESULT CreateStateBlock( D3DSTATEBLOCKTYPE Type,LPDIRECT3DSTATEBLOCK9* ppSB); 227 HRESULT BeginStateBlock(); 228 HRESULT EndStateBlock( LPDIRECT3DSTATEBLOCK9* ppSB); 229 HRESULT SetClipStatus( D3DCLIPSTATUS9* pClipStatus); 230 HRESULT GetClipStatus( D3DCLIPSTATUS9* pClipStatus); 231 HRESULT GetTexture( DWORD Stage,LPDIRECT3DBASETEXTURE9* ppTexture); 232 HRESULT SetTexture( DWORD Stage,LPDIRECT3DBASETEXTURE9 pTexture); 233 HRESULT GetTextureStageState( DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue); 234 HRESULT SetTextureStageState( DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value); 235 HRESULT GetSamplerState( DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD* pValue); 236 HRESULT SetSamplerState( DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD Value); 237 HRESULT ValidateDevice( DWORD* pNumPasses); 238 HRESULT SetPaletteEntries( UINT PaletteNumber, PALETTEENTRY* pEntries); 239 HRESULT GetPaletteEntries( UINT PaletteNumber,PALETTEENTRY* pEntries); 240 HRESULT SetCurrentTexturePalette( UINT PaletteNumber); 241 HRESULT GetCurrentTexturePalette( UINT *PaletteNumber); 242 HRESULT SetScissorRect( RECT* pRect); 243 HRESULT GetScissorRect( RECT* pRect); 244 HRESULT SetSoftwareVertexProcessing( BOOL bSoftware); 245 BOOL GetSoftwareVertexProcessing(); 246 HRESULT SetNPatchMode( float nSegments); 247 float GetNPatchMode(); 248 HRESULT DrawPrimitive( D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount); 249 HRESULT DrawIndexedPrimitive( D3DPRIMITIVETYPE,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount); 250 HRESULT DrawPrimitiveUP( D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount, void* pVertexStreamZeroData,UINT VertexStreamZeroStride); 251 HRESULT DrawIndexedPrimitiveUP( D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertices,UINT PrimitiveCount, void* pIndexData,D3DFORMAT IndexDataFormat, void* pVertexStreamZeroData,UINT VertexStreamZeroStride); 252 HRESULT ProcessVertices( UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,LPDIRECT3DVERTEXBUFFER9 pDestBuffer,LPDIRECT3DVERTEXDECLARATION9 pVertexDecl,DWORD Flags); 253 HRESULT CreateVertexDeclaration( D3DVERTEXELEMENT9* pVertexElements,LPDIRECT3DVERTEXDECLARATION9* ppDecl); 254 HRESULT SetVertexDeclaration(LPDIRECT3DVERTEXDECLARATION9 pDecl); 255 HRESULT GetVertexDeclaration(LPDIRECT3DVERTEXDECLARATION9* ppDecl); 256 HRESULT SetFVF( DWORD FVF); 257 HRESULT GetFVF( DWORD* pFVF); 258 HRESULT CreateVertexShader( DWORD* pFunction,LPDIRECT3DVERTEXSHADER9* ppShader); 259 HRESULT SetVertexShader( LPDIRECT3DVERTEXSHADER9 pShader); 260 HRESULT GetVertexShader( LPDIRECT3DVERTEXSHADER9* ppShader); 261 HRESULT SetVertexShaderConstantF( UINT StartRegister, float* pConstantData,UINT Vector4fCount); 262 HRESULT GetVertexShaderConstantF( UINT StartRegister,float* pConstantData,UINT Vector4fCount); 263 HRESULT SetVertexShaderConstantI( UINT StartRegister, int* pConstantData,UINT Vector4iCount); 264 HRESULT GetVertexShaderConstantI( UINT StartRegister,int* pConstantData,UINT Vector4iCount); 265 HRESULT SetVertexShaderConstantB( UINT StartRegister, BOOL* pConstantData,UINT BoolCount); 266 HRESULT GetVertexShaderConstantB( UINT StartRegister,BOOL* pConstantData,UINT BoolCount); 267 HRESULT SetStreamSource( UINT StreamNumber,LPDIRECT3DVERTEXBUFFER9 pStreamData,UINT OffsetInBytes,UINT Stride); 268 HRESULT GetStreamSource( UINT StreamNumber,LPDIRECT3DVERTEXBUFFER9* ppStreamData,UINT* pOffsetInBytes,UINT* pStride); 269 HRESULT SetStreamSourceFreq( UINT StreamNumber,UINT Setting); 270 HRESULT GetStreamSourceFreq( UINT StreamNumber,UINT* pSetting); 271 HRESULT SetIndices( LPDIRECT3DINDEXBUFFER9 pIndexData); 272 HRESULT GetIndices( LPDIRECT3DINDEXBUFFER9* ppIndexData); 273 HRESULT CreatePixelShader( DWORD* pFunction,LPDIRECT3DPIXELSHADER9* ppShader); 274 HRESULT SetPixelShader(LPDIRECT3DPIXELSHADER9 pShader); 275 HRESULT GetPixelShader(LPDIRECT3DPIXELSHADER9* ppShader); 276 HRESULT SetPixelShaderConstantF( UINT StartRegister, float* pConstantData,UINT Vector4fCount); 277 HRESULT GetPixelShaderConstantF( UINT StartRegister,float* pConstantData,UINT Vector4fCount); 278 HRESULT SetPixelShaderConstantI( UINT StartRegister, int* pConstantData,UINT Vector4iCount); 279 HRESULT GetPixelShaderConstantI( UINT StartRegister,int* pConstantData,UINT Vector4iCount); 280 HRESULT SetPixelShaderConstantB( UINT StartRegister, BOOL* pConstantData,UINT BoolCount); 281 HRESULT GetPixelShaderConstantB( UINT StartRegister,BOOL* pConstantData,UINT BoolCount); 282 HRESULT DrawRectPatch( UINT Handle, float* pNumSegs, D3DRECTPATCH_INFO* pRectPatchInfo); 283 HRESULT DrawTriPatch( UINT Handle, float* pNumSegs, D3DTRIPATCH_INFO* pTriPatchInfo); 284 HRESULT DeletePatch( UINT Handle); 285 HRESULT CreateQuery( D3DQUERYTYPE Type,LPDIRECT3DQUERY9* ppQuery); 286 /* 287 debug { 288 D3DDEVICE_CREATION_PARAMETERS CreationParameters; 289 D3DPRESENT_PARAMETERS PresentParameters; 290 D3DDISPLAYMODE DisplayMode; 291 D3DCAPS9 Caps; 292 293 UINT AvailableTextureMem; 294 UINT SwapChains; 295 UINT Textures; 296 UINT VertexBuffers; 297 UINT IndexBuffers; 298 UINT VertexShaders; 299 UINT PixelShaders; 300 301 D3DVIEWPORT9 Viewport; 302 D3DMATRIX ProjectionMatrix; 303 D3DMATRIX ViewMatrix; 304 D3DMATRIX WorldMatrix; 305 D3DMATRIX[8] TextureMatrices; 306 307 DWORD FVF; 308 UINT VertexSize; 309 DWORD VertexShaderVersion; 310 DWORD PixelShaderVersion; 311 BOOL SoftwareVertexProcessing; 312 313 D3DMATERIAL9 Material; 314 D3DLIGHT9[16] Lights; 315 BOOL[16] LightsEnabled; 316 317 D3DGAMMARAMP GammaRamp; 318 RECT ScissorRect; 319 BOOL DialogBoxMode; 320 } 321 */ 322 } 323 324 alias LPDIRECT3DDEVICE9 IDirect3DDevice9; 325 326 327 interface LPDIRECT3DSTATEBLOCK9 : IUnknown 328 { 329 HRESULT GetDevice(LPDIRECT3DDEVICE9* ppDevice); 330 HRESULT Capture(); 331 HRESULT Apply(); 332 /* 333 debug { 334 LPCWSTR CreationCallStack; 335 } 336 */ 337 } 338 339 alias LPDIRECT3DSTATEBLOCK9 IDirect3DStateBlock9; 340 341 interface LPDIRECT3DSWAPCHAIN9 : IUnknown 342 { 343 HRESULT Present( RECT* pSourceRect, RECT* pDestRect,HWND hDestWindowOverride, RGNDATA* pDirtyRegion,DWORD dwFlags); 344 HRESULT GetFrontBufferData( LPDIRECT3DSURFACE9 pDestSurface); 345 HRESULT GetBackBuffer( UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,LPDIRECT3DSURFACE9* ppBackBuffer); 346 HRESULT GetRasterStatus( D3DRASTER_STATUS* pRasterStatus); 347 HRESULT GetDisplayMode( D3DDISPLAYMODE* pMode); 348 HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); 349 HRESULT GetPresentParameters( D3DPRESENT_PARAMETERS* pPresentationParameters); 350 /* 351 debug { 352 D3DPRESENT_PARAMETERS PresentParameters; 353 D3DDISPLAYMODE DisplayMode; 354 LPCWSTR CreationCallStack; 355 } 356 */ 357 } 358 359 alias LPDIRECT3DSWAPCHAIN9 IDirect3DSwapChain9; 360 361 interface LPDIRECT3DRESOURCE9 : IUnknown 362 { 363 HRESULT GetDevice( LPDIRECT3DDEVICE9* ppDevice); 364 HRESULT SetPrivateData( REFGUID refguid, void* pData,DWORD SizeOfData,DWORD Flags); 365 HRESULT GetPrivateData( REFGUID refguid,void* pData,DWORD* pSizeOfData); 366 HRESULT FreePrivateData( REFGUID refguid); 367 DWORD SetPriority(DWORD PriorityNew); 368 DWORD GetPriority(); 369 void PreLoad(); 370 D3DRESOURCETYPE GetType(); 371 } 372 373 alias LPDIRECT3DRESOURCE9 IDirect3DResource9; 374 375 interface LPDIRECT3DVERTEXDECLARATION9 : IUnknown 376 { 377 HRESULT GetDevice( LPDIRECT3DDEVICE9* ppDevice); 378 HRESULT GetDeclaration( D3DVERTEXELEMENT9* pElement,UINT* pNumElements); 379 /* 380 debug { 381 LPCWSTR CreationCallStack; 382 } 383 */ 384 } 385 386 alias LPDIRECT3DVERTEXDECLARATION9 IDirect3DVertexDeclaration9; 387 388 interface LPDIRECT3DVERTEXSHADER9 : IUnknown 389 { 390 HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); 391 HRESULT GetFunction( void*,UINT* pSizeOfData); 392 /* 393 debug { 394 DWORD Version; 395 LPCWSTR CreationCallStack; 396 } 397 */ 398 } 399 400 alias LPDIRECT3DVERTEXSHADER9 IDirect3DVertexShader9; 401 402 interface LPDIRECT3DPIXELSHADER9 : IUnknown 403 { 404 HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); 405 HRESULT GetFunction( void*,UINT* pSizeOfData); 406 /* 407 debug { 408 DWORD Version; 409 LPCWSTR CreationCallStack; 410 } 411 */ 412 } 413 414 alias LPDIRECT3DPIXELSHADER9 IDirect3DPixelShader9; 415 416 interface LPDIRECT3DBASETEXTURE9 : LPDIRECT3DRESOURCE9 417 { 418 DWORD SetLOD(DWORD LODNew); 419 DWORD GetLOD(); 420 DWORD GetLevelCount(); 421 HRESULT SetAutoGenFilterType( D3DTEXTUREFILTERTYPE FilterType); 422 D3DTEXTUREFILTERTYPE GetAutoGenFilterType(); 423 void GenerateMipSubLevels(); 424 } 425 426 alias LPDIRECT3DBASETEXTURE9 IDirect3DBaseTexture9; 427 428 interface LPDIRECT3DTEXTURE9 : LPDIRECT3DBASETEXTURE9 429 { 430 HRESULT GetLevelDesc( UINT Level,D3DSURFACE_DESC *pDesc); 431 HRESULT GetSurfaceLevel( UINT Level,LPDIRECT3DSURFACE9* ppSurfaceLevel); 432 HRESULT LockRect( UINT Level,D3DLOCKED_RECT* pLockedRect,RECT* pRect,DWORD Flags); 433 HRESULT UnlockRect( UINT Level); 434 HRESULT AddDirtyRect(RECT* pDirtyRect); 435 /* 436 debug { 437 LPCWSTR Name; 438 UINT Width; 439 UINT Height; 440 UINT Levels; 441 DWORD Usage; 442 D3DFORMAT Format; 443 D3DPOOL Pool; 444 DWORD Priority; 445 DWORD LOD; 446 D3DTEXTUREFILTERTYPE FilterType; 447 UINT LockCount; 448 LPCWSTR CreationCallStack; 449 } 450 */ 451 } 452 453 alias LPDIRECT3DTEXTURE9 IDirect3DTexture9; 454 455 interface LPDIRECT3DVOLUMETEXTURE9 : LPDIRECT3DBASETEXTURE9 456 { 457 HRESULT GetLevelDesc( UINT Level,D3DVOLUME_DESC *pDesc); 458 HRESULT GetVolumeLevel( UINT Level,LPDIRECT3DVOLUME9* ppVolumeLevel); 459 HRESULT LockBox( UINT Level,D3DLOCKED_BOX* pLockedVolume, D3DBOX* pBox,DWORD Flags); 460 HRESULT UnlockBox( UINT Level); 461 HRESULT AddDirtyBox( D3DBOX* pDirtyBox); 462 /* 463 debug { 464 LPCWSTR Name; 465 UINT Width; 466 UINT Height; 467 UINT Depth; 468 UINT Levels; 469 DWORD Usage; 470 D3DFORMAT Format; 471 D3DPOOL Pool; 472 DWORD Priority; 473 DWORD LOD; 474 D3DTEXTUREFILTERTYPE FilterType; 475 UINT LockCount; 476 LPCWSTR CreationCallStack; 477 } 478 */ 479 } 480 481 alias LPDIRECT3DVOLUMETEXTURE9 IDirect3DVolumeTexture9; 482 483 interface LPDIRECT3DCUBETEXTURE9 : LPDIRECT3DBASETEXTURE9 484 { 485 HRESULT GetLevelDesc( UINT Level,D3DSURFACE_DESC *pDesc); 486 HRESULT GetCubeMapSurface( D3DCUBEMAP_FACES FaceType,UINT Level,LPDIRECT3DSURFACE9* ppCubeMapSurface); 487 HRESULT LockRect( D3DCUBEMAP_FACES FaceType,UINT Level,D3DLOCKED_RECT* pLockedRect, RECT* pRect,DWORD Flags); 488 HRESULT UnlockRect( D3DCUBEMAP_FACES FaceType,UINT Level); 489 HRESULT AddDirtyRect( D3DCUBEMAP_FACES FaceType, RECT* pDirtyRect); 490 /* 491 debug { 492 LPCWSTR Name; 493 UINT Width; 494 UINT Height; 495 UINT Levels; 496 DWORD Usage; 497 D3DFORMAT Format; 498 D3DPOOL Pool; 499 DWORD Priority; 500 DWORD LOD; 501 D3DTEXTUREFILTERTYPE FilterType; 502 UINT LockCount; 503 LPCWSTR CreationCallStack; 504 } 505 */ 506 } 507 508 alias LPDIRECT3DCUBETEXTURE9 IDirect3DCubeTexture9; 509 510 interface LPDIRECT3DVERTEXBUFFER9 : LPDIRECT3DRESOURCE9 511 { 512 HRESULT Lock( UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags); 513 HRESULT Unlock(); 514 HRESULT GetDesc( D3DVERTEXBUFFER_DESC *pDesc); 515 /* 516 debug { 517 LPCWSTR Name; 518 UINT Length; 519 DWORD Usage; 520 DWORD FVF; 521 D3DPOOL Pool; 522 DWORD Priority; 523 UINT LockCount; 524 LPCWSTR CreationCallStack; 525 } 526 */ 527 } 528 529 alias LPDIRECT3DVERTEXBUFFER9 IDirect3DVertexBuffer9; 530 531 interface LPDIRECT3DINDEXBUFFER9 : LPDIRECT3DRESOURCE9 532 { 533 HRESULT Lock( UINT OffsetToLock,UINT SizeToLock,void** ppbData,DWORD Flags); 534 HRESULT Unlock(); 535 HRESULT GetDesc( D3DINDEXBUFFER_DESC *pDesc); 536 /* 537 debug { 538 LPCWSTR Name; 539 UINT Length; 540 DWORD Usage; 541 D3DFORMAT Format; 542 D3DPOOL Pool; 543 DWORD Priority; 544 UINT LockCount; 545 LPCWSTR CreationCallStack; 546 } 547 */ 548 } 549 550 alias LPDIRECT3DINDEXBUFFER9 IDirect3DIndexBuffer9; 551 552 interface LPDIRECT3DSURFACE9 : LPDIRECT3DRESOURCE9 553 { 554 HRESULT GetContainer( REFIID riid,void** ppContainer); 555 HRESULT GetDesc( D3DSURFACE_DESC *pDesc); 556 HRESULT LockRect( D3DLOCKED_RECT* pLockedRect, RECT* pRect,DWORD Flags); 557 HRESULT UnlockRect(); 558 HRESULT GetDC( HDC *phdc); 559 HRESULT ReleaseDC( HDC hdc); 560 /* 561 debug { 562 LPCWSTR Name; 563 UINT Width; 564 UINT Height; 565 DWORD Usage; 566 D3DFORMAT Format; 567 D3DPOOL Pool; 568 D3DMULTISAMPLE_TYPE MultiSampleType; 569 DWORD MultiSampleQuality; 570 DWORD Priority; 571 UINT LockCount; 572 UINT DCCount; 573 LPCWSTR CreationCallStack; 574 } 575 */ 576 } 577 578 alias LPDIRECT3DSURFACE9 IDirect3DSurface9; 579 580 interface LPDIRECT3DVOLUME9 : IUnknown 581 { 582 HRESULT GetDevice( LPDIRECT3DDEVICE9 * ppDevice); 583 HRESULT SetPrivateData( REFGUID refguid, void* pData,DWORD SizeOfData,DWORD Flags); 584 HRESULT GetPrivateData( REFGUID refguid,void* pData,DWORD* pSizeOfData); 585 HRESULT FreePrivateData( REFGUID refguid); 586 HRESULT GetContainer( REFIID riid,void** ppContainer); 587 HRESULT GetDesc( D3DVOLUME_DESC *pDesc); 588 HRESULT LockBox( D3DLOCKED_BOX * pLockedVolume, D3DBOX* pBox,DWORD Flags); 589 HRESULT UnlockBox(); 590 /* 591 debug { 592 LPCWSTR Name; 593 UINT Width; 594 UINT Height; 595 UINT Depth; 596 DWORD Usage; 597 D3DFORMAT Format; 598 D3DPOOL Pool; 599 UINT LockCount; 600 LPCWSTR CreationCallStack; 601 } 602 */ 603 } 604 605 alias LPDIRECT3DVOLUME9 IDirect3DVolume9; 606 607 interface LPDIRECT3DQUERY9 : IUnknown 608 { 609 HRESULT GetDevice( LPDIRECT3DDEVICE9* ppDevice); 610 D3DQUERYTYPE GetType(); 611 DWORD GetDataSize(); 612 HRESULT Issue( DWORD dwIssueFlags); 613 HRESULT GetData( void* pData,DWORD dwSize,DWORD dwGetDataFlags); 614 /* 615 debug { 616 D3DQUERYTYPE Type; 617 DWORD DataSize; 618 LPCWSTR CreationCallStack; 619 } 620 */ 621 } 622 623 alias LPDIRECT3DQUERY9 IDirect3DQuery9; 624 625 /**************************************************************************** 626 * Flags for SetPrivateData method on all D3D9 interfaces 627 * 628 * The passed pointer is an IUnknown ptr. The SizeOfData argument to SetPrivateData 629 * must be set to sizeof(IUnknown*). Direct3D will call AddRef through this 630 * pointer and Release when the private data is destroyed. The data will be 631 * destroyed when another SetPrivateData with the same GUID is set, when 632 * FreePrivateData is called, or when the D3D9 object is freed. 633 ****************************************************************************/ 634 const D3DSPD_IUNKNOWN = 0x00000001L; 635 636 /**************************************************************************** 637 * 638 * Flags for IDirect3D9::CreateDevice's BehaviorFlags 639 * 640 ****************************************************************************/ 641 642 const D3DCREATE_FPU_PRESERVE = 0x00000002L; 643 const D3DCREATE_MULTITHREADED = 0x00000004L; 644 645 const D3DCREATE_PUREDEVICE = 0x00000010L; 646 const D3DCREATE_SOFTWARE_VERTEXPROCESSING = 0x00000020L; 647 const D3DCREATE_HARDWARE_VERTEXPROCESSING = 0x00000040L; 648 const D3DCREATE_MIXED_VERTEXPROCESSING = 0x00000080L; 649 650 const D3DCREATE_DISABLE_DRIVER_MANAGEMENT = 0x00000100L; 651 const D3DCREATE_ADAPTERGROUP_DEVICE = 0x00000200L; 652 const D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX = 0x00000400L; 653 654 // This flag causes the D3D runtime not to alter the focus 655 // window in any way. Use with caution- the burden of supporting 656 // focus management events (alt-tab, etc.) falls on the 657 // application, and appropriate responses (switching display 658 // mode, etc.) should be coded. 659 const D3DCREATE_NOWINDOWCHANGES = 0x00000800L; 660 661 // Disable multithreading for software vertex processing 662 const D3DCREATE_DISABLE_PSGP_THREADING = 0x00002000L; 663 // This flag enables present statistics on device. 664 const D3DCREATE_ENABLE_PRESENTSTATS = 0x00004000L; 665 // This flag disables printscreen support in the runtime for this device 666 const D3DCREATE_DISABLE_PRINTSCREEN = 0x00008000L; 667 668 const D3DCREATE_SCREENSAVER = 0x10000000L; 669 670 671 /**************************************************************************** 672 * 673 * Parameter for IDirect3D9::CreateDevice's Adapter argument 674 * 675 ****************************************************************************/ 676 677 const D3DADAPTER_DEFAULT = 0; 678 679 /**************************************************************************** 680 * 681 * Flags for IDirect3D9::EnumAdapters 682 * 683 ****************************************************************************/ 684 685 /* 686 * The D3DENUM_WHQL_LEVEL value has been retired for 9Ex and future versions, 687 * but it needs to be defined here for compatibility with DX9 and earlier versions. 688 * See the DirectX SDK for sample code on discovering driver signatures. 689 */ 690 const D3DENUM_WHQL_LEVEL = 0x00000002L; 691 692 /* NO_DRIVERVERSION will not fill out the DriverVersion field, nor will the 693 DriverVersion be incorporated into the DeviceIdentifier GUID. WINNT only */ 694 const D3DENUM_NO_DRIVERVERSION = 0x00000004L; 695 696 697 /**************************************************************************** 698 * 699 * Maximum number of back-buffers supported in DX9 700 * 701 ****************************************************************************/ 702 703 const D3DPRESENT_BACK_BUFFERS_MAX = 3L; 704 705 /**************************************************************************** 706 * 707 * Maximum number of back-buffers supported when apps use CreateDeviceEx 708 * 709 ****************************************************************************/ 710 const D3DPRESENT_BACK_BUFFERS_MAX_EX = 30L; 711 712 /**************************************************************************** 713 * 714 * Flags for IDirect3DDevice9::SetGammaRamp 715 * 716 ****************************************************************************/ 717 718 const D3DSGR_NO_CALIBRATION = 0x00000000L; 719 const D3DSGR_CALIBRATE = 0x00000001L; 720 721 /**************************************************************************** 722 * 723 * Flags for IDirect3DDevice9::SetCursorPosition 724 * 725 ****************************************************************************/ 726 727 const D3DCURSOR_IMMEDIATE_UPDATE = 0x00000001L; 728 729 /**************************************************************************** 730 * 731 * Flags for IDirect3DSwapChain9::Present 732 * 733 ****************************************************************************/ 734 735 const D3DPRESENT_DONOTWAIT = 0x00000001L; 736 const D3DPRESENT_LINEAR_CONTENT = 0x00000002L; 737 const D3DPRESENT_DONOTFLIP = 0x00000004L; 738 const D3DPRESENT_FLIPRESTART = 0x00000008L; 739 const D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR = 0x00000010L; 740 741 /**************************************************************************** 742 * 743 * Flags for DrawPrimitive/DrawIndexedPrimitive 744 * Also valid for Begin/BeginIndexed 745 * Also valid for VertexBuffer::CreateVertexBuffer 746 ****************************************************************************/ 747 748 749 /* 750 * DirectDraw error codes 751 */ 752 const _FACD3D = 0x876; 753 HRESULT MAKE_D3DHRESULT(T)(T code) { return MAKE_HRESULT( 1, _FACD3D, code ); } 754 HRESULT MAKE_D3DSTATUS(T)(T code) { return MAKE_HRESULT( 0, _FACD3D, code ); } 755 756 /* 757 * Direct3D Errors 758 */ 759 const HRESULT D3D_OK = S_OK; 760 761 const HRESULT D3DERR_WRONGTEXTUREFORMAT = MAKE_D3DHRESULT(2072); 762 const HRESULT D3DERR_UNSUPPORTEDCOLOROPERATION = MAKE_D3DHRESULT(2073); 763 const HRESULT D3DERR_UNSUPPORTEDCOLORARG = MAKE_D3DHRESULT(2074); 764 const HRESULT D3DERR_UNSUPPORTEDALPHAOPERATION = MAKE_D3DHRESULT(2075); 765 const HRESULT D3DERR_UNSUPPORTEDALPHAARG = MAKE_D3DHRESULT(2076); 766 const HRESULT D3DERR_TOOMANYOPERATIONS = MAKE_D3DHRESULT(2077); 767 const HRESULT D3DERR_CONFLICTINGTEXTUREFILTER = MAKE_D3DHRESULT(2078); 768 const HRESULT D3DERR_UNSUPPORTEDFACTORVALUE = MAKE_D3DHRESULT(2079); 769 const HRESULT D3DERR_CONFLICTINGRENDERSTATE = MAKE_D3DHRESULT(2081); 770 const HRESULT D3DERR_UNSUPPORTEDTEXTUREFILTER = MAKE_D3DHRESULT(2082); 771 const HRESULT D3DERR_CONFLICTINGTEXTUREPALETTE = MAKE_D3DHRESULT(2086); 772 const HRESULT D3DERR_DRIVERINTERNALERROR = MAKE_D3DHRESULT(2087); 773 774 const HRESULT D3DERR_NOTFOUND = MAKE_D3DHRESULT(2150); 775 const HRESULT D3DERR_MOREDATA = MAKE_D3DHRESULT(2151); 776 const HRESULT D3DERR_DEVICELOST = MAKE_D3DHRESULT(2152); 777 const HRESULT D3DERR_DEVICENOTRESET = MAKE_D3DHRESULT(2153); 778 const HRESULT D3DERR_NOTAVAILABLE = MAKE_D3DHRESULT(2154); 779 const HRESULT D3DERR_OUTOFVIDEOMEMORY = MAKE_D3DHRESULT(380); 780 const HRESULT D3DERR_INVALIDDEVICE = MAKE_D3DHRESULT(2155); 781 const HRESULT D3DERR_INVALIDCALL = MAKE_D3DHRESULT(2156); 782 const HRESULT D3DERR_DRIVERINVALIDCALL = MAKE_D3DHRESULT(2157); 783 const HRESULT D3DERR_WASSTILLDRAWING = MAKE_D3DHRESULT(540); 784 const HRESULT D3DOK_NOAUTOGEN = MAKE_D3DSTATUS(2159); 785 const HRESULT D3DERR_DEVICEREMOVED = MAKE_D3DHRESULT(2160); 786 const HRESULT S_NOT_RESIDENT = MAKE_D3DSTATUS(2165); 787 const HRESULT S_RESIDENT_IN_SHARED_MEMORY = MAKE_D3DSTATUS(2166); 788 const HRESULT S_PRESENT_MODE_CHANGED = MAKE_D3DSTATUS(2167); 789 const HRESULT S_PRESENT_OCCLUDED = MAKE_D3DSTATUS(2168); 790 const HRESULT D3DERR_DEVICEHUNG = MAKE_D3DHRESULT(2164); 791 792 793 /********************* 794 /* D3D9Ex interfaces 795 /*********************/ 796 797 extern (Windows) HRESULT Direct3DCreate9Ex(UINT SDKVersion, LPDIRECT3D9EX*); 798 799 interface LPDIRECT3D9EX : LPDIRECT3D9 800 { 801 UINT GetAdapterModeCountEx(UINT Adapter, D3DDISPLAYMODEFILTER* pFilter ); 802 HRESULT EnumAdapterModesEx( UINT Adapter, D3DDISPLAYMODEFILTER* pFilter,UINT Mode,D3DDISPLAYMODEEX* pMode); 803 HRESULT GetAdapterDisplayModeEx( UINT Adapter,D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation); 804 HRESULT CreateDeviceEx( UINT Adapter,D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS* pPresentationParameters,D3DDISPLAYMODEEX* pFullscreenDisplayMode,LPDIRECT3DDEVICE9EX* ppReturnedDeviceInterface); 805 HRESULT GetAdapterLUID( UINT Adapter,LUID * pLUID); 806 } 807 808 alias LPDIRECT3D9EX IDirect3D9Ex; 809 810 interface LPDIRECT3DDEVICE9EX : LPDIRECT3DDEVICE9 811 { 812 HRESULT SetConvolutionMonoKernel( UINT width,UINT height,float* rows,float* columns); 813 HRESULT ComposeRects( LPDIRECT3DSURFACE9 pSrc,LPDIRECT3DSURFACE9 pDst,LPDIRECT3DVERTEXBUFFER9 pSrcRectDescs,UINT NumRects,LPDIRECT3DVERTEXBUFFER9 pDstRectDescs,D3DCOMPOSERECTSOP Operation,int Xoffset,int Yoffset); 814 HRESULT PresentEx( RECT* pSourceRect, RECT* pDestRect,HWND hDestWindowOverride, RGNDATA* pDirtyRegion,DWORD dwFlags); 815 HRESULT GetGPUThreadPriority( INT* pPriority); 816 HRESULT SetGPUThreadPriority( INT Priority); 817 HRESULT WaitForVBlank( UINT iSwapChain); 818 HRESULT CheckResourceResidency( LPDIRECT3DRESOURCE9* pResourceArray,UINT32 NumResources); 819 HRESULT SetMaximumFrameLatency( UINT MaxLatency); 820 HRESULT GetMaximumFrameLatency( UINT* pMaxLatency); 821 HRESULT CheckDeviceState( HWND hDestinationWindow); 822 HRESULT CreateRenderTargetEx( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle,DWORD Usage); 823 HRESULT CreateOffscreenPlainSurfaceEx( UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle,DWORD Usage); 824 HRESULT CreateDepthStencilSurfaceEx( UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,LPDIRECT3DSURFACE9* ppSurface,HANDLE* pSharedHandle,DWORD Usage); 825 HRESULT ResetEx( D3DPRESENT_PARAMETERS* pPresentationParameters,D3DDISPLAYMODEEX *pFullscreenDisplayMode); 826 HRESULT GetDisplayModeEx( UINT iSwapChain,D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation); 827 } 828 829 alias LPDIRECT3DDEVICE9EX IDirect3DDevice9Ex; 830 831 interface LPDIRECT3DSWAPCHAIN9EX : LPDIRECT3DSWAPCHAIN9 832 { 833 HRESULT GetLastPresentCount( UINT* pLastPresentCount); 834 HRESULT GetPresentStats( D3DPRESENTSTATS* pPresentationStatistics); 835 HRESULT GetDisplayModeEx( D3DDISPLAYMODEEX* pMode,D3DDISPLAYROTATION* pRotation); 836 } 837 838 alias LPDIRECT3DSWAPCHAIN9EX IDirect3DSwapChain9Ex;