dx11Shader/dx11ShaderCompileHelper.h
         
    
#ifndef _dx11ShaderCompileHelper_h_
#define _dx11ShaderCompileHelper_h_
#include <list>
struct ID3D11Device;
struct ID3DX11Effect;
class dx11ShaderNode;
namespace CDX11EffectCompileHelper
{
    
    void releaseEffect(dx11ShaderNode* node, ID3DX11Effect* effect, 
const MString& fileName);
 
    
    ID3DX11Effect* build(dx11ShaderNode* node, ID3D11Device* device, 
const MString& fileName, 
MString &errorLog, 
bool useStrictness = 
false);
    
    ID3DX11Effect* build(dx11ShaderNode* node, ID3D11Device* device, 
const MString& fileName, ID3DX11Effect* effectSource, 
MString &errorLog);
    
    ID3DX11Effect* build(dx11ShaderNode* node, ID3D11Device* device, 
const void* buffer, 
unsigned int dataSize, 
MString &errorLog, 
bool useStrictness = 
false);
    
    MString resolveShaderFileName(
const MString& shaderPath, 
bool* fileExists = NULL);
 
    
    typedef std::list< dx11ShaderNode* > ShaderNodeList;
    void getNodesUsingEffect(
const MString& fileName, ShaderNodeList &nodes);
 
};
#endif //_dx11ShaderCompilHelper_h_