"L. Spiro Engine"
|
Manages the sharing of a single Direct3D 11 shader (vertex or pixel shader). More...
#include <LSGDirectX11CompiledShaderManager.h>
Static Public Member Functions | |
static LSVOID LSE_CALL | SetSharing (LSBOOL _bVal) |
static CCompiledShaderBase *LSE_CALL | CreateShader (const CString &_sShaderText, CShaderLanguageParser::LSG_SHADER_TYPES _stShaderType, CShaderTranslationProcessorBase::LSG_UNIFORM_LIST *_pulUniforms, CString &_sError) |
static LSVOID LSE_CALL | DeleteShader (CCompiledShaderBase *_pogcsShader) |
static LSUINT32 LSE_CALL | DeleteUnreferencedShaders () |
Static Protected Attributes | |
static LSBOOL | m_bSharing |
static CMap< CString, CCompiledShaderBase * > | m_mShaders [CShaderLanguageParser::LSG_ST_TOTAL] |
Manages the sharing of a single Direct3D 11 shader (vertex or pixel shader).
Class CDirectX11CompiledShaderManager Description: Manages the sharing of a single Direct3D 11 shader (vertex or pixel shader). Sharing is based off the (adjusted) shader text for the sake of speed. The alternative--sharing based off compiled code-- makes loading times too long. For debug purposes, sharing can be disabled.
static CCompiledShaderBase* LSE_CALL lsg::CDirectX11CompiledShaderManager::CreateShader | ( | const CString & | _sShaderText, |
CShaderLanguageParser::LSG_SHADER_TYPES | _stShaderType, | ||
CShaderTranslationProcessorBase::LSG_UNIFORM_LIST * | _pulUniforms, | ||
CString & | _sError | ||
) | [static] |
Create a new shader of a given type. The shader MUST be deleted using DeleteShader().
_sShaderText | The shader text to compile. The syntax depends on the target graphics API. |
_stShaderType | The shader type. |
_pulUniforms | Shader uniforms. |
_sError | Holds returned errors. |
static LSVOID LSE_CALL lsg::CDirectX11CompiledShaderManager::DeleteShader | ( | CCompiledShaderBase * | _pogcsShader | ) | [static] |
Delete a shader. If sharing, decreases its reference count. Otherwise deletes it from memory.
_pogcsShader | The shader to delete. |
static LSUINT32 LSE_CALL lsg::CDirectX11CompiledShaderManager::DeleteUnreferencedShaders | ( | ) | [static] |
Deletes all unreferenced shaders from memory. Returns the number of shaders NOT deleted.
static LSVOID LSE_CALL lsg::CDirectX11CompiledShaderManager::SetSharing | ( | LSBOOL | _bVal | ) | [static] |
Set sharing.
_bVal | If true, sharing is enabled, otherwise not. |
LSBOOL lsg::CDirectX11CompiledShaderManager::m_bSharing [static, protected] |
Is sharing enabled? Defaults to true. Tools/editors should set this to false at program start.
CMap<CString, CCompiledShaderBase *> lsg::CDirectX11CompiledShaderManager::m_mShaders[CShaderLanguageParser::LSG_ST_TOTAL] [static, protected] |
Map of shaders.