"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSGraphicsLib/Src/DirectXShaders/LSGDirectX9CompiledShaderManager.h

00001 
00019 #ifndef __LSG_DIRECTX9COMPILERDSHADERMANAGER_H__
00020 #define __LSG_DIRECTX9COMPILERDSHADERMANAGER_H__
00021 
00022 #include "../LSGGraphicsLib.h"
00023 #include "LSGDirectX9PixelShader.h"
00024 #include "LSGDirectX9VertexShader.h"
00025 #include "String/LSTLString.h"
00026 
00027 #if defined( LSG_DX9 )
00028 
00029 namespace lsg {
00030 
00040         class CDirectX9CompiledShaderManager {
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_DX9 )
00092 
00093 #endif  // __LSG_DIRECTX9COMPILERDSHADERMANAGER_H__
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator