123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772 |
- //////////////////////////////////////////////////////////////////////////////
- //
- // 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__
|