#ifndef _dx11ShaderCompileHelper_h_
#define _dx11ShaderCompileHelper_h_
#include <list>
#include <maya/MApiNamespace.h>
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_