| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. |
| // All files in the project carrying such notice may not be copied, modified, or distributed |
| // except according to those terms. |
| //! Direct3D include file |
| use shared::basetsd::UINT32; |
| use shared::d3d9caps::{D3DCAPS9, D3DCONTENTPROTECTIONCAPS, D3DOVERLAYCAPS}; |
| use shared::d3d9types::{ |
| D3DADAPTER_IDENTIFIER9, D3DAUTHENTICATEDCHANNELTYPE, D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT, |
| D3DBACKBUFFER_TYPE, D3DBOX, D3DCLIPSTATUS9, D3DCOLOR, D3DCOMPOSERECTSOP, D3DCUBEMAP_FACES, |
| D3DDEVICE_CREATION_PARAMETERS, D3DDEVTYPE, D3DDISPLAYMODE, D3DDISPLAYMODEEX, |
| D3DDISPLAYMODEFILTER, D3DDISPLAYROTATION, D3DENCRYPTED_BLOCK_INFO, D3DFORMAT, D3DGAMMARAMP, |
| D3DINDEXBUFFER_DESC, D3DLIGHT9, D3DLOCKED_BOX, D3DLOCKED_RECT, D3DMATERIAL9, D3DMATRIX, |
| D3DMULTISAMPLE_TYPE, D3DPOOL, D3DPRESENTSTATS, D3DPRESENT_PARAMETERS, D3DPRIMITIVETYPE, |
| D3DQUERYTYPE, D3DRASTER_STATUS, D3DRECT, D3DRECTPATCH_INFO, D3DRENDERSTATETYPE, |
| D3DRESOURCETYPE, D3DSAMPLERSTATETYPE, D3DSTATEBLOCKTYPE, D3DSURFACE_DESC, D3DTEXTUREFILTERTYPE, |
| D3DTEXTURESTAGESTATETYPE, D3DTRANSFORMSTATETYPE, D3DTRIPATCH_INFO, D3DVERTEXBUFFER_DESC, |
| D3DVERTEXELEMENT9, D3DVIEWPORT9, D3DVOLUME_DESC, |
| }; |
| use shared::guiddef::{GUID, IID}; |
| use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, INT, UINT}; |
| use shared::windef::{HDC, HMONITOR, HWND, POINT, RECT}; |
| use um::unknwnbase::{IUnknown, IUnknownVtbl}; |
| use um::wingdi::{PALETTEENTRY, RGNDATA}; |
| use um::winnt::{HANDLE, HRESULT, LPCWSTR, LUID, VOID}; |
| pub const D3D_SDK_VERSION: DWORD = 32; |
| pub const D3D9b_SDK_VERSION: DWORD = 31; |
| DEFINE_GUID!{IID_IDirect3D9, |
| 0x81bdcbca, 0x64d4, 0x426d, 0xae, 0x8d, 0xad, 0x01, 0x47, 0xf4, 0x27, 0x5c} |
| DEFINE_GUID!{IID_IDirect3DDevice9, |
| 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0x0d, 0x82, 0xb9, 0xeb} |
| DEFINE_GUID!{IID_IDirect3DResource9, |
| 0x05eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x04} |
| DEFINE_GUID!{IID_IDirect3DBaseTexture9, |
| 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce} |
| DEFINE_GUID!{IID_IDirect3DTexture9, |
| 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5} |
| DEFINE_GUID!{IID_IDirect3DCubeTexture9, |
| 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f} |
| DEFINE_GUID!{IID_IDirect3DVolumeTexture9, |
| 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6} |
| DEFINE_GUID!{IID_IDirect3DVertexBuffer9, |
| 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3} |
| DEFINE_GUID!{IID_IDirect3DIndexBuffer9, |
| 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35} |
| DEFINE_GUID!{IID_IDirect3DSurface9, |
| 0x0cfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b} |
| DEFINE_GUID!{IID_IDirect3DVolume9, |
| 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1} |
| DEFINE_GUID!{IID_IDirect3DSwapChain9, |
| 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0x0b, 0x0b, 0x50, 0x3b} |
| DEFINE_GUID!{IID_IDirect3DVertexDeclaration9, |
| 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46} |
| DEFINE_GUID!{IID_IDirect3DVertexShader9, |
| 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36} |
| DEFINE_GUID!{IID_IDirect3DPixelShader9, |
| 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89} |
| DEFINE_GUID!{IID_IDirect3DStateBlock9, |
| 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0x0f, 0x20, 0x6f, 0x21, 0x8b} |
| DEFINE_GUID!{IID_IDirect3DQuery9, |
| 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc} |
| DEFINE_GUID!{IID_HelperName, |
| 0xe4a36723, 0xfdfe, 0x4b22, 0xb1, 0x46, 0x3c, 0x04, 0xc0, 0x7f, 0x4c, 0xc8} |
| DEFINE_GUID!{IID_IDirect3D9Ex, |
| 0x02177241, 0x69fc, 0x400c, 0x8f, 0xf1, 0x93, 0xa4, 0x4d, 0xf6, 0x86, 0x1d} |
| DEFINE_GUID!{IID_IDirect3DDevice9Ex, |
| 0xb18b10ce, 0x2649, 0x405a, 0x87, 0x0f, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a} |
| DEFINE_GUID!{IID_IDirect3DSwapChain9Ex, |
| 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x03} |
| DEFINE_GUID!{IID_IDirect3D9ExOverlayExtension, |
| 0x187aeb13, 0xaaf5, 0x4c59, 0x87, 0x6d, 0xe0, 0x59, 0x08, 0x8c, 0x0d, 0xf8} |
| DEFINE_GUID!{IID_IDirect3DDevice9Video, |
| 0x26dc4561, 0xa1ee, 0x4ae7, 0x96, 0xda, 0x11, 0x8a, 0x36, 0xc0, 0xec, 0x95} |
| DEFINE_GUID!{IID_IDirect3DAuthenticatedChannel9, |
| 0xff24beee, 0xda21, 0x4beb, 0x98, 0xb5, 0xd2, 0xf8, 0x99, 0xf9, 0x8a, 0xf9} |
| DEFINE_GUID!{IID_IDirect3DCryptoSession9, |
| 0xfa0ab799, 0x7a9c, 0x48ca, 0x8c, 0x5b, 0x23, 0x7e, 0x71, 0xa5, 0x44, 0x34} |
| extern "system" { |
| pub fn Direct3DCreate9( |
| SDKVersion: UINT, |
| ) -> *mut IDirect3D9; |
| pub fn D3DPERF_BeginEvent( |
| col: D3DCOLOR, |
| wszName: LPCWSTR, |
| ) -> INT; |
| pub fn D3DPERF_EndEvent() -> INT; |
| pub fn D3DPERF_SetMarker( |
| col: D3DCOLOR, |
| wszName: LPCWSTR, |
| ) -> (); |
| pub fn D3DPERF_SetRegion( |
| col: D3DCOLOR, |
| wszName: LPCWSTR, |
| ) -> (); |
| pub fn D3DPERF_QueryRepeatFrame() -> BOOL; |
| pub fn D3DPERF_SetOptions( |
| dwOptions: DWORD, |
| ) -> (); |
| pub fn D3DPERF_GetStatus() -> DWORD; |
| } |
| RIDL!{#[uuid(0x81bdcbca, 0x64d4, 0x426d, 0xae, 0x8d, 0xad, 0x1, 0x47, 0xf4, 0x27, 0x5c)] |
| interface IDirect3D9(IDirect3D9Vtbl): IUnknown(IUnknownVtbl) { |
| fn RegisterSoftwareDevice( |
| pInitializeFunction: *mut VOID, |
| ) -> HRESULT, |
| fn GetAdapterCount() -> UINT, |
| fn GetAdapterIdentifier( |
| Adapter: UINT, |
| Flags: DWORD, |
| pIdentifier: *mut D3DADAPTER_IDENTIFIER9, |
| ) -> HRESULT, |
| fn GetAdapterModeCount( |
| Adapter: UINT, |
| Format: D3DFORMAT, |
| ) -> UINT, |
| fn EnumAdapterModes( |
| Adapter: UINT, |
| Format: D3DFORMAT, |
| Mode: UINT, |
| pMode: *mut D3DDISPLAYMODE, |
| ) -> HRESULT, |
| fn GetAdapterDisplayMode( |
| Adapter: UINT, |
| pMode: *mut D3DDISPLAYMODE, |
| ) -> HRESULT, |
| fn CheckDeviceType( |
| Adapter: UINT, |
| DevType: D3DDEVTYPE, |
| AdapterFormat: D3DFORMAT, |
| BackBufferFormat: D3DFORMAT, |
| bWindowed: BOOL, |
| ) -> HRESULT, |
| fn CheckDeviceFormat( |
| Adapter: UINT, |
| DeviceType: D3DDEVTYPE, |
| AdapterFormat: D3DFORMAT, |
| Usage: DWORD, |
| RType: D3DRESOURCETYPE, |
| CheckFormat: D3DFORMAT, |
| ) -> HRESULT, |
| fn CheckDeviceMultiSampleType( |
| Adapter: UINT, |
| DeviceType: D3DDEVTYPE, |
| SurfaceFormat: D3DFORMAT, |
| Windowed: BOOL, |
| MultiSampleType: D3DMULTISAMPLE_TYPE, |
| pQualityLevels: *mut DWORD, |
| ) -> HRESULT, |
| fn CheckDepthStencilMatch( |
| Adapter: UINT, |
| DeviceType: D3DDEVTYPE, |
| AdapterFormat: D3DFORMAT, |
| RenderTargetFormat: D3DFORMAT, |
| DepthStencilFormat: D3DFORMAT, |
| ) -> HRESULT, |
| fn CheckDeviceFormatConversion( |
| Adapter: UINT, |
| DeviceType: D3DDEVTYPE, |
| SourceFormat: D3DFORMAT, |
| TargetFormat: D3DFORMAT, |
| ) -> HRESULT, |
| fn GetDeviceCaps( |
| Adapter: UINT, |
| DeviceType: D3DDEVTYPE, |
| pCaps: *mut D3DCAPS9, |
| ) -> HRESULT, |
| fn GetAdapterMonitor( |
| Adapter: UINT, |
| ) -> HMONITOR, |
| fn CreateDevice( |
| Adapter: UINT, |
| DeviceType: D3DDEVTYPE, |
| hFocusWindow: HWND, |
| BehaviorFlags: DWORD, |
| pPresentationParameters: *mut D3DPRESENT_PARAMETERS, |
| ppReturnedDeviceInterface: *mut *mut IDirect3DDevice9, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3D9 = *mut IDirect3D9; |
| pub type PDIRECT3D9 = *mut IDirect3D9; |
| RIDL!{#[uuid(0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb)] |
| interface IDirect3DDevice9(IDirect3DDevice9Vtbl): IUnknown(IUnknownVtbl) { |
| fn TestCooperativeLevel() -> HRESULT, |
| fn GetAvailableTextureMem() -> UINT, |
| fn EvictManagedResources() -> HRESULT, |
| fn GetDirect3D( |
| ppD3D9: *mut *mut IDirect3D9, |
| ) -> HRESULT, |
| fn GetDeviceCaps( |
| pCaps: *mut D3DCAPS9, |
| ) -> HRESULT, |
| fn GetDisplayMode( |
| iSwapChain: UINT, |
| pMode: *mut D3DDISPLAYMODE, |
| ) -> HRESULT, |
| fn GetCreationParameters( |
| pParameters: *mut D3DDEVICE_CREATION_PARAMETERS, |
| ) -> HRESULT, |
| fn SetCursorProperties( |
| XHotSpot: UINT, |
| YHotSpot: UINT, |
| pCursorBitmap: *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn SetCursorPosition( |
| X: INT, |
| Y: INT, |
| Flags: DWORD, |
| ) -> (), |
| fn ShowCursor( |
| bShow: BOOL, |
| ) -> BOOL, |
| fn CreateAdditionalSwapChain( |
| pPresentationParameters: *mut D3DPRESENT_PARAMETERS, |
| pSwapChain: *mut *mut IDirect3DSwapChain9, |
| ) -> HRESULT, |
| fn GetSwapChain( |
| iSwapChain: UINT, |
| pSwapChain: *mut *mut IDirect3DSwapChain9, |
| ) -> HRESULT, |
| fn GetNumberOfSwapChains() -> UINT, |
| fn Reset( |
| pPresentationParameters: *mut D3DPRESENT_PARAMETERS, |
| ) -> HRESULT, |
| fn Present( |
| pSourceRect: *const RECT, |
| pDestRect: *const RECT, |
| hDestWindowOverride: HWND, |
| pDirtyRegion: *const RGNDATA, |
| ) -> HRESULT, |
| fn GetBackBuffer( |
| iSwapChain: UINT, |
| iBackBuffer: UINT, |
| Type: D3DBACKBUFFER_TYPE, |
| ppBackBuffer: *mut *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn GetRasterStatus( |
| iSwapChain: UINT, |
| pRasterStatus: *mut D3DRASTER_STATUS, |
| ) -> HRESULT, |
| fn SetDialogBoxMode( |
| bEnableDialogs: BOOL, |
| ) -> HRESULT, |
| fn SetGammaRamp( |
| iSwapChain: UINT, |
| Flags: DWORD, |
| pRamp: *const D3DGAMMARAMP, |
| ) -> (), |
| fn GetGammaRamp( |
| iSwapChain: UINT, |
| pRamp: *mut D3DGAMMARAMP, |
| ) -> (), |
| fn CreateTexture( |
| Width: UINT, |
| Height: UINT, |
| Levels: UINT, |
| Usage: DWORD, |
| Format: D3DFORMAT, |
| Pool: D3DPOOL, |
| ppTexture: *mut *mut IDirect3DTexture9, |
| pSharedHandle: *mut HANDLE, |
| ) -> HRESULT, |
| fn CreateVolumeTexture( |
| Width: UINT, |
| Height: UINT, |
| Depth: UINT, |
| Levels: UINT, |
| Usage: DWORD, |
| Format: D3DFORMAT, |
| Pool: D3DPOOL, |
| ppVolumeTexture: *mut *mut IDirect3DVolumeTexture9, |
| pSharedHandle: *mut HANDLE, |
| ) -> HRESULT, |
| fn CreateCubeTexture( |
| EdgeLength: UINT, |
| Levels: UINT, |
| Usage: DWORD, |
| Format: D3DFORMAT, |
| Pool: D3DPOOL, |
| ppCubeTexture: *mut *mut IDirect3DCubeTexture9, |
| pSharedHandle: *mut HANDLE, |
| ) -> HRESULT, |
| fn CreateVertexBuffer( |
| Length: UINT, |
| Usage: DWORD, |
| FVF: DWORD, |
| Pool: D3DPOOL, |
| ppVertexBuffer: *mut *mut IDirect3DVertexBuffer9, |
| pSharedHandle: *mut HANDLE, |
| ) -> HRESULT, |
| fn CreateIndexBuffer( |
| Length: UINT, |
| Usage: DWORD, |
| Format: D3DFORMAT, |
| Pool: D3DPOOL, |
| ppIndexBuffer: *mut *mut IDirect3DIndexBuffer9, |
| pSharedHandle: *mut HANDLE, |
| ) -> HRESULT, |
| fn CreateRenderTarget( |
| Width: UINT, |
| Height: UINT, |
| Format: D3DFORMAT, |
| MultiSample: D3DMULTISAMPLE_TYPE, |
| MultisampleQuality: DWORD, |
| Lockable: BOOL, |
| ppSurface: *mut *mut IDirect3DSurface9, |
| pSharedHandle: *mut HANDLE, |
| ) -> HRESULT, |
| fn CreateDepthStencilSurface( |
| Width: UINT, |
| Height: UINT, |
| Format: D3DFORMAT, |
| MultiSample: D3DMULTISAMPLE_TYPE, |
| MultisampleQuality: DWORD, |
| Discard: BOOL, |
| ppSurface: *mut *mut IDirect3DSurface9, |
| pSharedHandle: *mut HANDLE, |
| ) -> HRESULT, |
| fn UpdateSurface( |
| pSourceSurface: *mut IDirect3DSurface9, |
| pSourceRect: *const RECT, |
| pDestinationSurface: *mut IDirect3DSurface9, |
| pDestPoint: *const POINT, |
| ) -> HRESULT, |
| fn UpdateTexture( |
| pSourceTexture: *mut IDirect3DBaseTexture9, |
| pDestinationTexture: *mut IDirect3DBaseTexture9, |
| ) -> HRESULT, |
| fn GetRenderTargetData( |
| pRenderTarget: *mut IDirect3DSurface9, |
| pDestSurface: *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn GetFrontBufferData( |
| iSwapChain: UINT, |
| pDestSurface: *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn StretchRect( |
| pSourceSurface: *mut IDirect3DSurface9, |
| pSourceRect: *const RECT, |
| pDestSurface: *mut IDirect3DSurface9, |
| pDestRect: *const RECT, |
| Filter: D3DTEXTUREFILTERTYPE, |
| ) -> HRESULT, |
| fn ColorFill( |
| pSurface: *mut IDirect3DSurface9, |
| pRect: *const RECT, |
| color: D3DCOLOR, |
| ) -> HRESULT, |
| fn CreateOffscreenPlainSurface( |
| Width: UINT, |
| Height: UINT, |
| Format: D3DFORMAT, |
| Pool: D3DPOOL, |
| ppSurface: *mut *mut IDirect3DSurface9, |
| pSharedHandle: *mut HANDLE, |
| ) -> HRESULT, |
| fn SetRenderTarget( |
| RenderTargetIndex: DWORD, |
| pRenderTarget: *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn GetRenderTarget( |
| RenderTargetIndex: DWORD, |
| ppRenderTarget: *mut *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn SetDepthStencilSurface( |
| pNewZStencil: *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn GetDepthStencilSurface( |
| ppZStencilSurface: *mut *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn BeginScene() -> HRESULT, |
| fn EndScene() -> HRESULT, |
| fn Clear( |
| Count: DWORD, |
| pRects: *const D3DRECT, |
| Flags: DWORD, |
| Color: D3DCOLOR, |
| Z: FLOAT, |
| Stencil: DWORD, |
| ) -> HRESULT, |
| fn SetTransform( |
| State: D3DTRANSFORMSTATETYPE, |
| pMatrix: *const D3DMATRIX, |
| ) -> HRESULT, |
| fn GetTransform( |
| State: D3DTRANSFORMSTATETYPE, |
| pMatrix: *mut D3DMATRIX, |
| ) -> HRESULT, |
| fn MultiplyTransform( |
| arg1: D3DTRANSFORMSTATETYPE, |
| arg2: *const D3DMATRIX, |
| ) -> HRESULT, |
| fn SetViewport( |
| pViewport: *const D3DVIEWPORT9, |
| ) -> HRESULT, |
| fn GetViewport( |
| pViewport: *mut D3DVIEWPORT9, |
| ) -> HRESULT, |
| fn SetMaterial( |
| pMaterial: *const D3DMATERIAL9, |
| ) -> HRESULT, |
| fn GetMaterial( |
| pMaterial: *mut D3DMATERIAL9, |
| ) -> HRESULT, |
| fn SetLight( |
| Index: DWORD, |
| arg1: *const D3DLIGHT9, |
| ) -> HRESULT, |
| fn GetLight( |
| Index: DWORD, |
| arg1: *mut D3DLIGHT9, |
| ) -> HRESULT, |
| fn LightEnable( |
| Index: DWORD, |
| Enable: BOOL, |
| ) -> HRESULT, |
| fn GetLightEnable( |
| Index: DWORD, |
| pEnable: *mut BOOL, |
| ) -> HRESULT, |
| fn SetClipPlane( |
| Index: DWORD, |
| pPlane: *const FLOAT, |
| ) -> HRESULT, |
| fn GetClipPlane( |
| Index: DWORD, |
| pPlane: *mut FLOAT, |
| ) -> HRESULT, |
| fn SetRenderState( |
| State: D3DRENDERSTATETYPE, |
| Value: DWORD, |
| ) -> HRESULT, |
| fn GetRenderState( |
| State: D3DRENDERSTATETYPE, |
| pValue: *mut DWORD, |
| ) -> HRESULT, |
| fn CreateStateBlock( |
| Type: D3DSTATEBLOCKTYPE, |
| ppSB: *mut *mut IDirect3DStateBlock9, |
| ) -> HRESULT, |
| fn BeginStateBlock() -> HRESULT, |
| fn EndStateBlock( |
| ppSB: *mut *mut IDirect3DStateBlock9, |
| ) -> HRESULT, |
| fn SetClipStatus( |
| pClipStatus: *const D3DCLIPSTATUS9, |
| ) -> HRESULT, |
| fn GetClipStatus( |
| pClipStatus: *mut D3DCLIPSTATUS9, |
| ) -> HRESULT, |
| fn GetTexture( |
| Stage: DWORD, |
| ppTexture: *mut *mut IDirect3DBaseTexture9, |
| ) -> HRESULT, |
| fn SetTexture( |
| Stage: DWORD, |
| pTexture: *mut IDirect3DBaseTexture9, |
| ) -> HRESULT, |
| fn GetTextureStageState( |
| Stage: DWORD, |
| Type: D3DTEXTURESTAGESTATETYPE, |
| pValue: *mut DWORD, |
| ) -> HRESULT, |
| fn SetTextureStageState( |
| Stage: DWORD, |
| Type: D3DTEXTURESTAGESTATETYPE, |
| Value: DWORD, |
| ) -> HRESULT, |
| fn GetSamplerState( |
| Sampler: DWORD, |
| Type: D3DSAMPLERSTATETYPE, |
| pValue: *mut DWORD, |
| ) -> HRESULT, |
| fn SetSamplerState( |
| Sampler: DWORD, |
| Type: D3DSAMPLERSTATETYPE, |
| Value: DWORD, |
| ) -> HRESULT, |
| fn ValidateDevice( |
| pNumPasses: *mut DWORD, |
| ) -> HRESULT, |
| fn SetPaletteEntries( |
| PaletteNumber: UINT, |
| pEntries: *const PALETTEENTRY, |
| ) -> HRESULT, |
| fn GetPaletteEntries( |
| PaletteNumber: UINT, |
| pEntries: *mut PALETTEENTRY, |
| ) -> HRESULT, |
| fn SetCurrentTexturePalette( |
| PaletteNumber: UINT, |
| ) -> HRESULT, |
| fn GetCurrentTexturePalette( |
| PaletteNumber: *mut UINT, |
| ) -> HRESULT, |
| fn SetScissorRect( |
| pRect: *const RECT, |
| ) -> HRESULT, |
| fn GetScissorRect( |
| pRect: *mut RECT, |
| ) -> HRESULT, |
| fn SetSoftwareVertexProcessing( |
| bSoftware: BOOL, |
| ) -> HRESULT, |
| fn GetSoftwareVertexProcessing() -> BOOL, |
| fn SetNPatchMode( |
| nSegments: FLOAT, |
| ) -> HRESULT, |
| fn GetNPatchMode() -> FLOAT, |
| fn DrawPrimitive( |
| PrimitiveType: D3DPRIMITIVETYPE, |
| StartVertex: UINT, |
| PrimitiveCount: UINT, |
| ) -> HRESULT, |
| fn DrawIndexedPrimitive( |
| arg1: D3DPRIMITIVETYPE, |
| BaseVertexIndex: INT, |
| MinVertexIndex: UINT, |
| NumVertices: UINT, |
| startIndex: UINT, |
| primCount: UINT, |
| ) -> HRESULT, |
| fn DrawPrimitiveUP( |
| PrimitiveType: D3DPRIMITIVETYPE, |
| PrimitiveCount: UINT, |
| pVertexStreamZeroData: *const VOID, |
| VertexStreamZeroStride: UINT, |
| ) -> HRESULT, |
| fn DrawIndexedPrimitiveUP( |
| PrimitiveType: D3DPRIMITIVETYPE, |
| MinVertexIndex: UINT, |
| NumVertices: UINT, |
| PrimitiveCount: UINT, |
| pIndexData: *const VOID, |
| IndexDataFormat: D3DFORMAT, |
| pVertexStreamZeroData: *const VOID, |
| VertexStreamZeroStride: UINT, |
| ) -> HRESULT, |
| fn ProcessVertices( |
| SrcStartIndex: UINT, |
| DestIndex: UINT, |
| VertexCount: UINT, |
| pDestBuffer: *mut IDirect3DVertexBuffer9, |
| pVertexDecl: *mut IDirect3DVertexDeclaration9, |
| Flags: DWORD, |
| ) -> HRESULT, |
| fn CreateVertexDeclaration( |
| pVertexElements: *const D3DVERTEXELEMENT9, |
| ppDecl: *mut *mut IDirect3DVertexDeclaration9, |
| ) -> HRESULT, |
| fn SetVertexDeclaration( |
| pDecl: *mut IDirect3DVertexDeclaration9, |
| ) -> HRESULT, |
| fn GetVertexDeclaration( |
| ppDecl: *mut *mut IDirect3DVertexDeclaration9, |
| ) -> HRESULT, |
| fn SetFVF( |
| FVF: DWORD, |
| ) -> HRESULT, |
| fn GetFVF( |
| pFVF: *mut DWORD, |
| ) -> HRESULT, |
| fn CreateVertexShader( |
| pFunction: *const DWORD, |
| ppShader: *mut *mut IDirect3DVertexShader9, |
| ) -> HRESULT, |
| fn SetVertexShader( |
| pShader: *mut IDirect3DVertexShader9, |
| ) -> HRESULT, |
| fn GetVertexShader( |
| ppShader: *mut *mut IDirect3DVertexShader9, |
| ) -> HRESULT, |
| fn SetVertexShaderConstantF( |
| StartRegister: UINT, |
| pConstantData: *const FLOAT, |
| Vector4fCount: UINT, |
| ) -> HRESULT, |
| fn GetVertexShaderConstantF( |
| StartRegister: UINT, |
| pConstantData: *mut FLOAT, |
| Vector4fCount: UINT, |
| ) -> HRESULT, |
| fn SetVertexShaderConstantI( |
| StartRegister: UINT, |
| pConstantData: *const INT, |
| Vector4iCount: UINT, |
| ) -> HRESULT, |
| fn GetVertexShaderConstantI( |
| StartRegister: UINT, |
| pConstantData: *mut INT, |
| Vector4iCount: UINT, |
| ) -> HRESULT, |
| fn SetVertexShaderConstantB( |
| StartRegister: UINT, |
| pConstantData: *const BOOL, |
| BoolCount: UINT, |
| ) -> HRESULT, |
| fn GetVertexShaderConstantB( |
| StartRegister: UINT, |
| pConstantData: *mut BOOL, |
| BoolCount: UINT, |
| ) -> HRESULT, |
| fn SetStreamSource( |
| StreamNumber: UINT, |
| pStreamData: *mut IDirect3DVertexBuffer9, |
| OffsetInBytes: UINT, |
| Stride: UINT, |
| ) -> HRESULT, |
| fn GetStreamSource( |
| StreamNumber: UINT, |
| ppStreamData: *mut *mut IDirect3DVertexBuffer9, |
| pOffsetInBytes: *mut UINT, |
| pStride: *mut UINT, |
| ) -> HRESULT, |
| fn SetStreamSourceFreq( |
| StreamNumber: UINT, |
| Setting: UINT, |
| ) -> HRESULT, |
| fn GetStreamSourceFreq( |
| StreamNumber: UINT, |
| pSetting: *mut UINT, |
| ) -> HRESULT, |
| fn SetIndices( |
| pIndexData: *mut IDirect3DIndexBuffer9, |
| ) -> HRESULT, |
| fn GetIndices( |
| ppIndexData: *mut *mut IDirect3DIndexBuffer9, |
| ) -> HRESULT, |
| fn CreatePixelShader( |
| pFunction: *const DWORD, |
| ppShader: *mut *mut IDirect3DPixelShader9, |
| ) -> HRESULT, |
| fn SetPixelShader( |
| pShader: *mut IDirect3DPixelShader9, |
| ) -> HRESULT, |
| fn GetPixelShader( |
| ppShader: *mut *mut IDirect3DPixelShader9, |
| ) -> HRESULT, |
| fn SetPixelShaderConstantF( |
| StartRegister: UINT, |
| pConstantData: *const FLOAT, |
| Vector4fCount: UINT, |
| ) -> HRESULT, |
| fn GetPixelShaderConstantF( |
| StartRegister: UINT, |
| pConstantData: *mut FLOAT, |
| Vector4fCount: UINT, |
| ) -> HRESULT, |
| fn SetPixelShaderConstantI( |
| StartRegister: UINT, |
| pConstantData: *const INT, |
| Vector4iCount: UINT, |
| ) -> HRESULT, |
| fn GetPixelShaderConstantI( |
| StartRegister: UINT, |
| pConstantData: *mut INT, |
| Vector4iCount: UINT, |
| ) -> HRESULT, |
| fn SetPixelShaderConstantB( |
| StartRegister: UINT, |
| pConstantData: *const BOOL, |
| BoolCount: UINT, |
| ) -> HRESULT, |
| fn GetPixelShaderConstantB( |
| StartRegister: UINT, |
| pConstantData: *mut BOOL, |
| BoolCount: UINT, |
| ) -> HRESULT, |
| fn DrawRectPatch( |
| Handle: UINT, |
| pNumSegs: *const FLOAT, |
| pRectPatchInfo: *const D3DRECTPATCH_INFO, |
| ) -> HRESULT, |
| fn DrawTriPatch( |
| Handle: UINT, |
| pNumSegs: *const FLOAT, |
| pTriPatchInfo: *const D3DTRIPATCH_INFO, |
| ) -> HRESULT, |
| fn DeletePatch( |
| Handle: UINT, |
| ) -> HRESULT, |
| fn CreateQuery( |
| Type: D3DQUERYTYPE, |
| ppQuery: *mut *mut IDirect3DQuery9, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DDEVICE9 = *mut IDirect3DDevice9; |
| pub type PDIRECT3DDEVICE9 = *mut IDirect3DDevice9; |
| RIDL!{#[uuid(0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b)] |
| interface IDirect3DStateBlock9(IDirect3DStateBlock9Vtbl): IUnknown(IUnknownVtbl) { |
| fn GetDevice( |
| ppDevice: *mut *mut IDirect3DDevice9, |
| ) -> HRESULT, |
| fn Capture() -> HRESULT, |
| fn Apply() -> HRESULT, |
| }} |
| pub type LPDIRECT3DSTATEBLOCK9 = *mut IDirect3DStateBlock9; |
| pub type PDIRECT3DSTATEBLOCK9 = *mut IDirect3DStateBlock9; |
| RIDL!{#[uuid(0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b)] |
| interface IDirect3DSwapChain9(IDirect3DSwapChain9Vtbl): IUnknown(IUnknownVtbl) { |
| fn Present( |
| pSourceRect: *const RECT, |
| pDestRect: *const RECT, |
| hDestWindowOverride: HWND, |
| pDirtyRegion: *const RGNDATA, |
| dwFlags: DWORD, |
| ) -> HRESULT, |
| fn GetFrontBufferData( |
| pDestSurface: *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn GetBackBuffer( |
| iBackBuffer: UINT, |
| Type: D3DBACKBUFFER_TYPE, |
| ppBackBuffer: *mut *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn GetRasterStatus( |
| pRasterStatus: *mut D3DRASTER_STATUS, |
| ) -> HRESULT, |
| fn GetDisplayMode( |
| pMode: *mut D3DDISPLAYMODE, |
| ) -> HRESULT, |
| fn GetDevice( |
| ppDevice: *mut *mut IDirect3DDevice9, |
| ) -> HRESULT, |
| fn GetPresentParameters( |
| pPresentationParameters: *mut D3DPRESENT_PARAMETERS, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DSWAPCHAIN9 = *mut IDirect3DSwapChain9; |
| pub type PDIRECT3DSWAPCHAIN9 = *mut IDirect3DSwapChain9; |
| RIDL!{#[uuid(0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4)] |
| interface IDirect3DResource9(IDirect3DResource9Vtbl): IUnknown(IUnknownVtbl) { |
| fn GetDevice( |
| ppDevice: *mut *mut IDirect3DDevice9, |
| ) -> HRESULT, |
| fn SetPrivateData( |
| refguid: *const GUID, |
| pData: *const VOID, |
| SizeOfData: DWORD, |
| Flags: DWORD, |
| ) -> HRESULT, |
| fn GetPrivateData( |
| refguid: *const GUID, |
| pData: *mut VOID, |
| pSizeOfData: *mut DWORD, |
| ) -> HRESULT, |
| fn FreePrivateData( |
| refguid: *const GUID, |
| ) -> HRESULT, |
| fn SetPriority( |
| PriorityNew: DWORD, |
| ) -> DWORD, |
| fn GetPriority() -> DWORD, |
| fn PreLoad() -> (), |
| fn GetType() -> D3DRESOURCETYPE, |
| }} |
| pub type LPDIRECT3DRESOURCE9 = *mut IDirect3DResource9; |
| pub type PDIRECT3DRESOURCE9 = *mut IDirect3DResource9; |
| RIDL!{#[uuid(0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46)] |
| interface IDirect3DVertexDeclaration9(IDirect3DVertexDeclaration9Vtbl): IUnknown(IUnknownVtbl) { |
| fn GetDevice( |
| ppDevice: *mut *mut IDirect3DDevice9, |
| ) -> HRESULT, |
| fn GetDeclaration( |
| pElement: *mut D3DVERTEXELEMENT9, |
| pNumElements: *mut UINT, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DVERTEXDECLARATION9 = *mut IDirect3DVertexDeclaration9; |
| pub type PDIRECT3DVERTEXDECLARATION9 = *mut IDirect3DVertexDeclaration9; |
| RIDL!{#[uuid(0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36)] |
| interface IDirect3DVertexShader9(IDirect3DVertexShader9Vtbl): IUnknown(IUnknownVtbl) { |
| fn GetDevice( |
| ppDevice: *mut *mut IDirect3DDevice9, |
| ) -> HRESULT, |
| fn GetFunction( |
| arg1: *mut VOID, |
| pSizeOfData: *mut UINT, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DVERTEXSHADER9 = *mut IDirect3DVertexShader9; |
| pub type PDIRECT3DVERTEXSHADER9 = *mut IDirect3DVertexShader9; |
| RIDL!{#[uuid(0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89)] |
| interface IDirect3DPixelShader9(IDirect3DPixelShader9Vtbl): IUnknown(IUnknownVtbl) { |
| fn GetDevice( |
| ppDevice: *mut *mut IDirect3DDevice9, |
| ) -> HRESULT, |
| fn GetFunction( |
| arg1: *mut VOID, |
| pSizeOfData: *mut UINT, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DPIXELSHADER9 = *mut IDirect3DPixelShader9; |
| pub type PDIRECT3DPIXELSHADER9 = *mut IDirect3DPixelShader9; |
| RIDL!{#[uuid(0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce)] |
| interface IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl): |
| IDirect3DResource9(IDirect3DResource9Vtbl) { |
| fn SetLOD( |
| LODNew: DWORD, |
| ) -> DWORD, |
| fn GetLOD() -> DWORD, |
| fn GetLevelCount() -> DWORD, |
| fn SetAutoGenFilterType( |
| FilterType: D3DTEXTUREFILTERTYPE, |
| ) -> HRESULT, |
| fn GetAutoGenFilterType() -> D3DTEXTUREFILTERTYPE, |
| fn GenerateMipSubLevels() -> (), |
| }} |
| pub type LPDIRECT3DBASETEXTURE9 = *mut IDirect3DBaseTexture9; |
| pub type PDIRECT3DBASETEXTURE9 = *mut IDirect3DBaseTexture9; |
| RIDL!{#[uuid(0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5)] |
| interface IDirect3DTexture9(IDirect3DTexture9Vtbl): |
| IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl) { |
| fn GetLevelDesc( |
| Level: UINT, |
| pDesc: *mut D3DSURFACE_DESC, |
| ) -> HRESULT, |
| fn GetSurfaceLevel( |
| Level: UINT, |
| ppSurfaceLevel: *mut *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn LockRect( |
| Level: UINT, |
| pLockedRect: *mut D3DLOCKED_RECT, |
| pRect: *const RECT, |
| Flags: DWORD, |
| ) -> HRESULT, |
| fn UnlockRect( |
| Level: UINT, |
| ) -> HRESULT, |
| fn AddDirtyRect( |
| pDirtyRect: *const RECT, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DTEXTURE9 = *mut IDirect3DTexture9; |
| pub type PDIRECT3DTEXTURE9 = *mut IDirect3DTexture9; |
| RIDL!{#[uuid(0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6)] |
| interface IDirect3DVolumeTexture9(IDirect3DVolumeTexture9Vtbl): |
| IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl) { |
| fn GetLevelDesc( |
| Level: UINT, |
| pDesc: *mut D3DVOLUME_DESC, |
| ) -> HRESULT, |
| fn GetVolumeLevel( |
| Level: UINT, |
| ppVolumeLevel: *mut *mut IDirect3DVolume9, |
| ) -> HRESULT, |
| fn LockBox( |
| Level: UINT, |
| pLockedVolume: *mut D3DLOCKED_BOX, |
| pBox: *const D3DBOX, |
| Flags: DWORD, |
| ) -> HRESULT, |
| fn UnlockBox( |
| Level: UINT, |
| ) -> HRESULT, |
| fn AddDirtyBox( |
| pDirtyBox: *const D3DBOX, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DVOLUMETEXTURE9 = *mut IDirect3DVolumeTexture9; |
| pub type PDIRECT3DVOLUMETEXTURE9 = *mut IDirect3DVolumeTexture9; |
| RIDL!{#[uuid(0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f)] |
| interface IDirect3DCubeTexture9(IDirect3DCubeTexture9Vtbl): |
| IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl) { |
| fn GetLevelDesc( |
| Level: UINT, |
| pDesc: *mut D3DSURFACE_DESC, |
| ) -> HRESULT, |
| fn GetCubeMapSurface( |
| FaceType: D3DCUBEMAP_FACES, |
| Level: UINT, |
| ppCubeMapSurface: *mut *mut IDirect3DSurface9, |
| ) -> HRESULT, |
| fn LockRect( |
| FaceType: D3DCUBEMAP_FACES, |
| Level: UINT, |
| pLockedRect: *mut D3DLOCKED_RECT, |
| pRect: *const RECT, |
| Flags: DWORD, |
| ) -> HRESULT, |
| fn UnlockRect( |
| FaceType: D3DCUBEMAP_FACES, |
| Level: UINT, |
| ) -> HRESULT, |
| fn AddDirtyRect( |
| FaceType: D3DCUBEMAP_FACES, |
| pDirtyRect: *const RECT, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DCUBETEXTURE9 = *mut IDirect3DCubeTexture9; |
| pub type PDIRECT3DCUBETEXTURE9 = *mut IDirect3DCubeTexture9; |
| RIDL!{#[uuid(0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3)] |
| interface IDirect3DVertexBuffer9(IDirect3DVertexBuffer9Vtbl): |
| IDirect3DResource9(IDirect3DResource9Vtbl) { |
| fn Lock( |
| OffsetToLock: UINT, |
| SizeToLock: UINT, |
| ppbData: *mut *mut VOID, |
| Flags: DWORD, |
| ) -> HRESULT, |
| fn Unlock() -> HRESULT, |
| fn GetDesc( |
| pDesc: *mut D3DVERTEXBUFFER_DESC, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DVERTEXBUFFER9 = *mut IDirect3DVertexBuffer9; |
| pub type PDIRECT3DVERTEXBUFFER9 = *mut IDirect3DVertexBuffer9; |
| RIDL!{#[uuid(0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35)] |
| interface IDirect3DIndexBuffer9(IDirect3DIndexBuffer9Vtbl): |
| IDirect3DResource9(IDirect3DResource9Vtbl) { |
| fn Lock( |
| OffsetToLock: UINT, |
| SizeToLock: UINT, |
| ppbData: *mut *mut VOID, |
| Flags: DWORD, |
| ) -> HRESULT, |
| fn Unlock() -> HRESULT, |
| fn GetDesc( |
| pDesc: *mut D3DINDEXBUFFER_DESC, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DINDEXBUFFER9 = *mut IDirect3DIndexBuffer9; |
| pub type PDIRECT3DINDEXBUFFER9 = *mut IDirect3DIndexBuffer9; |
| RIDL!{#[uuid(0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b)] |
| interface IDirect3DSurface9(IDirect3DSurface9Vtbl): IDirect3DResource9(IDirect3DResource9Vtbl) { |
| fn GetContainer( |
| riid: *const IID, |
| ppContainer: *mut *mut VOID, |
| ) -> HRESULT, |
| fn GetDesc( |
| pDesc: *mut D3DSURFACE_DESC, |
| ) -> HRESULT, |
| fn LockRect( |
| pLockedRect: *mut D3DLOCKED_RECT, |
| pRect: *const RECT, |
| Flags: DWORD, |
| ) -> HRESULT, |
| fn UnlockRect() -> HRESULT, |
| fn GetDC( |
| phdc: *mut HDC, |
| ) -> HRESULT, |
| fn ReleaseDC( |
| hdc: HDC, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DSURFACE9 = *mut IDirect3DSurface9; |
| pub type PDIRECT3DSURFACE9 = *mut IDirect3DSurface9; |
| RIDL!{#[uuid(0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1)] |
| interface IDirect3DVolume9(IDirect3DVolume9Vtbl): IUnknown(IUnknownVtbl) { |
| fn GetDevice( |
| ppDevice: *mut *mut IDirect3DDevice9, |
| ) -> HRESULT, |
| fn SetPrivateData( |
| refguid: *const GUID, |
| pData: *const VOID, |
| SizeOfData: DWORD, |
| Flags: DWORD, |
| ) -> HRESULT, |
| fn GetPrivateData( |
| refguid: *const GUID, |
| pData: *mut VOID, |
| pSizeOfData: *mut DWORD, |
| ) -> HRESULT, |
| fn FreePrivateData( |
| refguid: *const GUID, |
| ) -> HRESULT, |
| fn GetContainer( |
| riid: *const IID, |
| ppContainer: *mut *mut VOID, |
| ) -> HRESULT, |
| fn GetDesc( |
| pDesc: *mut D3DVOLUME_DESC, |
| ) -> HRESULT, |
| fn LockBox( |
| pLockedVolume: *mut D3DLOCKED_BOX, |
| pBox: *const D3DBOX, |
| Flags: DWORD, |
| ) -> HRESULT, |
| fn UnlockBox() -> HRESULT, |
| }} |
| pub type LPDIRECT3DVOLUME9 = *mut IDirect3DVolume9; |
| pub type PDIRECT3DVOLUME9 = *mut IDirect3DVolume9; |
| RIDL!{#[uuid(0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc)] |
| interface IDirect3DQuery9(IDirect3DQuery9Vtbl): IUnknown(IUnknownVtbl) { |
| fn GetDevice( |
| ppDevice: *mut *mut IDirect3DDevice9, |
| ) -> HRESULT, |
| fn GetType() -> D3DRESOURCETYPE, |
| fn GetDataSize() -> DWORD, |
| fn Issue( |
| dwIssueFlags: DWORD, |
| ) -> HRESULT, |
| fn GetData( |
| pData: *mut VOID, |
| dwSize: DWORD, |
| dwGetDataFlags: DWORD, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DQUERY9 = *mut IDirect3DQuery9; |
| pub type PDIRECT3DQUERY9 = *mut IDirect3DQuery9; |
| pub const D3DCREATE_FPU_PRESERVE: DWORD = 0x2; |
| pub const D3DCREATE_MULTITHREADED: DWORD = 0x4; |
| pub const D3DCREATE_PUREDEVICE: DWORD = 0x10; |
| pub const D3DCREATE_SOFTWARE_VERTEXPROCESSING: DWORD = 0x20; |
| pub const D3DCREATE_HARDWARE_VERTEXPROCESSING: DWORD = 0x40; |
| pub const D3DCREATE_MIXED_VERTEXPROCESSING: DWORD = 0x80; |
| pub const D3DCREATE_DISABLE_DRIVER_MANAGEMENT: DWORD = 0x100; |
| pub const D3DCREATE_ADAPTERGROUP_DEVICE: DWORD = 0x200; |
| pub const D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX: DWORD = 0x400; |
| pub const D3DCREATE_NOWINDOWCHANGES: DWORD = 0x800; |
| pub const D3DCREATE_DISABLE_PSGP_THREADING: DWORD = 0x2000; |
| pub const D3DCREATE_ENABLE_PRESENTSTATS: DWORD = 0x4000; |
| pub const D3DCREATE_DISABLE_PRESENTSTATS: DWORD = 0x8000; |
| pub const D3DCREATE_SCREENSAVER: DWORD = 0x10000000; |
| pub const D3DADAPTER_DEFAULT: DWORD = 0; |
| extern "system" { |
| pub fn Direct3DCreate9Ex( |
| SDKVersion: UINT, |
| arg1: *mut *mut IDirect3D9Ex, |
| ) -> HRESULT; |
| } |
| RIDL!{#[uuid(0x02177241, 0x69fc, 0x400c, 0x8f, 0xf1, 0x93, 0xa4, 0x4d, 0xf6, 0x86, 0x1d)] |
| interface IDirect3D9Ex(IDirect3D9ExVtbl): IDirect3D9(IDirect3D9Vtbl) { |
| fn GetAdapterModeCountEx( |
| Adapter: UINT, |
| pFilter: *const D3DDISPLAYMODEFILTER, |
| ) -> UINT, |
| fn EnumAdapterModesEx( |
| Adapter: UINT, |
| pFilter: *const D3DDISPLAYMODEFILTER, |
| Mode: UINT, |
| pMode: *mut D3DDISPLAYMODEEX, |
| ) -> HRESULT, |
| fn GetAdapterDisplayModeEx( |
| Adapter: UINT, |
| pMode: *mut D3DDISPLAYMODEEX, |
| pRotation: *mut D3DDISPLAYROTATION, |
| ) -> HRESULT, |
| fn CreateDeviceEx( |
| Adapter: UINT, |
| DeviceType: D3DDEVTYPE, |
| hFocusWindow: HWND, |
| BehaviorFlags: DWORD, |
| pPresentationParameters: *mut D3DPRESENT_PARAMETERS, |
| pFullscreenDisplayMode: *mut D3DDISPLAYMODEEX, |
| ppReturnedDeviceInterface: *mut *mut IDirect3DDevice9Ex, |
| ) -> HRESULT, |
| fn GetAdapterLUID( |
| Adapter: UINT, |
| pLUID: *mut LUID, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3D9EX = *mut IDirect3D9Ex; |
| pub type PDIRECT3D9EX = *mut IDirect3D9Ex; |
| RIDL!{#[uuid(0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a)] |
| interface IDirect3DDevice9Ex(IDirect3DDevice9ExVtbl): IDirect3DDevice9(IDirect3DDevice9Vtbl) { |
| fn SetConvolutionMonoKernel( |
| width: UINT, |
| height: UINT, |
| rows: *mut FLOAT, |
| columns: *mut FLOAT, |
| ) -> HRESULT, |
| fn ComposeRects( |
| pSrc: *mut IDirect3DSurface9, |
| pDst: *mut IDirect3DSurface9, |
| pSrcRectDescs: *mut IDirect3DVertexBuffer9, |
| NumRects: UINT, |
| pDstRectDescs: *mut IDirect3DVertexBuffer9, |
| Operation: D3DCOMPOSERECTSOP, |
| Xoffset: INT, |
| Yoffset: INT, |
| ) -> HRESULT, |
| fn PresentEx( |
| pSourceRect: *const RECT, |
| pDestRect: *const RECT, |
| hDestWindowOverride: HWND, |
| pDirtyRegion: *const RGNDATA, |
| dwFlags: DWORD, |
| ) -> HRESULT, |
| fn GetGPUThreadPriority( |
| pPriority: *mut INT, |
| ) -> HRESULT, |
| fn SetGPUThreadPriority( |
| Priority: INT, |
| ) -> HRESULT, |
| fn WaitForVBlank( |
| iSwapChain: UINT, |
| ) -> HRESULT, |
| fn CheckResourceResidency( |
| pResourceArray: *mut *mut IDirect3DResource9, |
| NumResources: UINT32, |
| ) -> HRESULT, |
| fn SetMaximumFrameLatency( |
| MaxLatency: UINT, |
| ) -> HRESULT, |
| fn GetMaximumFrameLatency( |
| pMaxLatency: *mut UINT, |
| ) -> HRESULT, |
| fn CheckDeviceState( |
| hDestinationWindow: HWND, |
| ) -> HRESULT, |
| fn CreateRenderTargetEx( |
| Width: UINT, |
| Height: UINT, |
| Format: D3DFORMAT, |
| MultiSample: D3DMULTISAMPLE_TYPE, |
| MultisampleQuality: DWORD, |
| Lockable: BOOL, |
| ppSurface: *mut *mut IDirect3DSurface9, |
| pSharedHandle: *mut HANDLE, |
| Usage: DWORD, |
| ) -> HRESULT, |
| fn CreateOffscreenPlainSurfaceEx( |
| Width: UINT, |
| Height: UINT, |
| Format: D3DFORMAT, |
| Pool: D3DPOOL, |
| ppSurface: *mut *mut IDirect3DSurface9, |
| pSharedHandle: *mut HANDLE, |
| Usage: DWORD, |
| ) -> HRESULT, |
| fn CreateDepthStencilSurfaceEx( |
| Width: UINT, |
| Height: UINT, |
| Format: D3DFORMAT, |
| MultiSample: D3DMULTISAMPLE_TYPE, |
| MultisampleQuality: DWORD, |
| Discard: BOOL, |
| ppSurface: *mut *mut IDirect3DSurface9, |
| pSharedHandle: *mut HANDLE, |
| Usage: DWORD, |
| ) -> HRESULT, |
| fn ResetEx( |
| pPresentationParameters: *mut D3DPRESENT_PARAMETERS, |
| pFullscreenDisplayMode: *mut D3DDISPLAYMODEEX, |
| ) -> HRESULT, |
| fn GetDisplayModeEx( |
| iSwapChain: UINT, |
| pMode: *mut D3DDISPLAYMODEEX, |
| pRotation: *mut D3DDISPLAYROTATION, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DDEVICE9EX = *mut IDirect3DDevice9Ex; |
| pub type PDIRECT3DDEVICE9EX = *mut IDirect3DDevice9Ex; |
| RIDL!{#[uuid(0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3)] |
| interface IDirect3DSwapChain9Ex(IDirect3DSwapChain9ExVtbl): |
| IDirect3DSwapChain9(IDirect3DSwapChain9Vtbl) { |
| fn GetLastPresentCount( |
| pLastPresentCount: *mut UINT, |
| ) -> HRESULT, |
| fn GetPresentStats( |
| pPresentationStatistics: *mut D3DPRESENTSTATS, |
| ) -> HRESULT, |
| fn GetDisplayModeEx( |
| pMode: *mut D3DDISPLAYMODEEX, |
| pRotation: *mut D3DDISPLAYROTATION, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DSWAPCHAIN9EX = *mut IDirect3DSwapChain9Ex; |
| pub type PDIRECT3DSWAPCHAIN9EX = *mut IDirect3DSwapChain9Ex; |
| RIDL!{#[uuid(0x187aeb13, 0xaaf5, 0x4c59, 0x87, 0x6d, 0xe0, 0x59, 0x8, 0x8c, 0xd, 0xf8)] |
| interface IDirect3D9ExOverlayExtension(IDirect3D9ExOverlayExtensionVtbl): IUnknown(IUnknownVtbl) { |
| fn CheckDeviceOverlayType( |
| Adapter: UINT, |
| DevType: D3DDEVTYPE, |
| OverlayWidth: UINT, |
| OverlayHeight: UINT, |
| OverlayFormat: D3DFORMAT, |
| pDisplayMode: *mut D3DDISPLAYMODEEX, |
| DisplayRotation: D3DDISPLAYROTATION, |
| pOverlayCaps: *mut D3DOVERLAYCAPS, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3D9EXOVERLAYEXTENSION = *mut IDirect3D9ExOverlayExtension; |
| pub type PDIRECT3D9EXOVERLAYEXTENSION = *mut IDirect3D9ExOverlayExtension; |
| RIDL!{#[uuid(0x26dc4561, 0xa1ee, 0x4ae7, 0x96, 0xda, 0x11, 0x8a, 0x36, 0xc0, 0xec, 0x95)] |
| interface IDirect3DDevice9Video(IDirect3DDevice9VideoVtbl): IUnknown(IUnknownVtbl) { |
| fn GetContentProtectionCaps( |
| pCryptoType: *const GUID, |
| pDecodeProfile: *const GUID, |
| pCaps: *mut D3DCONTENTPROTECTIONCAPS, |
| ) -> HRESULT, |
| fn CreateAuthenticatedChannel( |
| ChannelType: D3DAUTHENTICATEDCHANNELTYPE, |
| ppAuthenticatedChannel: *mut *mut IDirect3DAuthenticatedChannel9, |
| pChannelHandle: *mut HANDLE, |
| ) -> HRESULT, |
| fn CreateCryptoSession( |
| pCryptoType: *const GUID, |
| pDecodeProfile: *const GUID, |
| ppCryptoSession: *mut *mut IDirect3DCryptoSession9, |
| pCryptoHandle: *mut HANDLE, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DDEVICE9VIDEO = *mut IDirect3DDevice9Video; |
| pub type PDIRECT3DDEVICE9VIDEO = *mut IDirect3DDevice9Video; |
| RIDL!{#[uuid(0xff24beee, 0xda21, 0x4beb, 0x98, 0xb5, 0xd2, 0xf8, 0x99, 0xf9, 0x8a, 0xf9)] |
| interface IDirect3DAuthenticatedChannel9(IDirect3DAuthenticatedChannel9Vtbl): |
| IUnknown(IUnknownVtbl) { |
| fn GetCertificateSize( |
| pCertificateSize: *mut UINT, |
| ) -> HRESULT, |
| fn GetCertificate( |
| CertifacteSize: UINT, |
| ppCertificate: *mut BYTE, |
| ) -> HRESULT, |
| fn NegotiateKeyExchange( |
| DataSize: UINT, |
| pData: *mut VOID, |
| ) -> HRESULT, |
| fn Query( |
| InputSize: UINT, |
| pInput: *const VOID, |
| OutputSize: UINT, |
| pOutput: *mut VOID, |
| ) -> HRESULT, |
| fn Configure( |
| InputSize: UINT, |
| pInput: *const VOID, |
| pOutput: *mut D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DAUTHENTICATEDCHANNEL9 = *mut IDirect3DAuthenticatedChannel9; |
| pub type PDIRECT3DAUTHENTICATEDCHANNEL9 = *mut IDirect3DAuthenticatedChannel9; |
| RIDL!{#[uuid(0xfa0ab799, 0x7a9c, 0x48ca, 0x8c, 0x5b, 0x23, 0x7e, 0x71, 0xa5, 0x44, 0x34)] |
| interface IDirect3DCryptoSession9(IDirect3DCryptoSession9Vtbl): IUnknown(IUnknownVtbl) { |
| fn GetCertificateSize( |
| pCertificateSize: *mut UINT, |
| ) -> HRESULT, |
| fn GetCertificate( |
| CertifacteSize: UINT, |
| ppCertificate: *mut BYTE, |
| ) -> HRESULT, |
| fn NegotiateKeyExchange( |
| DataSize: UINT, |
| pData: *mut VOID, |
| ) -> HRESULT, |
| fn EncryptionBlt( |
| pSrcSurface: *mut IDirect3DSurface9, |
| pDstSurface: *mut IDirect3DSurface9, |
| DstSurfaceSize: UINT, |
| pIV: *mut VOID, |
| ) -> HRESULT, |
| fn DecryptionBlt( |
| pSrcSurface: *mut IDirect3DSurface9, |
| pDstSurface: *mut IDirect3DSurface9, |
| SrcSurfaceSize: UINT, |
| pEncryptedBlockInfo: *mut D3DENCRYPTED_BLOCK_INFO, |
| pContentKey: *mut VOID, |
| pIV: *mut VOID, |
| ) -> HRESULT, |
| fn GetSurfacePitch( |
| pSrcSurface: *mut IDirect3DSurface9, |
| pSurfacePitch: *mut UINT, |
| ) -> HRESULT, |
| fn StartSessionKeyRefresh( |
| pRandomNumber: *mut VOID, |
| RandomNumberSize: UINT, |
| ) -> HRESULT, |
| fn FinishSessionKeyRefresh() -> HRESULT, |
| fn GetEncryptionBltKey( |
| pReadbackKey: *mut VOID, |
| KeySize: UINT, |
| ) -> HRESULT, |
| }} |
| pub type LPDIRECT3DCRYPTOSESSION9 = *mut IDirect3DCryptoSession9; |
| pub type PDIRECT3DCRYPTOSESSION9 = *mut IDirect3DCryptoSession9; |