"L. Spiro Engine"
|
00001 00019 #ifndef __LSG_DIRECTX11COMPILERDSHADERMANAGER_H__ 00020 #define __LSG_DIRECTX11COMPILERDSHADERMANAGER_H__ 00021 00022 #include "../LSGGraphicsLib.h" 00023 #include "LSGDirectX11PixelShader.h" 00024 #include "LSGDirectX11VertexShader.h" 00025 #include "String/LSTLString.h" 00026 00027 #if defined( LSG_DX11 ) 00028 00029 namespace lsg { 00030 00040 class CDirectX11CompiledShaderManager { 00041 public : 00042 // == Functions. 00048 static LSVOID LSE_CALL SetSharing( LSBOOL _bVal ); 00049 00059 static CCompiledShaderBase * LSE_CALL CreateShader( const CString &_sShaderText, CShaderLanguageParser::LSG_SHADER_TYPES _stShaderType, 00060 CShaderTranslationProcessorBase::LSG_UNIFORM_LIST * _pulUniforms, CString &_sError ); 00061 00067 static LSVOID LSE_CALL DeleteShader( CCompiledShaderBase * _pogcsShader ); 00068 00074 static LSUINT32 LSE_CALL DeleteUnreferencedShaders(); 00075 00076 protected : 00077 // == Members. 00081 static LSBOOL m_bSharing; 00082 00086 static CMap<CString, CCompiledShaderBase *> m_mShaders[CShaderLanguageParser::LSG_ST_TOTAL]; 00087 }; 00088 00089 } // namespace lsg 00090 00091 #endif // #if defined( LSG_DX11 ) 00092 00093 #endif // __LSG_DIRECTX11COMPILERDSHADERMANAGER_H__