summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/dxsdk/Include/d3dx11tex.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/dxsdk/Include/d3dx11tex.h')
-rw-r--r--3rdparty/dxsdk/Include/d3dx11tex.h772
1 files changed, 772 insertions, 0 deletions
diff --git a/3rdparty/dxsdk/Include/d3dx11tex.h b/3rdparty/dxsdk/Include/d3dx11tex.h
new file mode 100644
index 00000000000..16c04091368
--- /dev/null
+++ b/3rdparty/dxsdk/Include/d3dx11tex.h
@@ -0,0 +1,772 @@
+//////////////////////////////////////////////////////////////////////////////
+//
+// Copyright (C) Microsoft Corporation. All Rights Reserved.
+//
+// File: d3dx11tex.h
+// Content: D3DX11 texturing APIs
+//
+//////////////////////////////////////////////////////////////////////////////
+
+#include "d3dx11.h"
+
+#ifndef __D3DX11TEX_H__
+#define __D3DX11TEX_H__
+
+
+//----------------------------------------------------------------------------
+// D3DX11_FILTER flags:
+// ------------------
+//
+// A valid filter must contain one of these values:
+//
+// D3DX11_FILTER_NONE
+// No scaling or filtering will take place. Pixels outside the bounds
+// of the source image are assumed to be transparent black.
+// D3DX11_FILTER_POINT
+// Each destination pixel is computed by sampling the nearest pixel
+// from the source image.
+// D3DX11_FILTER_LINEAR
+// Each destination pixel is computed by linearly interpolating between
+// the nearest pixels in the source image. This filter works best
+// when the scale on each axis is less than 2.
+// D3DX11_FILTER_TRIANGLE
+// Every pixel in the source image contributes equally to the
+// destination image. This is the slowest of all the filters.
+// D3DX11_FILTER_BOX
+// Each pixel is computed by averaging a 2x2(x2) box pixels from
+// the source image. Only works when the dimensions of the
+// destination are half those of the source. (as with mip maps)
+//
+// And can be OR'd with any of these optional flags:
+//
+// D3DX11_FILTER_MIRROR_U
+// Indicates that pixels off the edge of the texture on the U-axis
+// should be mirrored, not wraped.
+// D3DX11_FILTER_MIRROR_V
+// Indicates that pixels off the edge of the texture on the V-axis
+// should be mirrored, not wraped.
+// D3DX11_FILTER_MIRROR_W
+// Indicates that pixels off the edge of the texture on the W-axis
+// should be mirrored, not wraped.
+// D3DX11_FILTER_MIRROR
+// Same as specifying D3DX11_FILTER_MIRROR_U | D3DX11_FILTER_MIRROR_V |
+// D3DX11_FILTER_MIRROR_V
+// D3DX11_FILTER_DITHER
+// Dithers the resulting image using a 4x4 order dither pattern.
+// D3DX11_FILTER_SRGB_IN
+// Denotes that the input data is in sRGB (gamma 2.2) colorspace.
+// D3DX11_FILTER_SRGB_OUT
+// Denotes that the output data is in sRGB (gamma 2.2) colorspace.
+// D3DX11_FILTER_SRGB
+// Same as specifying D3DX11_FILTER_SRGB_IN | D3DX11_FILTER_SRGB_OUT
+//
+//----------------------------------------------------------------------------
+
+typedef enum D3DX11_FILTER_FLAG
+{
+ D3DX11_FILTER_NONE = (1 << 0),
+ D3DX11_FILTER_POINT = (2 << 0),
+ D3DX11_FILTER_LINEAR = (3 << 0),
+ D3DX11_FILTER_TRIANGLE = (4 << 0),
+ D3DX11_FILTER_BOX = (5 << 0),
+
+ D3DX11_FILTER_MIRROR_U = (1 << 16),
+ D3DX11_FILTER_MIRROR_V = (2 << 16),
+ D3DX11_FILTER_MIRROR_W = (4 << 16),
+ D3DX11_FILTER_MIRROR = (7 << 16),
+
+ D3DX11_FILTER_DITHER = (1 << 19),
+ D3DX11_FILTER_DITHER_DIFFUSION= (2 << 19),
+
+ D3DX11_FILTER_SRGB_IN = (1 << 21),
+ D3DX11_FILTER_SRGB_OUT = (2 << 21),
+ D3DX11_FILTER_SRGB = (3 << 21),
+} D3DX11_FILTER_FLAG;
+
+//----------------------------------------------------------------------------
+// D3DX11_NORMALMAP flags:
+// ---------------------
+// These flags are used to control how D3DX11ComputeNormalMap generates normal
+// maps. Any number of these flags may be OR'd together in any combination.
+//
+// D3DX11_NORMALMAP_MIRROR_U
+// Indicates that pixels off the edge of the texture on the U-axis
+// should be mirrored, not wraped.
+// D3DX11_NORMALMAP_MIRROR_V
+// Indicates that pixels off the edge of the texture on the V-axis
+// should be mirrored, not wraped.
+// D3DX11_NORMALMAP_MIRROR
+// Same as specifying D3DX11_NORMALMAP_MIRROR_U | D3DX11_NORMALMAP_MIRROR_V
+// D3DX11_NORMALMAP_INVERTSIGN
+// Inverts the direction of each normal
+// D3DX11_NORMALMAP_COMPUTE_OCCLUSION
+// Compute the per pixel Occlusion term and encodes it into the alpha.
+// An Alpha of 1 means that the pixel is not obscured in anyway, and
+// an alpha of 0 would mean that the pixel is completly obscured.
+//
+//----------------------------------------------------------------------------
+
+typedef enum D3DX11_NORMALMAP_FLAG
+{
+ D3DX11_NORMALMAP_MIRROR_U = (1 << 16),
+ D3DX11_NORMALMAP_MIRROR_V = (2 << 16),
+ D3DX11_NORMALMAP_MIRROR = (3 << 16),
+ D3DX11_NORMALMAP_INVERTSIGN = (8 << 16),
+ D3DX11_NORMALMAP_COMPUTE_OCCLUSION = (16 << 16),
+} D3DX11_NORMALMAP_FLAG;
+
+//----------------------------------------------------------------------------
+// D3DX11_CHANNEL flags:
+// -------------------
+// These flags are used by functions which operate on or more channels
+// in a texture.
+//
+// D3DX11_CHANNEL_RED
+// Indicates the red channel should be used
+// D3DX11_CHANNEL_BLUE
+// Indicates the blue channel should be used
+// D3DX11_CHANNEL_GREEN
+// Indicates the green channel should be used
+// D3DX11_CHANNEL_ALPHA
+// Indicates the alpha channel should be used
+// D3DX11_CHANNEL_LUMINANCE
+// Indicates the luminaces of the red green and blue channels should be
+// used.
+//
+//----------------------------------------------------------------------------
+
+typedef enum D3DX11_CHANNEL_FLAG
+{
+ D3DX11_CHANNEL_RED = (1 << 0),
+ D3DX11_CHANNEL_BLUE = (1 << 1),
+ D3DX11_CHANNEL_GREEN = (1 << 2),
+ D3DX11_CHANNEL_ALPHA = (1 << 3),
+ D3DX11_CHANNEL_LUMINANCE = (1 << 4),
+} D3DX11_CHANNEL_FLAG;
+
+
+
+//----------------------------------------------------------------------------
+// D3DX11_IMAGE_FILE_FORMAT:
+// ---------------------
+// This enum is used to describe supported image file formats.
+//
+//----------------------------------------------------------------------------
+
+typedef enum D3DX11_IMAGE_FILE_FORMAT
+{
+ D3DX11_IFF_BMP = 0,
+ D3DX11_IFF_JPG = 1,
+ D3DX11_IFF_PNG = 3,
+ D3DX11_IFF_DDS = 4,
+ D3DX11_IFF_TIFF = 10,
+ D3DX11_IFF_GIF = 11,
+ D3DX11_IFF_WMP = 12,
+ D3DX11_IFF_FORCE_DWORD = 0x7fffffff
+
+} D3DX11_IMAGE_FILE_FORMAT;
+
+
+//----------------------------------------------------------------------------
+// D3DX11_SAVE_TEXTURE_FLAG:
+// ---------------------
+// This enum is used to support texture saving options.
+//
+//----------------------------------------------------------------------------
+
+typedef enum D3DX11_SAVE_TEXTURE_FLAG
+{
+ D3DX11_STF_USEINPUTBLOB = 0x0001,
+} D3DX11_SAVE_TEXTURE_FLAG;
+
+
+//----------------------------------------------------------------------------
+// D3DX11_IMAGE_INFO:
+// ---------------
+// This structure is used to return a rough description of what the
+// the original contents of an image file looked like.
+//
+// Width
+// Width of original image in pixels
+// Height
+// Height of original image in pixels
+// Depth
+// Depth of original image in pixels
+// ArraySize
+// Array size in textures
+// MipLevels
+// Number of mip levels in original image
+// MiscFlags
+// Miscellaneous flags
+// Format
+// D3D format which most closely describes the data in original image
+// ResourceDimension
+// D3D11_RESOURCE_DIMENSION representing the dimension of texture stored in the file.
+// D3D11_RESOURCE_DIMENSION_TEXTURE1D, 2D, 3D
+// ImageFileFormat
+// D3DX11_IMAGE_FILE_FORMAT representing the format of the image file.
+//----------------------------------------------------------------------------
+
+typedef struct D3DX11_IMAGE_INFO
+{
+ UINT Width;
+ UINT Height;
+ UINT Depth;
+ UINT ArraySize;
+ UINT MipLevels;
+ UINT MiscFlags;
+ DXGI_FORMAT Format;
+ D3D11_RESOURCE_DIMENSION ResourceDimension;
+ D3DX11_IMAGE_FILE_FORMAT ImageFileFormat;
+} D3DX11_IMAGE_INFO;
+
+
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif //__cplusplus
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+// Image File APIs ///////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+//----------------------------------------------------------------------------
+// D3DX11_IMAGE_LOAD_INFO:
+// ---------------
+// This structure can be optionally passed in to texture loader APIs to
+// control how textures get loaded. Pass in D3DX11_DEFAULT for any of these
+// to have D3DX automatically pick defaults based on the source file.
+//
+// Width
+// Rescale texture to Width texels wide
+// Height
+// Rescale texture to Height texels high
+// Depth
+// Rescale texture to Depth texels deep
+// FirstMipLevel
+// First mip level to load
+// MipLevels
+// Number of mip levels to load after the first level
+// Usage
+// D3D11_USAGE flag for the new texture
+// BindFlags
+// D3D11 Bind flags for the new texture
+// CpuAccessFlags
+// D3D11 CPU Access flags for the new texture
+// MiscFlags
+// Reserved. Must be 0
+// Format
+// Resample texture to the specified format
+// Filter
+// Filter the texture using the specified filter (only when resampling)
+// MipFilter
+// Filter the texture mip levels using the specified filter (only if
+// generating mips)
+// pSrcInfo
+// (optional) pointer to a D3DX11_IMAGE_INFO structure that will get
+// populated with source image information
+//----------------------------------------------------------------------------
+
+
+typedef struct D3DX11_IMAGE_LOAD_INFO
+{
+ UINT Width;
+ UINT Height;
+ UINT Depth;
+ UINT FirstMipLevel;
+ UINT MipLevels;
+ D3D11_USAGE Usage;
+ UINT BindFlags;
+ UINT CpuAccessFlags;
+ UINT MiscFlags;
+ DXGI_FORMAT Format;
+ UINT Filter;
+ UINT MipFilter;
+ D3DX11_IMAGE_INFO* pSrcInfo;
+
+#ifdef __cplusplus
+ D3DX11_IMAGE_LOAD_INFO()
+ {
+ Width = D3DX11_DEFAULT;
+ Height = D3DX11_DEFAULT;
+ Depth = D3DX11_DEFAULT;
+ FirstMipLevel = D3DX11_DEFAULT;
+ MipLevels = D3DX11_DEFAULT;
+ Usage = (D3D11_USAGE) D3DX11_DEFAULT;
+ BindFlags = D3DX11_DEFAULT;
+ CpuAccessFlags = D3DX11_DEFAULT;
+ MiscFlags = D3DX11_DEFAULT;
+ Format = DXGI_FORMAT_FROM_FILE;
+ Filter = D3DX11_DEFAULT;
+ MipFilter = D3DX11_DEFAULT;
+ pSrcInfo = NULL;
+ }
+#endif
+
+} D3DX11_IMAGE_LOAD_INFO;
+
+//-------------------------------------------------------------------------------
+// GetImageInfoFromFile/Resource/Memory:
+// ------------------------------
+// Fills in a D3DX11_IMAGE_INFO struct with information about an image file.
+//
+// Parameters:
+// pSrcFile
+// File name of the source image.
+// pSrcModule
+// Module where resource is located, or NULL for module associated
+// with image the os used to create the current process.
+// pSrcResource
+// Resource name.
+// pSrcData
+// Pointer to file in memory.
+// SrcDataSize
+// Size in bytes of file in memory.
+// pPump
+// Optional pointer to a thread pump object to use.
+// pSrcInfo
+// Pointer to a D3DX11_IMAGE_INFO structure to be filled in with the
+// description of the data in the source image file.
+// pHResult
+// Pointer to a memory location to receive the return value upon completion.
+// Maybe NULL if not needed.
+// If pPump != NULL, pHResult must be a valid memory location until the
+// the asynchronous execution completes.
+//-------------------------------------------------------------------------------
+
+HRESULT WINAPI
+ D3DX11GetImageInfoFromFileA(
+ LPCSTR pSrcFile,
+ ID3DX11ThreadPump* pPump,
+ D3DX11_IMAGE_INFO* pSrcInfo,
+ HRESULT* pHResult);
+
+HRESULT WINAPI
+ D3DX11GetImageInfoFromFileW(
+ LPCWSTR pSrcFile,
+ ID3DX11ThreadPump* pPump,
+ D3DX11_IMAGE_INFO* pSrcInfo,
+ HRESULT* pHResult);
+
+#ifdef UNICODE
+#define D3DX11GetImageInfoFromFile D3DX11GetImageInfoFromFileW
+#else
+#define D3DX11GetImageInfoFromFile D3DX11GetImageInfoFromFileA
+#endif
+
+
+HRESULT WINAPI
+ D3DX11GetImageInfoFromResourceA(
+ HMODULE hSrcModule,
+ LPCSTR pSrcResource,
+ ID3DX11ThreadPump* pPump,
+ D3DX11_IMAGE_INFO* pSrcInfo,
+ HRESULT* pHResult);
+
+HRESULT WINAPI
+ D3DX11GetImageInfoFromResourceW(
+ HMODULE hSrcModule,
+ LPCWSTR pSrcResource,
+ ID3DX11ThreadPump* pPump,
+ D3DX11_IMAGE_INFO* pSrcInfo,
+ HRESULT* pHResult);
+
+#ifdef UNICODE
+#define D3DX11GetImageInfoFromResource D3DX11GetImageInfoFromResourceW
+#else
+#define D3DX11GetImageInfoFromResource D3DX11GetImageInfoFromResourceA
+#endif
+
+
+HRESULT WINAPI
+ D3DX11GetImageInfoFromMemory(
+ LPCVOID pSrcData,
+ SIZE_T SrcDataSize,
+ ID3DX11ThreadPump* pPump,
+ D3DX11_IMAGE_INFO* pSrcInfo,
+ HRESULT* pHResult);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// Create/Save Texture APIs //////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+//----------------------------------------------------------------------------
+// D3DX11CreateTextureFromFile/Resource/Memory:
+// D3DX11CreateShaderResourceViewFromFile/Resource/Memory:
+// -----------------------------------
+// Create a texture object from a file or resource.
+//
+// Parameters:
+//
+// pDevice
+// The D3D device with which the texture is going to be used.
+// pSrcFile
+// File name.
+// hSrcModule
+// Module handle. if NULL, current module will be used.
+// pSrcResource
+// Resource name in module
+// pvSrcData
+// Pointer to file in memory.
+// SrcDataSize
+// Size in bytes of file in memory.
+// pLoadInfo
+// Optional pointer to a D3DX11_IMAGE_LOAD_INFO structure that
+// contains additional loader parameters.
+// pPump
+// Optional pointer to a thread pump object to use.
+// ppTexture
+// [out] Created texture object.
+// ppShaderResourceView
+// [out] Shader resource view object created.
+// pHResult
+// Pointer to a memory location to receive the return value upon completion.
+// Maybe NULL if not needed.
+// If pPump != NULL, pHResult must be a valid memory location until the
+// the asynchronous execution completes.
+//
+//----------------------------------------------------------------------------
+
+
+// FromFile
+
+HRESULT WINAPI
+ D3DX11CreateShaderResourceViewFromFileA(
+ ID3D11Device* pDevice,
+ LPCSTR pSrcFile,
+ D3DX11_IMAGE_LOAD_INFO *pLoadInfo,
+ ID3DX11ThreadPump* pPump,
+ ID3D11ShaderResourceView** ppShaderResourceView,
+ HRESULT* pHResult);
+
+HRESULT WINAPI
+ D3DX11CreateShaderResourceViewFromFileW(
+ ID3D11Device* pDevice,
+ LPCWSTR pSrcFile,
+ D3DX11_IMAGE_LOAD_INFO *pLoadInfo,
+ ID3DX11ThreadPump* pPump,
+ ID3D11ShaderResourceView** ppShaderResourceView,
+ HRESULT* pHResult);
+
+#ifdef UNICODE
+#define D3DX11CreateShaderResourceViewFromFile D3DX11CreateShaderResourceViewFromFileW
+#else
+#define D3DX11CreateShaderResourceViewFromFile D3DX11CreateShaderResourceViewFromFileA
+#endif
+
+HRESULT WINAPI
+ D3DX11CreateTextureFromFileA(
+ ID3D11Device* pDevice,
+ LPCSTR pSrcFile,
+ D3DX11_IMAGE_LOAD_INFO *pLoadInfo,
+ ID3DX11ThreadPump* pPump,
+ ID3D11Resource** ppTexture,
+ HRESULT* pHResult);
+
+HRESULT WINAPI
+ D3DX11CreateTextureFromFileW(
+ ID3D11Device* pDevice,
+ LPCWSTR pSrcFile,
+ D3DX11_IMAGE_LOAD_INFO *pLoadInfo,
+ ID3DX11ThreadPump* pPump,
+ ID3D11Resource** ppTexture,
+ HRESULT* pHResult);
+
+#ifdef UNICODE
+#define D3DX11CreateTextureFromFile D3DX11CreateTextureFromFileW
+#else
+#define D3DX11CreateTextureFromFile D3DX11CreateTextureFromFileA
+#endif
+
+
+// FromResource (resources in dll/exes)
+
+HRESULT WINAPI
+ D3DX11CreateShaderResourceViewFromResourceA(
+ ID3D11Device* pDevice,
+ HMODULE hSrcModule,
+ LPCSTR pSrcResource,
+ D3DX11_IMAGE_LOAD_INFO* pLoadInfo,
+ ID3DX11ThreadPump* pPump,
+ ID3D11ShaderResourceView** ppShaderResourceView,
+ HRESULT* pHResult);
+
+HRESULT WINAPI
+ D3DX11CreateShaderResourceViewFromResourceW(
+ ID3D11Device* pDevice,
+ HMODULE hSrcModule,
+ LPCWSTR pSrcResource,
+ D3DX11_IMAGE_LOAD_INFO* pLoadInfo,
+ ID3DX11ThreadPump* pPump,
+ ID3D11ShaderResourceView** ppShaderResourceView,
+ HRESULT* pHResult);
+
+#ifdef UNICODE
+#define D3DX11CreateShaderResourceViewFromResource D3DX11CreateShaderResourceViewFromResourceW
+#else
+#define D3DX11CreateShaderResourceViewFromResource D3DX11CreateShaderResourceViewFromResourceA
+#endif
+
+HRESULT WINAPI
+ D3DX11CreateTextureFromResourceA(
+ ID3D11Device* pDevice,
+ HMODULE hSrcModule,
+ LPCSTR pSrcResource,
+ D3DX11_IMAGE_LOAD_INFO *pLoadInfo,
+ ID3DX11ThreadPump* pPump,
+ ID3D11Resource** ppTexture,
+ HRESULT* pHResult);
+
+HRESULT WINAPI
+ D3DX11CreateTextureFromResourceW(
+ ID3D11Device* pDevice,
+ HMODULE hSrcModule,
+ LPCWSTR pSrcResource,
+ D3DX11_IMAGE_LOAD_INFO* pLoadInfo,
+ ID3DX11ThreadPump* pPump,
+ ID3D11Resource** ppTexture,
+ HRESULT* pHResult);
+
+#ifdef UNICODE
+#define D3DX11CreateTextureFromResource D3DX11CreateTextureFromResourceW
+#else
+#define D3DX11CreateTextureFromResource D3DX11CreateTextureFromResourceA
+#endif
+
+
+// FromFileInMemory
+
+HRESULT WINAPI
+ D3DX11CreateShaderResourceViewFromMemory(
+ ID3D11Device* pDevice,
+ LPCVOID pSrcData,
+ SIZE_T SrcDataSize,
+ D3DX11_IMAGE_LOAD_INFO* pLoadInfo,
+ ID3DX11ThreadPump* pPump,
+ ID3D11ShaderResourceView** ppShaderResourceView,
+ HRESULT* pHResult);
+
+HRESULT WINAPI
+ D3DX11CreateTextureFromMemory(
+ ID3D11Device* pDevice,
+ LPCVOID pSrcData,
+ SIZE_T SrcDataSize,
+ D3DX11_IMAGE_LOAD_INFO* pLoadInfo,
+ ID3DX11ThreadPump* pPump,
+ ID3D11Resource** ppTexture,
+ HRESULT* pHResult);
+
+
+//////////////////////////////////////////////////////////////////////////////
+// Misc Texture APIs /////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+
+//----------------------------------------------------------------------------
+// D3DX11_TEXTURE_LOAD_INFO:
+// ------------------------
+//
+//----------------------------------------------------------------------------
+
+typedef struct _D3DX11_TEXTURE_LOAD_INFO
+{
+ D3D11_BOX *pSrcBox;
+ D3D11_BOX *pDstBox;
+ UINT SrcFirstMip;
+ UINT DstFirstMip;
+ UINT NumMips;
+ UINT SrcFirstElement;
+ UINT DstFirstElement;
+ UINT NumElements;
+ UINT Filter;
+ UINT MipFilter;
+
+#ifdef __cplusplus
+ _D3DX11_TEXTURE_LOAD_INFO()
+ {
+ pSrcBox = NULL;
+ pDstBox = NULL;
+ SrcFirstMip = 0;
+ DstFirstMip = 0;
+ NumMips = D3DX11_DEFAULT;
+ SrcFirstElement = 0;
+ DstFirstElement = 0;
+ NumElements = D3DX11_DEFAULT;
+ Filter = D3DX11_DEFAULT;
+ MipFilter = D3DX11_DEFAULT;
+ }
+#endif
+
+} D3DX11_TEXTURE_LOAD_INFO;
+
+
+//----------------------------------------------------------------------------
+// D3DX11LoadTextureFromTexture:
+// ----------------------------
+// Load a texture from a texture.
+//
+// Parameters:
+//
+//----------------------------------------------------------------------------
+
+
+HRESULT WINAPI
+ D3DX11LoadTextureFromTexture(
+ ID3D11DeviceContext *pContext,
+ ID3D11Resource *pSrcTexture,
+ D3DX11_TEXTURE_LOAD_INFO *pLoadInfo,
+ ID3D11Resource *pDstTexture);
+
+
+//----------------------------------------------------------------------------
+// D3DX11FilterTexture:
+// ------------------
+// Filters mipmaps levels of a texture.
+//
+// Parameters:
+// pBaseTexture
+// The texture object to be filtered
+// SrcLevel
+// The level whose image is used to generate the subsequent levels.
+// MipFilter
+// D3DX11_FILTER flags controlling how each miplevel is filtered.
+// Or D3DX11_DEFAULT for D3DX11_FILTER_BOX,
+//
+//----------------------------------------------------------------------------
+
+HRESULT WINAPI
+ D3DX11FilterTexture(
+ ID3D11DeviceContext *pContext,
+ ID3D11Resource *pTexture,
+ UINT SrcLevel,
+ UINT MipFilter);
+
+
+//----------------------------------------------------------------------------
+// D3DX11SaveTextureToFile:
+// ----------------------
+// Save a texture to a file.
+//
+// Parameters:
+// pDestFile
+// File name of the destination file
+// DestFormat
+// D3DX11_IMAGE_FILE_FORMAT specifying file format to use when saving.
+// pSrcTexture
+// Source texture, containing the image to be saved
+//
+//----------------------------------------------------------------------------
+
+HRESULT WINAPI
+ D3DX11SaveTextureToFileA(
+ ID3D11DeviceContext *pContext,
+ ID3D11Resource *pSrcTexture,
+ D3DX11_IMAGE_FILE_FORMAT DestFormat,
+ LPCSTR pDestFile);
+
+HRESULT WINAPI
+ D3DX11SaveTextureToFileW(
+ ID3D11DeviceContext *pContext,
+ ID3D11Resource *pSrcTexture,
+ D3DX11_IMAGE_FILE_FORMAT DestFormat,
+ LPCWSTR pDestFile);
+
+#ifdef UNICODE
+#define D3DX11SaveTextureToFile D3DX11SaveTextureToFileW
+#else
+#define D3DX11SaveTextureToFile D3DX11SaveTextureToFileA
+#endif
+
+
+//----------------------------------------------------------------------------
+// D3DX11SaveTextureToMemory:
+// ----------------------
+// Save a texture to a blob.
+//
+// Parameters:
+// pSrcTexture
+// Source texture, containing the image to be saved
+// DestFormat
+// D3DX11_IMAGE_FILE_FORMAT specifying file format to use when saving.
+// ppDestBuf
+// address of a d3dxbuffer pointer to return the image data
+// Flags
+// optional flags
+//----------------------------------------------------------------------------
+
+HRESULT WINAPI
+ D3DX11SaveTextureToMemory(
+ ID3D11DeviceContext *pContext,
+ ID3D11Resource* pSrcTexture,
+ D3DX11_IMAGE_FILE_FORMAT DestFormat,
+ ID3D10Blob** ppDestBuf,
+ UINT Flags);
+
+
+//----------------------------------------------------------------------------
+// D3DX11ComputeNormalMap:
+// ---------------------
+// Converts a height map into a normal map. The (x,y,z) components of each
+// normal are mapped to the (r,g,b) channels of the output texture.
+//
+// Parameters
+// pSrcTexture
+// Pointer to the source heightmap texture
+// Flags
+// D3DX11_NORMALMAP flags
+// Channel
+// D3DX11_CHANNEL specifying source of height information
+// Amplitude
+// The constant value which the height information is multiplied by.
+// pDestTexture
+// Pointer to the destination texture
+//---------------------------------------------------------------------------
+
+HRESULT WINAPI
+ D3DX11ComputeNormalMap(
+ ID3D11DeviceContext *pContext,
+ ID3D11Texture2D *pSrcTexture,
+ UINT Flags,
+ UINT Channel,
+ FLOAT Amplitude,
+ ID3D11Texture2D *pDestTexture);
+
+
+//----------------------------------------------------------------------------
+// D3DX11SHProjectCubeMap:
+// ----------------------
+// Projects a function represented in a cube map into spherical harmonics.
+//
+// Parameters:
+// Order
+// Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
+// pCubeMap
+// CubeMap that is going to be projected into spherical harmonics
+// pROut
+// Output SH vector for Red.
+// pGOut
+// Output SH vector for Green
+// pBOut
+// Output SH vector for Blue
+//
+//---------------------------------------------------------------------------
+
+HRESULT WINAPI
+ D3DX11SHProjectCubeMap(
+ ID3D11DeviceContext *pContext,
+ __in_range(2,6) UINT Order,
+ ID3D11Texture2D *pCubeMap,
+ __out_ecount(Order*Order) FLOAT *pROut,
+ __out_ecount_opt(Order*Order) FLOAT *pGOut,
+ __out_ecount_opt(Order*Order) FLOAT *pBOut);
+
+#ifdef __cplusplus
+}
+#endif //__cplusplus
+
+#endif //__D3DX11TEX_H__
+