www.pudn.com > SGSDK.rar > d3dx10async.h, change:2005-11-29,size:14570b


 
////////////////////////////////////////////////////////////////////////////// 
// 
//  Copyright (c) Microsoft Corporation.  All rights reserved. 
// 
//  File:       D3DX10Effect.h 
//  Content:    D3DX10 Effect / Shader loaders 
// 
////////////////////////////////////////////////////////////////////////////// 
 
#ifndef __D3DX10EFFECT_H__ 
#define __D3DX10EFFECT_H__ 
 
#include "d3dx10.h" 
 
#ifdef __cplusplus 
extern "C" { 
#endif //__cplusplus 
 
 
//---------------------------------------------------------------------------- 
// D3DX10CompileShader: 
// ------------------ 
// Compiles a shader. 
// 
// Parameters: 
//  pSrcFile 
//      Source file name. 
//  hSrcModule 
//      Module handle. if NULL, current module will be used. 
//  pSrcResource 
//      Resource name in module. 
//  pSrcData 
//      Pointer to source code. 
//  SrcDataLen 
//      Size of source code, in bytes. 
//  pDefines 
//      Optional NULL-terminated array of preprocessor macro definitions. 
//  pInclude 
//      Optional interface pointer to use for handling #include directives. 
//      If this parameter is NULL, #includes will be honored when compiling 
//      from file, and will error when compiling from resource or memory. 
//  pFunctionName 
//      Name of the entrypoint function where execution should begin. 
//  pProfile 
//      Instruction set to be used when generating code.  Currently supported 
//      profiles are "vs_1_1", "vs_2_0", "vs_2_a", "vs_2_sw", "ps_1_1",  
//      "ps_1_2", "ps_1_3", "ps_1_4", "ps_2_0", "ps_2_a", "ps_2_sw", "tx_1_0" 
//  Flags 
//      See D3D10_SHADER_xxx flags. 
//  ppShader 
//      Returns a buffer containing the created shader.  This buffer contains 
//      the compiled shader code, as well as any embedded debug and symbol 
//      table info.  (See D3D10GetShaderConstantTable) 
//  ppErrorMsgs 
//      Returns a buffer containing a listing of errors and warnings that were 
//      encountered during the compile.  If you are running in a debugger, 
//      these are the same messages you will see in your debug output. 
//---------------------------------------------------------------------------- 
 
HRESULT WINAPI D3DX10CompileShaderFromFileA(LPCSTR pSrcFile,CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 
        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs); 
 
HRESULT WINAPI D3DX10CompileShaderFromFileW(LPCWSTR pSrcFile, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 
        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs); 
 
#ifdef UNICODE 
#define D3DX10CompileShaderFromFile D3DX10CompileShaderFromFileW 
#else 
#define D3DX10CompileShaderFromFile D3DX10CompileShaderFromFileA 
#endif 
 
HRESULT WINAPI D3DX10CompileShaderFromResourceA(HMODULE hSrcModule, LPCSTR pSrcResource, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,  
    LPD3D10INCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs); 
 
HRESULT WINAPI D3DX10CompileShaderFromResourceW(HMODULE hSrcModule, LPCWSTR pSrcResource, LPCWSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,  
    LPD3D10INCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs); 
 
#ifdef UNICODE 
#define D3DX10CompileShaderFromResource D3DX10CompileShaderFromResourceW 
#else 
#define D3DX10CompileShaderFromResource D3DX10CompileShaderFromResourceA 
#endif 
 
HRESULT WINAPI D3DX10CompileShaderFromMemory(LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,  
    LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3DX10ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs); 
 
//---------------------------------------------------------------------------- 
// D3D10CreateEffectFromXXXX: 
// -------------------------- 
// Creates an effect from a binary effect or file 
// 
// Parameters: 
// 
// [in] 
// 
//  TODO: Unicode support 
//  TODO: Support for binary (and not just ASCII) 
// 
//  pFileName 
//      Name of the ASCII (uncompiled) or binary (compiled) Effect file to load 
// 
//  hModule 
//      Handle to the module containing the resource to compile from 
//  pResourceName 
//      Name of the resource within hModule to compile from 
// 
//  pData 
//      Blob of effect data, either ASCII (uncompiled) or binary (compiled) 
//  DataLength 
//      Length of the data blob 
// 
//  pDefines 
//      Optional NULL-terminated array of preprocessor macro definitions. 
//  pInclude 
//      Optional interface pointer to use for handling #include directives. 
//      If this parameter is NULL, #includes will be honored when compiling 
//      from file, and will error when compiling from resource or memory. 
//  HLSLFlags 
//      Compilation flags pertaining to shaders and data types, honored by 
//      the HLSL compiler 
//  FXFlags 
//      Compilation flags pertaining to Effect compilation, honored 
//      by the Effect compiler 
//  pDevice 
//      Pointer to the D3D10 device on which to create Effect resources 
//  pEffectPool 
//      Pointer to an Effect pool to share variables with or NULL 
// 
// [out] 
// 
//  ppEffect 
//      Address of the newly created Effect interface 
//  ppEffectPool 
//      Address of the newly created Effect pool interface 
//  ppErrors 
//      If non-NULL, address of a buffer with error messages that occurred  
//      during parsing or compilation 
// 
//---------------------------------------------------------------------------- 
 
 
HRESULT WINAPI D3DX10CompileEffectFromFileA(LPCSTR pFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3DX10ThreadPump* pPump,  
    ID3D10Blob **ppCompiledEffect, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CompileEffectFromFileW(LPCWSTR pFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3DX10ThreadPump* pPump,  
    ID3D10Blob **ppCompiledEffect, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CompileEffectFromMemory(LPCVOID pData, SIZE_T DataLength, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags,  
    ID3DX10ThreadPump* pPump, ID3D10Blob **ppCompiledEffect, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CompileEffectFromResourceA(HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags,  
    ID3DX10ThreadPump* pPump, ID3D10Blob **ppCompiledEffect, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CompileEffectFromResourceW(HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags,  
    ID3DX10ThreadPump* pPump, ID3D10Blob **ppCompiledEffect, ID3D10Blob **ppErrors); 
 
#ifdef UNICODE 
#define D3DX10CompileEffectFromFile         D3DX10CompileEffectFromFileW 
#define D3DX10CompileEffectFromResource     D3DX10CompileEffectFromResourceW 
#else 
#define D3DX10CompileEffectFromFile         D3DX10CompileEffectFromFileA 
#define D3DX10CompileEffectFromResource     D3DX10CompileEffectFromResourceA 
#endif 
 
HRESULT WINAPI D3DX10CreateEffectFromFileA(LPCSTR pFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice,  
    ID3D10EffectPool *pEffectPool, ID3DX10ThreadPump* pPump, ID3D10Effect **ppEffect, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CreateEffectFromFileW(LPCWSTR pFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice,  
    ID3D10EffectPool *pEffectPool, ID3DX10ThreadPump* pPump, ID3D10Effect **ppEffect, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CreateEffectFromMemory(LPCVOID pData, SIZE_T DataLength, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice,  
    ID3D10EffectPool *pEffectPool, ID3DX10ThreadPump* pPump, ID3D10Effect **ppEffect, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CreateEffectFromResourceA(HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice,  
    ID3D10EffectPool *pEffectPool, ID3DX10ThreadPump* pPump, ID3D10Effect **ppEffect, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CreateEffectFromResourceW(HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice,  
    ID3D10EffectPool *pEffectPool, ID3DX10ThreadPump* pPump, ID3D10Effect **ppEffect, ID3D10Blob **ppErrors); 
 
 
#ifdef UNICODE 
#define D3DX10CreateEffectFromFile          D3DX10CreateEffectFromFileW 
#define D3DX10CreateEffectFromResource      D3DX10CreateEffectFromResourceW 
#else 
#define D3DX10CreateEffectFromFile          D3DX10CreateEffectFromFileA 
#define D3DX10CreateEffectFromResource      D3DX10CreateEffectFromResourceA 
#endif 
 
HRESULT WINAPI D3DX10CreateEffectPoolFromFileA(LPCSTR pFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice, ID3DX10ThreadPump* pPump,  
    ID3D10EffectPool **ppEffectPool, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CreateEffectPoolFromFileW(LPCWSTR pFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice, ID3DX10ThreadPump* pPump,  
    ID3D10EffectPool **ppEffectPool, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CreateEffectPoolFromMemory(LPCVOID pData, SIZE_T DataLength, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice, 
    ID3DX10ThreadPump* pPump, ID3D10EffectPool **ppEffectPool, ID3D10Blob **ppErrors); 
 
HRESULT WINAPI D3DX10CreateEffectPoolFromResourceA(HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice, 
    ID3DX10ThreadPump* pPump, ID3D10EffectPool **ppEffectPool, ID3D10Blob **ppErrors); 
                                          
HRESULT WINAPI D3DX10CreateEffectPoolFromResourceW(HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,  
    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice, 
    ID3DX10ThreadPump* pPump, ID3D10EffectPool **ppEffectPool, ID3D10Blob **ppErrors); 
 
#ifdef UNICODE 
#define D3DX10CreateEffectPoolFromFile      D3DX10CreateEffectPoolFromFileW 
#define D3DX10CreateEffectPoolFromResource  D3DX10CreateEffectPoolFromResourceW 
#else 
#define D3DX10CreateEffectPoolFromFile      D3DX10CreateEffectPoolFromFileA 
#define D3DX10CreateEffectPoolFromResource  D3DX10CreateEffectPoolFromResourceA 
#endif 
 
HRESULT WINAPI D3DX10PreprocessShaderFromFileA(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,  
    LPD3D10INCLUDE pInclude, ID3DX10ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs); 
 
HRESULT WINAPI D3DX10PreprocessShaderFromFileW(LPCWSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,  
    LPD3D10INCLUDE pInclude, ID3DX10ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs); 
 
HRESULT WINAPI D3DX10PreprocessShaderFromMemory(LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,  
    LPD3D10INCLUDE pInclude, ID3DX10ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs); 
 
HRESULT WINAPI D3DX10PreprocessShaderFromResourceA(HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,  
    LPD3D10INCLUDE pInclude, ID3DX10ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs); 
 
HRESULT WINAPI D3DX10PreprocessShaderFromResourceW(HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,  
    LPD3D10INCLUDE pInclude, ID3DX10ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs); 
 
#ifdef UNICODE 
#define D3DX10PreprocessShaderFromFile      D3DX10PreprocessShaderFromFileW 
#define D3DX10PreprocessShaderFromResource  D3DX10PreprocessShaderFromResourceW 
#else 
#define D3DX10PreprocessShaderFromFile      D3DX10PreprocessShaderFromFileA 
#define D3DX10PreprocessShaderFromResource  D3DX10PreprocessShaderFromResourceA 
#endif 
 
//---------------------------------------------------------------------------- 
// Async processors 
//---------------------------------------------------------------------------- 
 
HRESULT WINAPI D3DX10CreateAsyncShaderCompilerProcessor(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,  
        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, 
        ID3D10Blob **ppCompiledShader, ID3D10Blob **ppErrorBuffer, ID3DX10DataProcessor **ppProcessor); 
 
HRESULT WINAPI D3DX10CreateAsyncEffectCompilerProcessor(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,  
        UINT Flags, UINT FXFlags, 
        ID3D10Blob **ppCompiledShader, ID3D10Blob **ppErrorBuffer, ID3DX10DataProcessor **ppProcessor); 
 
HRESULT WINAPI D3DX10CreateAsyncEffectCreateProcessor(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,  
        UINT Flags, UINT FXFlags, ID3D10Device *pDevice, 
        ID3D10EffectPool *pPool, ID3D10Blob **ppErrorBuffer, ID3DX10DataProcessor **ppProcessor); 
 
HRESULT WINAPI D3DX10CreateAsyncEffectPoolCreateProcessor(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,  
        UINT Flags, UINT FXFlags, ID3D10Device *pDevice, 
        ID3D10Blob **ppErrorBuffer, ID3DX10DataProcessor **ppProcessor); 
 
HRESULT WINAPI D3DX10CreateAsyncShaderPreprocessProcessor(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,  
        ID3D10Blob** ppShaderText, ID3D10Blob **ppErrorBuffer, ID3DX10DataProcessor **ppProcessor); 
 
#ifdef __cplusplus 
} 
#endif //__cplusplus 
 
#endif //__D3D10EFFECT_H__