Skip to main content

ShaderCompileSystem Class Template

System that batches shader compile requests for active shader entities. More...

Declaration​

template <typename THandle, typename TCommandBuffer = NullCommandBuffer, size_t TCapacity = DEFAULT_SHADER_POOL_CAPACITY> class helios::engine::rendering::shader::systems::ShaderCompileSystem<THandle, TCommandBuffer, TCapacity> { ... }

Public Member Typedefs Index​

template < ... >
usingEngineRoleTag = TypedSystemRole
template < ... >
usingCommandBuffer_type = TCommandBuffer

Public Constructors Index​

template < ... >
ShaderCompileSystem (size_t capacity=TCapacity)

Public Member Functions Index​

template < ... >
voidupdate (UpdateContext &updateContext, TCommandBuffer &cmdBuffer) noexcept

Collects active shader handles and queues one batch compile command. More...

Private Member Attributes Index​

template < ... >
std::vector< THandle >shaderHandles_
template < ... >
size_tcapacity_

Description​

System that batches shader compile requests for active shader entities.

Template Parameters
THandle

Shader handle type.

TCommandBuffer

Command buffer type used for queued compile commands.

TCapacity

Initial reserve size for the internal handle cache.

Definition at line 48 of file ShaderCompileSystem.ixx.

Public Member Typedefs​

CommandBuffer_type​

template <typename THandle, typename TCommandBuffer = NullCommandBuffer, size_t TCapacity = DEFAULT_SHADER_POOL_CAPACITY>
using helios::engine::rendering::shader::systems::ShaderCompileSystem< THandle, TCommandBuffer, TCapacity >::CommandBuffer_type = TCommandBuffer

Definition at line 57 of file ShaderCompileSystem.ixx.

EngineRoleTag​

template <typename THandle, typename TCommandBuffer = NullCommandBuffer, size_t TCapacity = DEFAULT_SHADER_POOL_CAPACITY>
using helios::engine::rendering::shader::systems::ShaderCompileSystem< THandle, TCommandBuffer, TCapacity >::EngineRoleTag = TypedSystemRole

Definition at line 56 of file ShaderCompileSystem.ixx.

Public Constructors​

ShaderCompileSystem()​

template <typename THandle, typename TCommandBuffer = NullCommandBuffer, size_t TCapacity = DEFAULT_SHADER_POOL_CAPACITY>
helios::engine::rendering::shader::systems::ShaderCompileSystem< THandle, TCommandBuffer, TCapacity >::ShaderCompileSystem (size_t capacity=TCapacity)
inline explicit

Definition at line 59 of file ShaderCompileSystem.ixx.

59 explicit ShaderCompileSystem(size_t capacity = TCapacity) : capacity_(capacity) {
60 shaderHandles_.reserve(capacity);
61 }

Reference helios::engine::rendering::registerComponents.

Public Member Functions​

update()​

template <typename THandle, typename TCommandBuffer = NullCommandBuffer, size_t TCapacity = DEFAULT_SHADER_POOL_CAPACITY>
void helios::engine::rendering::shader::systems::ShaderCompileSystem< THandle, TCommandBuffer, TCapacity >::update (UpdateContext & updateContext, TCommandBuffer & cmdBuffer)
inline noexcept

Collects active shader handles and queues one batch compile command.

Parameters
updateContext

Frame update context.

Definition at line 68 of file ShaderCompileSystem.ixx.

69
70 for (auto [entity, scc] : updateContext.view<
71 THandle,
73 >().withActive()) {
74 shaderHandles_.push_back(entity.handle());
75 }
76
77 cmdBuffer.template add<ShaderBatchCompileCommand<THandle>>(std::move(shaderHandles_));
78
79 shaderHandles_.clear();
80 shaderHandles_.reserve(capacity_);
81
82
83 }

Reference helios::engine::rendering::registerComponents.

Private Member Attributes​

capacity_​

template <typename THandle, typename TCommandBuffer = NullCommandBuffer, size_t TCapacity = DEFAULT_SHADER_POOL_CAPACITY>
size_t helios::engine::rendering::shader::systems::ShaderCompileSystem< THandle, TCommandBuffer, TCapacity >::capacity_

Definition at line 52 of file ShaderCompileSystem.ixx.

52 size_t capacity_;

shaderHandles_​

template <typename THandle, typename TCommandBuffer = NullCommandBuffer, size_t TCapacity = DEFAULT_SHADER_POOL_CAPACITY>
std::vector<THandle> helios::engine::rendering::shader::systems::ShaderCompileSystem< THandle, TCommandBuffer, TCapacity >::shaderHandles_

Definition at line 50 of file ShaderCompileSystem.ixx.

50 std::vector<THandle> shaderHandles_;

The documentation for this class was generated from the following file:


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.