OpenGLShaderCompileManager Class Template
Manager that consumes shader compile commands and performs OpenGL compilation/linking. More...
Declaration
Public Member Typedefs Index
template < ... > | |
| using | EngineRoleTag = ManagerRole |
|
Engine role marker used by runtime registries. More... | |
Public Constructors Index
template < ... > | |
| OpenGLShaderCompileManager (RenderResourceWorld &renderResourceWorld, TUniformCacheStrategy &&uniformCacheStrategy) | |
|
Constructs the manager with access to render-resource world storage. More... | |
Public Member Functions Index
template < ... > | |
| void | flush (UpdateContext &updateContext) noexcept |
|
Compiles all queued shaders and clears processed command data. More... | |
template < ... > | |
| bool | submit (const ShaderBatchCompileCommand< THandle > &command) noexcept |
template < ... > | |
| bool | submit (const ShaderCompileCommand< THandle > &command) noexcept |
template < ... > | |
| void | init (helios::engine::runtime::messaging::command::CommandHandlerRegistry &commandHandlerRegistry) noexcept |
|
Registers compile command handlers in the runtime world. More... | |
Private Member Functions Index
template < ... > | |
| bool | load (const std::string &vertexShaderPath, const std::string &fragmentShaderPath, std::string &vertexShaderSource, std::string &fragmentShaderSource) noexcept |
|
Loads the specified vertex and fragment shader. More... | |
template < ... > | |
| bool | compile (ShaderEntity shader) noexcept |
|
Compiles the vertex and fragment shader represented by this instance. More... | |
Private Member Attributes Index
template < ... > | |
| BasicStringFileReader | stringFileReader_ |
template < ... > | |
| RenderResourceWorld & | renderResourceWorld_ |
template < ... > | |
| std::vector< ShaderHandle > | shaderHandles_ |
template < ... > | |
| std::string | vertexShaderSource_ |
template < ... > | |
| std::string | fragmentShaderSource_ |
template < ... > | |
| TUniformCacheStrategy | uniformCacheStrategy_ |
Private Static Attributes Index
template < ... > | |
| static const Logger & | logger_ = LogManager::loggerForScope(HELIOS_LOG_SCOPE) |
Description
Manager that consumes shader compile commands and performs OpenGL compilation/linking.
- Template Parameters
-
THandle Shader handle type.
TCommandBuffer Command buffer type for optional follow-up commands.
Definition at line 64 of file OpenGLShaderCompileManager.ixx.
Public Member Typedefs
EngineRoleTag
|
Engine role marker used by runtime registries.
Definition at line 212 of file OpenGLShaderCompileManager.ixx.
Public Constructors
OpenGLShaderCompileManager()
| inline explicit |
Constructs the manager with access to render-resource world storage.
- Parameters
-
renderResourceWorld Render-resource world used to resolve shader entities.
Definition at line 200 of file OpenGLShaderCompileManager.ixx.
Public Member Functions
flush()
| inline noexcept |
Compiles all queued shaders and clears processed command data.
- Parameters
-
updateContext Frame-local update context.
Definition at line 220 of file OpenGLShaderCompileManager.ixx.
init()
| inline noexcept |
Registers compile command handlers in the runtime world.
- Parameters
-
commandHandlerRegistry Registry used for command-handler registration.
Definition at line 264 of file OpenGLShaderCompileManager.ixx.
submit()
| inline noexcept |
Definition at line 247 of file OpenGLShaderCompileManager.ixx.
submit()
| inline noexcept |
Definition at line 254 of file OpenGLShaderCompileManager.ixx.
Private Member Functions
compile()
| inline noexcept |
Compiles the vertex and fragment shader represented by this instance.
- Returns
true if compilation succeeded, otherwise false.
- Exceptions
-
if compilation failed.
Definition at line 111 of file OpenGLShaderCompileManager.ixx.
load()
| inline noexcept |
Loads the specified vertex and fragment shader.
- Returns
true if loading succeeded, otherwise false.
- Exceptions
-
if loading the specified files failed.
Definition at line 88 of file OpenGLShaderCompileManager.ixx.
Private Member Attributes
fragmentShaderSource_
|
Definition at line 74 of file OpenGLShaderCompileManager.ixx.
renderResourceWorld_
|
Definition at line 68 of file OpenGLShaderCompileManager.ixx.
shaderHandles_
|
Definition at line 70 of file OpenGLShaderCompileManager.ixx.
stringFileReader_
|
Definition at line 66 of file OpenGLShaderCompileManager.ixx.
uniformCacheStrategy_
|
Definition at line 79 of file OpenGLShaderCompileManager.ixx.
vertexShaderSource_
|
Definition at line 72 of file OpenGLShaderCompileManager.ixx.
Private Static Attributes
logger_
| static |
Definition at line 77 of file OpenGLShaderCompileManager.ixx.
The documentation for this class was generated from the following file:
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.