1 /***********************************************************************\ 2 * d3dx10tex.d * 3 * * 4 * Windows API header module * 5 * * 6 * Placed into public domain * 7 \***********************************************************************/ 8 module win32.directx.d3dx10tex; 9 10 private import win32.windows; 11 private import win32.directx.d3d10; 12 private import win32.directx.d3dx10core; 13 14 enum D3DX10_FILTER_FLAG { 15 D3DX10_FILTER_NONE = 0x000001, 16 D3DX10_FILTER_POINT = 0x000002, 17 D3DX10_FILTER_LINEAR = 0x000003, 18 D3DX10_FILTER_TRIANGLE = 0x000004, 19 D3DX10_FILTER_BOX = 0x000005, 20 D3DX10_FILTER_MIRROR_U = 0x010000, 21 D3DX10_FILTER_MIRROR_V = 0x020000, 22 D3DX10_FILTER_MIRROR_W = 0x040000, 23 D3DX10_FILTER_MIRROR = 0x070000, 24 D3DX10_FILTER_DITHER = 0x080000, 25 D3DX10_FILTER_DITHER_DIFFUSION = 0x100000, 26 D3DX10_FILTER_SRGB_IN = 0x200000, 27 D3DX10_FILTER_SRGB_OUT = 0x400000, 28 D3DX10_FILTER_SRGB = 0x600000 29 } 30 31 enum D3DX10_NORMALMAP_FLAG { 32 D3DX10_NORMALMAP_MIRROR_U = 0x010000, 33 D3DX10_NORMALMAP_MIRROR_V = 0x020000, 34 D3DX10_NORMALMAP_MIRROR = 0x030000, 35 D3DX10_NORMALMAP_INVERTSIGN = 0x080000, 36 D3DX10_NORMALMAP_COMPUTE_OCCLUSION = 0x100000 37 } 38 39 enum D3DX10_CHANNEL_FLAG { 40 D3DX10_CHANNEL_RED = 1, 41 D3DX10_CHANNEL_BLUE = 2, 42 D3DX10_CHANNEL_GREEN = 4, 43 D3DX10_CHANNEL_ALPHA = 8, 44 D3DX10_CHANNEL_LUMINANCE = 16 45 } 46 47 enum D3DX10_IMAGE_FILE_FORMAT { 48 D3DX10_IFF_BMP = 0, 49 D3DX10_IFF_JPG = 1, 50 D3DX10_IFF_PNG = 3, 51 D3DX10_IFF_DDS = 4, 52 D3DX10_IFF_TIFF = 10, 53 D3DX10_IFF_GIF = 11, 54 D3DX10_IFF_WMP = 12, 55 D3DX10_IFF_FORCE_DWORD = 0x7fffffff 56 } 57 58 enum D3DX10_SAVE_TEXTURE_FLAG { 59 D3DX10_STF_USEINPUTBLOB = 1 60 } 61 62 struct D3DX10_IMAGE_INFO { 63 UINT Width; 64 UINT Height; 65 UINT Depth; 66 UINT ArraySize; 67 UINT MipLevels; 68 UINT MiscFlags; 69 DXGI_FORMAT Format; 70 D3D10_RESOURCE_DIMENSION ResourceDimension; 71 D3DX10_IMAGE_FILE_FORMAT ImageFileFormat; 72 } 73 74 struct D3DX10_IMAGE_LOAD_INFO { 75 UINT Width; 76 UINT Height; 77 UINT Depth; 78 UINT FirstMipLevel; 79 UINT MipLevels; 80 D3D10_USAGE Usage; 81 UINT BindFlags; 82 UINT CpuAccessFlags; 83 UINT MiscFlags; 84 DXGI_FORMAT Format; 85 UINT Filter; 86 UINT MipFilter; 87 D3DX10_IMAGE_INFO* pSrcInfo; 88 } 89 90 HRESULT D3DX10GetImageInfoFromFileA(LPCSTR pSrcFile, ID3DX10ThreadPump pPump, 91 D3DX10_IMAGE_INFO* pSrcInfo, HRESULT* pHResult); 92 HRESULT D3DX10GetImageInfoFromFileW(LPCWSTR pSrcFile, ID3DX10ThreadPump pPump, 93 D3DX10_IMAGE_INFO* pSrcInfo, HRESULT* pHResult); 94 95 HRESULT D3DX10GetImageInfoFromResourceA(HMODULE hSrcModule, 96 LPCSTR pSrcResource, ID3DX10ThreadPump pPump, D3DX10_IMAGE_INFO* pSrcInfo, 97 HRESULT* pHResult); 98 HRESULT D3DX10GetImageInfoFromResourceW(HMODULE hSrcModule, 99 LPCWSTR pSrcResource, ID3DX10ThreadPump pPump, D3DX10_IMAGE_INFO* pSrcInfo, 100 HRESULT* pHResult); 101 102 HRESULT D3DX10GetImageInfoFromMemory(LPCVOID pSrcData, SIZE_T SrcDataSize, 103 ID3DX10ThreadPump pPump, D3DX10_IMAGE_INFO* pSrcInfo, HRESULT* pHResult); 104 105 HRESULT D3DX10CreateShaderResourceViewFromFileA(ID3D10Device pDevice, 106 LPCSTR pSrcFile, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, 107 ID3D10ShaderResourceView* ppShaderResourceView, HRESULT* pHResult); 108 HRESULT D3DX10CreateShaderResourceViewFromFileW(ID3D10Device pDevice, 109 LPCWSTR pSrcFile, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, 110 ID3D10ShaderResourceView* ppShaderResourceView, HRESULT* pHResult); 111 112 HRESULT D3DX10CreateTextureFromFileA(ID3D10Device pDevice, LPCSTR pSrcFile, 113 D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, 114 ID3D10Resource* ppTexture, HRESULT* pHResult); 115 HRESULT D3DX10CreateTextureFromFileW(ID3D10Device pDevice, LPCWSTR pSrcFile, 116 D3DX10_IMAGE_LOAD_INFO* pLoadInfo, ID3DX10ThreadPump pPump, 117 ID3D10Resource* ppTexture, HRESULT* pHResult); 118 119 HRESULT D3DX10CreateShaderResourceViewFromResourceA(ID3D10Device pDevice, 120 HMODULE hSrcModule, LPCSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 121 ID3DX10ThreadPump pPump, ID3D10ShaderResourceView* ppShaderResourceView, 122 HRESULT* pHResult); 123 HRESULT D3DX10CreateShaderResourceViewFromResourceW(ID3D10Device pDevice, 124 HMODULE hSrcModule, LPCWSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 125 ID3DX10ThreadPump pPump, ID3D10ShaderResourceView* ppShaderResourceView, 126 HRESULT* pHResult); 127 128 HRESULT D3DX10CreateTextureFromResourceA(ID3D10Device pDevice, 129 HMODULE hSrcModule, LPCSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 130 ID3DX10ThreadPump pPump, ID3D10Resource* ppTexture, HRESULT* pHResult); 131 HRESULT D3DX10CreateTextureFromResourceW(ID3D10Device pDevice, 132 HMODULE hSrcModule, LPCWSTR pSrcResource, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 133 ID3DX10ThreadPump pPump, ID3D10Resource* ppTexture, HRESULT* pHResult); 134 135 HRESULT D3DX10CreateShaderResourceViewFromMemory(ID3D10Device pDevice, 136 LPCVOID pSrcData, SIZE_T SrcDataSize, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 137 ID3DX10ThreadPump pPump, ID3D10ShaderResourceView* ppShaderResourceView, 138 HRESULT* pHResult); 139 140 HRESULT D3DX10CreateTextureFromMemory(ID3D10Device pDevice, LPCVOID pSrcData, 141 SIZE_T SrcDataSize, D3DX10_IMAGE_LOAD_INFO* pLoadInfo, 142 ID3DX10ThreadPump pPump, ID3D10Resource* ppTexture, HRESULT* pHResult); 143 144 struct D3DX10_TEXTURE_LOAD_INFO { 145 D3D10_BOX* pSrcBox; 146 D3D10_BOX* pDstBox; 147 UINT SrcFirstMip; 148 UINT DstFirstMip; 149 UINT NumMips; 150 UINT SrcFirstElement; 151 UINT DstFirstElement; 152 UINT NumElements; 153 UINT Filter; 154 UINT MipFilter; 155 } 156 157 HRESULT D3DX10LoadTextureFromTexture(ID3D10Resource pSrcTexture, 158 D3DX10_TEXTURE_LOAD_INFO* pLoadInfo, ID3D10Resource pDstTexture); 159 160 HRESULT D3DX10FilterTexture(ID3D10Resource pTexture, UINT SrcLevel, UINT MipFilter); 161 162 HRESULT D3DX10SaveTextureToFileA(ID3D10Resource pSrcTexture, 163 D3DX10_IMAGE_FILE_FORMAT DestFormat, LPCSTR pDestFile); 164 HRESULT D3DX10SaveTextureToFileW(ID3D10Resource pSrcTexture, 165 D3DX10_IMAGE_FILE_FORMAT DestFormat, LPCWSTR pDestFile); 166 167 HRESULT D3DX10SaveTextureToMemory(ID3D10Resource pSrcTexture, 168 D3DX10_IMAGE_FILE_FORMAT DestFormat, ID3D10Blob* ppDestBuf, UINT Flags); 169 170 HRESULT D3DX10ComputeNormalMap(ID3D10Texture2D pSrcTexture, UINT Flags, 171 UINT Channel, FLOAT Amplitude, ID3D10Texture2D pDestTexture); 172 173 HRESULT D3DX10SHProjectCubeMap(UINT Order, ID3D10Texture2D pCubeMap, 174 FLOAT* pROut, FLOAT* pGOut, FLOAT* pBOut); 175 176 version(Unicode) { 177 alias D3DX10GetImageInfoFromFileW D3DX10GetImageInfoFromFile; 178 alias D3DX10GetImageInfoFromResourceW D3DX10GetImageInfoFromResource; 179 alias D3DX10CreateShaderResourceViewFromFileW D3DX10CreateShaderResourceViewFromFile; 180 alias D3DX10CreateTextureFromFileW D3DX10CreateTextureFromFile; 181 alias D3DX10CreateShaderResourceViewFromResourceW D3DX10CreateShaderResourceViewFromResource; 182 alias D3DX10CreateTextureFromResourceW D3DX10CreateTextureFromResource; 183 alias D3DX10SaveTextureToFileW D3DX10SaveTextureToFile; 184 } else { 185 alias D3DX10GetImageInfoFromFileA D3DX10GetImageInfoFromFile; 186 alias D3DX10GetImageInfoFromResourceA D3DX10GetImageInfoFromResource; 187 alias D3DX10CreateShaderResourceViewFromFileA D3DX10CreateShaderResourceViewFromFile; 188 alias D3DX10CreateTextureFromFileA D3DX10CreateTextureFromFile; 189 alias D3DX10CreateShaderResourceViewFromResourceA D3DX10CreateShaderResourceViewFromResource; 190 alias D3DX10CreateTextureFromResourceA D3DX10CreateTextureFromResource; 191 alias D3DX10SaveTextureToFileA D3DX10SaveTextureToFile; 192 }