9b639cf2d6 2015-05-05 kinaba: /***********************************************************************\ 9b639cf2d6 2015-05-05 kinaba: * d3dx10core.d * 9b639cf2d6 2015-05-05 kinaba: * * 9b639cf2d6 2015-05-05 kinaba: * Windows API header module * 9b639cf2d6 2015-05-05 kinaba: * * 9b639cf2d6 2015-05-05 kinaba: * Placed into public domain * 9b639cf2d6 2015-05-05 kinaba: \***********************************************************************/ 9b639cf2d6 2015-05-05 kinaba: module win32.directx.d3dx10core; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: private import win32.windows; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: private import win32.directx.d3d10; 9b639cf2d6 2015-05-05 kinaba: private import win32.directx.d3d10effect; 9b639cf2d6 2015-05-05 kinaba: private import win32.directx.d3dx10math; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: const D3DX10_DLL_W = "d3dx10_36.dll"; 9b639cf2d6 2015-05-05 kinaba: const D3DX10_DLL_A = "d3dx10_36.dll"; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: version(Unicode) { 9b639cf2d6 2015-05-05 kinaba: alias D3DX10_DLL_W D3DX10_DLL; 9b639cf2d6 2015-05-05 kinaba: } else { 9b639cf2d6 2015-05-05 kinaba: alias D3DX10_DLL_A D3DX10_DLL; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: const D3DX10_SDK_VERSION = 36; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: extern(Windows) { 9b639cf2d6 2015-05-05 kinaba: HRESULT D3DX10CreateDevice(IDXGIAdapter pAdapter, D3D10_DRIVER_TYPE DriverType, 9b639cf2d6 2015-05-05 kinaba: HMODULE Software, UINT Flags, ID3D10Device* ppDevice); 9b639cf2d6 2015-05-05 kinaba: HRESULT D3DX10CreateDeviceAndSwapChain(IDXGIAdapter pAdapter, D3D10_DRIVER_TYPE DriverType, 9b639cf2d6 2015-05-05 kinaba: HMODULE Software, UINT Flags, DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, IDXGISwapChain* ppSwapChain, 9b639cf2d6 2015-05-05 kinaba: ID3D10Device* ppDevice); 9b639cf2d6 2015-05-05 kinaba: //TODO HRESULT D3DX10GetFeatureLevel1(ID3D10Device pDevice, ID3D10Device1* ppDevice1); 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: debug(D3D10_DEBUG) { 9b639cf2d6 2015-05-05 kinaba: BOOL D3DX10DebugMute(BOOL Mute); 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: HRESULT D3DX10CheckVersion(UINT D3DSdkVersion, UINT D3DX10SdkVersion); 9b639cf2d6 2015-05-05 kinaba: UINT D3DX10GetDriverLevel(ID3D10Device pDevice); 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: enum D3DX10_SPRITE_FLAG { 9b639cf2d6 2015-05-05 kinaba: D3DX10_SPRITE_SORT_TEXTURE = 0x01, 9b639cf2d6 2015-05-05 kinaba: D3DX10_SPRITE_SORT_DEPTH_BACK_TO_FRONT = 0x02, 9b639cf2d6 2015-05-05 kinaba: D3DX10_SPRITE_SORT_DEPTH_FRONT_TO_BACK = 0x04, 9b639cf2d6 2015-05-05 kinaba: D3DX10_SPRITE_SAVE_STATE = 0x08, 9b639cf2d6 2015-05-05 kinaba: D3DX10_SPRITE_ADDREF_TEXTURES = 0x10 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: struct D3DX10_SPRITE { 9b639cf2d6 2015-05-05 kinaba: D3DXMATRIX matWorld; 9b639cf2d6 2015-05-05 kinaba: D3DXVECTOR2 TexCoord; 9b639cf2d6 2015-05-05 kinaba: D3DXVECTOR2 TexSize; 9b639cf2d6 2015-05-05 kinaba: D3DXCOLOR ColorModulate; 9b639cf2d6 2015-05-05 kinaba: ID3D10ShaderResourceView pTexture; 9b639cf2d6 2015-05-05 kinaba: UINT TextureIndex; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: extern(C) const GUID IID_ID3DX10Sprite = {0xba0b762d, 0x8d28, 0x43ec, [0xb9, 0xdc, 0x2f, 0x84, 0x44, 0x3b, 0x06, 0x14]}; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: interface ID3DX10Sprite : IUnknown { 9b639cf2d6 2015-05-05 kinaba: extern(Windows) : 9b639cf2d6 2015-05-05 kinaba: HRESULT Begin(UINT flags); 9b639cf2d6 2015-05-05 kinaba: HRESULT DrawSpritesBuffered(D3DX10_SPRITE* pSprites, UINT cSprites); 9b639cf2d6 2015-05-05 kinaba: HRESULT Flush(); 9b639cf2d6 2015-05-05 kinaba: HRESULT DrawSpritesImmediate(D3DX10_SPRITE* pSprites, UINT cSprites, UINT cbSprite, UINT flags); 9b639cf2d6 2015-05-05 kinaba: HRESULT End(); 9b639cf2d6 2015-05-05 kinaba: HRESULT GetViewTransform(D3DXMATRIX* pViewTransform); 9b639cf2d6 2015-05-05 kinaba: HRESULT SetViewTransform(D3DXMATRIX* pViewTransform); 9b639cf2d6 2015-05-05 kinaba: HRESULT GetProjectionTransform(D3DXMATRIX* pProjectionTransform); 9b639cf2d6 2015-05-05 kinaba: HRESULT SetProjectionTransform(D3DXMATRIX* pProjectionTransform); 9b639cf2d6 2015-05-05 kinaba: HRESULT GetDevice(ID3D10Device* ppDevice); 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: extern(Windows) HRESULT D3DX10CreateSprite(ID3D10Device pDevice, UINT cDeviceBufferSize, ID3DX10Sprite* ppSprite); 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: interface ID3DX10DataLoader { 9b639cf2d6 2015-05-05 kinaba: /* TODO: fix vtbl[0] bug 9b639cf2d6 2015-05-05 kinaba: extern(Windows) : 9b639cf2d6 2015-05-05 kinaba: HRESULT Load(); 9b639cf2d6 2015-05-05 kinaba: HRESULT Decompress(void** ppData, SIZE_T* pcBytes); 9b639cf2d6 2015-05-05 kinaba: HRESULT Destroy(); 9b639cf2d6 2015-05-05 kinaba: */ 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: interface ID3DX10DataProcessor { 9b639cf2d6 2015-05-05 kinaba: /* TODO: fix vtbl[0] bug 9b639cf2d6 2015-05-05 kinaba: extern(Windows) : 9b639cf2d6 2015-05-05 kinaba: HRESULT Process(void* pData, SIZE_T cBytes); 9b639cf2d6 2015-05-05 kinaba: HRESULT CreateDeviceObject(void** ppDataObject); 9b639cf2d6 2015-05-05 kinaba: HRESULT Destroy(); 9b639cf2d6 2015-05-05 kinaba: */ 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: extern(C) const GUID IID_ID3DX10ThreadPump = {0xc93fecfa, 0x6967, 0x478a, [0xab, 0xbc, 0x40, 0x2d, 0x90, 0x62, 0x1f, 0xcb]}; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: interface ID3DX10ThreadPump : IUnknown { 9b639cf2d6 2015-05-05 kinaba: extern(Windows) : 9b639cf2d6 2015-05-05 kinaba: HRESULT AddWorkItem(ID3DX10DataLoader pDataLoader, ID3DX10DataProcessor pDataProcessor, HRESULT *pHResult, void **ppDeviceObject); 9b639cf2d6 2015-05-05 kinaba: UINT GetWorkItemCount(); 9b639cf2d6 2015-05-05 kinaba: HRESULT WaitForAllItems(); 9b639cf2d6 2015-05-05 kinaba: HRESULT ProcessDeviceWorkItems(UINT iWorkItemCount); 9b639cf2d6 2015-05-05 kinaba: HRESULT PurgeAllItems(); 9b639cf2d6 2015-05-05 kinaba: HRESULT GetQueueStatus(UINT* pIoQueue, UINT* pProcessQueue, UINT* pDeviceQueue); 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: extern(Windows) HRESULT D3DX10CreateThreadPump(UINT cIoThreads, UINT cProcThreads, 9b639cf2d6 2015-05-05 kinaba: ID3DX10ThreadPump *ppThreadPump); 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: struct D3DX10_FONT_DESCA { 9b639cf2d6 2015-05-05 kinaba: INT Height; 9b639cf2d6 2015-05-05 kinaba: UINT Width; 9b639cf2d6 2015-05-05 kinaba: UINT Weight; 9b639cf2d6 2015-05-05 kinaba: UINT MipLevels; 9b639cf2d6 2015-05-05 kinaba: BOOL Italic; 9b639cf2d6 2015-05-05 kinaba: BYTE CharSet; 9b639cf2d6 2015-05-05 kinaba: BYTE OutputPrecision; 9b639cf2d6 2015-05-05 kinaba: BYTE Quality; 9b639cf2d6 2015-05-05 kinaba: BYTE PitchAndFamily; 9b639cf2d6 2015-05-05 kinaba: CHAR[LF_FACESIZE] FaceName; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: struct D3DX10_FONT_DESCW { 9b639cf2d6 2015-05-05 kinaba: INT Height; 9b639cf2d6 2015-05-05 kinaba: UINT Width; 9b639cf2d6 2015-05-05 kinaba: UINT Weight; 9b639cf2d6 2015-05-05 kinaba: UINT MipLevels; 9b639cf2d6 2015-05-05 kinaba: BOOL Italic; 9b639cf2d6 2015-05-05 kinaba: BYTE CharSet; 9b639cf2d6 2015-05-05 kinaba: BYTE OutputPrecision; 9b639cf2d6 2015-05-05 kinaba: BYTE Quality; 9b639cf2d6 2015-05-05 kinaba: BYTE PitchAndFamily; 9b639cf2d6 2015-05-05 kinaba: WCHAR[LF_FACESIZE] FaceName; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: version(Unicode) { 9b639cf2d6 2015-05-05 kinaba: alias D3DX10_FONT_DESCW D3DX10_FONT_DESC; 9b639cf2d6 2015-05-05 kinaba: } else { 9b639cf2d6 2015-05-05 kinaba: alias D3DX10_FONT_DESCA D3DX10_FONT_DESC; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: extern(C) const GUID IID_ID3DX10Font = {0xd79dbb70, 0x5f21, 0x4d36, [0xbb, 0xc2, 0xff, 0x52, 0x5c, 0x21, 0x3c, 0xdc]}; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: interface ID3DX10Font : IUnknown { 9b639cf2d6 2015-05-05 kinaba: extern(Windows) : 9b639cf2d6 2015-05-05 kinaba: HRESULT GetDevice(ID3D10Device* ppDevice); 9b639cf2d6 2015-05-05 kinaba: HRESULT GetDescA(D3DX10_FONT_DESCA* pDesc); 9b639cf2d6 2015-05-05 kinaba: HRESULT GetDescW(D3DX10_FONT_DESCW* pDesc); 9b639cf2d6 2015-05-05 kinaba: BOOL GetTextMetricsA(TEXTMETRICA* pTextMetrics); 9b639cf2d6 2015-05-05 kinaba: BOOL GetTextMetricsW(TEXTMETRICW* pTextMetrics); 9b639cf2d6 2015-05-05 kinaba: HDC GetDC(); 9b639cf2d6 2015-05-05 kinaba: HRESULT GetGlyphData(UINT Glyph, ID3D10ShaderResourceView* ppTexture, RECT* pBlackBox, POINT* pCellInc); 9b639cf2d6 2015-05-05 kinaba: HRESULT PreloadCharacters(UINT First, UINT Last); 9b639cf2d6 2015-05-05 kinaba: HRESULT PreloadGlyphs(UINT First, UINT Last); 9b639cf2d6 2015-05-05 kinaba: HRESULT PreloadTextA(LPCSTR pString, INT Count); 9b639cf2d6 2015-05-05 kinaba: HRESULT PreloadTextW(LPCWSTR pString, INT Count); 9b639cf2d6 2015-05-05 kinaba: INT DrawTextA(ID3DX10Sprite pSprite, LPCSTR pString, INT Count, LPRECT pRect, UINT Format, D3DXCOLOR Color); 9b639cf2d6 2015-05-05 kinaba: INT DrawTextW(ID3DX10Sprite pSprite, LPCWSTR pString, INT Count, LPRECT pRect, UINT Format, D3DXCOLOR Color); 9b639cf2d6 2015-05-05 kinaba: version(Unicode) { 9b639cf2d6 2015-05-05 kinaba: alias GetTextMetricsW GetTextMetrics; 9b639cf2d6 2015-05-05 kinaba: alias DrawTextW DrawText; 9b639cf2d6 2015-05-05 kinaba: } else { 9b639cf2d6 2015-05-05 kinaba: alias GetTextMetricsA GetTextMetrics; 9b639cf2d6 2015-05-05 kinaba: alias DrawTextA DrawText; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: extern(Windows) { 9b639cf2d6 2015-05-05 kinaba: HRESULT D3DX10CreateFontA(ID3D10Device pDevice, INT Height, UINT Width, UINT Weight, 9b639cf2d6 2015-05-05 kinaba: UINT MipLevels, BOOL Italic, UINT CharSet, UINT OutputPrecision, UINT Quality, 9b639cf2d6 2015-05-05 kinaba: UINT PitchAndFamily, LPCSTR pFaceName, ID3DX10Font* ppFont); 9b639cf2d6 2015-05-05 kinaba: HRESULT D3DX10CreateFontW(ID3D10Device pDevice, INT Height, UINT Width, UINT Weight, 9b639cf2d6 2015-05-05 kinaba: UINT MipLevels, BOOL Italic, UINT CharSet, UINT OutputPrecision, UINT Quality, 9b639cf2d6 2015-05-05 kinaba: UINT PitchAndFamily, LPCWSTR pFaceName, ID3DX10Font* ppFont); 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: version(Unicode) { 9b639cf2d6 2015-05-05 kinaba: alias D3DX10CreateFontW D3DX10CreateFont; 9b639cf2d6 2015-05-05 kinaba: } else { 9b639cf2d6 2015-05-05 kinaba: alias D3DX10CreateFontA D3DX10CreateFont; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: extern(Windows) { 9b639cf2d6 2015-05-05 kinaba: HRESULT D3DX10CreateFontIndirectA(ID3D10Device pDevice, D3DX10_FONT_DESCA* pDesc, ID3DX10Font* ppFont); 9b639cf2d6 2015-05-05 kinaba: HRESULT D3DX10CreateFontIndirectW(ID3D10Device pDevice, D3DX10_FONT_DESCW* pDesc, ID3DX10Font* ppFont); 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: version(Unicode) { 9b639cf2d6 2015-05-05 kinaba: alias D3DX10CreateFontIndirectW D3DX10CreateFontIndirect; 9b639cf2d6 2015-05-05 kinaba: } else { 9b639cf2d6 2015-05-05 kinaba: alias D3DX10CreateFontIndirectA D3DX10CreateFontIndirect; 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: extern(Windows) { 9b639cf2d6 2015-05-05 kinaba: HRESULT D3DX10UnsetAllDeviceObjects(ID3D10Device pDevice); 9b639cf2d6 2015-05-05 kinaba: //TODO HRESULT D3DX10ReflectShader(void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10ShaderReflection1 *ppReflector); 9b639cf2d6 2015-05-05 kinaba: HRESULT D3DX10DisassembleShader(void *pShader, SIZE_T BytecodeLength, BOOL EnableColorCode, 9b639cf2d6 2015-05-05 kinaba: LPCSTR pComments, ID3D10Blob* ppDisassembly); 9b639cf2d6 2015-05-05 kinaba: HRESULT D3DX10DisassembleEffect(ID3D10Effect pEffect, BOOL EnableColorCode, ID3D10Blob* ppDisassembly); 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: const _FACD3D = 0x876; 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: HRESULT MAKE_D3DHRESULT(T)(T code) { 9b639cf2d6 2015-05-05 kinaba: return MAKE_HRESULT(1, _FACD3D, code); 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: HRESULT MAKE_D3DSTATUS(T)(T code) { 9b639cf2d6 2015-05-05 kinaba: return MAKE_HRESULT(0, _FACD3D, code); 9b639cf2d6 2015-05-05 kinaba: } 9b639cf2d6 2015-05-05 kinaba: 9b639cf2d6 2015-05-05 kinaba: const D3DERR_INVALIDCALL = MAKE_D3DHRESULT(2156); 9b639cf2d6 2015-05-05 kinaba: const D3DERR_WASSTILLDRAWING = MAKE_D3DHRESULT(540);