SceneRenderSystem Class Template
System that dispatches render commands from visibility results. More...
Declaration
Public Member Typedefs Index
template < ... > | |
| using | EngineRoleTag = helios::engine::runtime::world::tags::TypedSystemRole |
|
Runtime role tag used for engine system registration. More... | |
template < ... > | |
| using | CommandBuffer_type = TCommandBuffer |
|
Command buffer type used by this extraction system. More... | |
Public Constructors Index
template < ... > | |
| SceneRenderSystem (SceneMemberVisibilityRegistry< TMemberHandle > &visibilityRegistry) | |
|
Constructs the system with the visibility snapshot registry. More... | |
Public Member Functions Index
template < ... > | |
| void | update (UpdateContext &updateContext, TCommandBuffer &cmdBuffer) noexcept |
|
Dispatches render commands from the current visibility snapshot. More... | |
Private Member Functions Index
template < ... > | |
| void | dispatchNonInstancedRenderCommands (UpdateContext &updateContext, std::span< const std::vector< SceneMemberVisibilityContext< TMemberHandle, NonInstanced > > > visibilityContexts, TCommandBuffer &cmdBuffer) |
|
Dispatches non-instanced member render commands. More... | |
template < ... > | |
| void | dispatchInstancedRenderCommands (UpdateContext &updateContext, std::span< const std::vector< SceneMemberVisibilityContext< TMemberHandle, Instanced > > > visibilityContexts, TCommandBuffer &cmdBuffer) |
|
Dispatches instanced member render commands in batches. More... | |
Private Member Attributes Index
template < ... > | |
| SceneMemberVisibilityRegistry< TMemberHandle > & | visibilityRegistry_ |
|
Central per-frame visibility snapshot consumed by this system. More... | |
Private Static Attributes Index
template < ... > | |
| static auto & | logger_ = helios::engine::util::log::LogManager::loggerForScope(HELIOS_LOG_SCOPE) |
Description
System that dispatches render commands from visibility results.
This system consumes the frame-local SceneMemberVisibilityRegistry produced earlier by SceneMemberVisibilitySystem. It emits scene-level render commands and member-level commands for both instanced and non-instanced submission paths.
- Template Parameters
-
TOwnerHandle Viewport entity handle type.
TMemberHandle Scene member handle type.
TCommandBuffer Command buffer used for extracted render commands.
Definition at line 94 of file SceneRenderSystem.ixx.
Public Member Typedefs
CommandBuffer_type
|
Command buffer type used by this extraction system.
Definition at line 233 of file SceneRenderSystem.ixx.
EngineRoleTag
|
Runtime role tag used for engine system registration.
Definition at line 228 of file SceneRenderSystem.ixx.
Public Constructors
SceneRenderSystem()
| inline explicit |
Constructs the system with the visibility snapshot registry.
- Parameters
-
visibilityRegistry Registry containing per-frame visible/culled members.
Definition at line 240 of file SceneRenderSystem.ixx.
Public Member Functions
update()
| inline noexcept |
Dispatches render commands from the current visibility snapshot.
Emits one RenderSceneCommand per scene/render-target/viewport context, then emits member commands for instanced and non-instanced visible members stored in SceneMemberVisibilityRegistry.
- Parameters
-
updateContext Current frame update context.
cmdBuffer Command buffer receiving extracted render commands.
Definition at line 254 of file SceneRenderSystem.ixx.
References helios::engine::scene::registerComponents and helios::engine::scene::SceneMemberVisibilityRegistry< TMemberHandle >::sceneRenderContexts.
Private Member Functions
dispatchInstancedRenderCommands()
| inline |
Dispatches instanced member render commands in batches.
Builds InstanceRenderBatchContext groups with matching render state and emits RenderInstanceBatchCommand whenever a batch boundary is hit.
- Parameters
-
updateContext Current frame update context.
visibilityContexts Visible instanced members grouped by viewport.
cmdBuffer Command buffer receiving render commands.
Definition at line 160 of file SceneRenderSystem.ixx.
dispatchNonInstancedRenderCommands()
| inline |
Dispatches non-instanced member render commands.
Iterates visible non-instanced member contexts and emits one RenderSceneMemberCommand per member.
- Parameters
-
updateContext Current frame update context.
visibilityContexts Visible non-instanced members grouped by viewport.
cmdBuffer Command buffer receiving render commands.
Definition at line 116 of file SceneRenderSystem.ixx.
Private Member Attributes
visibilityRegistry_
|
Central per-frame visibility snapshot consumed by this system.
Filled by SceneMemberVisibilitySystem and read-only in this stage.
Definition at line 103 of file SceneRenderSystem.ixx.
Private Static Attributes
logger_
| static |
Definition at line 96 of file SceneRenderSystem.ixx.
The documentation for this class was generated from the following file:
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.