773 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			773 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
//////////////////////////////////////////////////////////////////////////////
 | 
						|
//
 | 
						|
//  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__
 | 
						|
 |