SceneMemberVisibilityRegistry Class Template
Stores per-viewport visibility/culling results for scene members. More...
Declaration
Public Constructors Index
template <typename TMemberHandle> | |
| SceneMemberVisibilityRegistry () | |
|
Constructs the registry with pre-reserved top-level storage. More... | |
Public Member Functions Index
template <typename TMemberHandle> | |
| void | addSceneRenderContext (SceneRenderContext< TMemberHandle > &&context) |
|
Adds a scene render context if it is not already present. More... | |
template <typename TMemberHandle> | |
| auto | sceneRenderContexts () const noexcept -> std::span< const SceneRenderContext< TMemberHandle > > |
|
Returns all registered scene render contexts. More... | |
template <typename TSubmissionMode> | |
| void | addCulledMember (const ViewportHandle viewportHandle, SceneMemberVisibilityContext< TMemberHandle, TSubmissionMode > &&context) |
|
Adds a culled member visibility context for a viewport. More... | |
template <typename TSubmissionMode> | |
| void | addVisibleMember (const ViewportHandle viewportHandle, SceneMemberVisibilityContext< TMemberHandle, TSubmissionMode > &&context) |
|
Adds a visible member visibility context for a viewport. More... | |
template <typename TSubmissionMode> | |
| auto | culledMembers (const ViewportHandle viewportHandle={}) -> std::span< SceneMemberVisibilityContext< TMemberHandle, TSubmissionMode > > |
|
Returns culled member contexts for one viewport. More... | |
template <typename TSubmissionMode> | |
| auto | culledMembers () const -> std::span< std::vector< SceneMemberVisibilityContext< TMemberHandle, TSubmissionMode > > > |
|
Returns culled member context buckets for all viewports. More... | |
template <typename TSubmissionMode> | |
| auto | visibleMembers (const ViewportHandle viewportHandle) -> std::span< SceneMemberVisibilityContext< TMemberHandle, TSubmissionMode > > |
|
Returns visible member contexts for one viewport. More... | |
template <typename TSubmissionMode> | |
| auto | visibleMembers () -> std::span< std::vector< SceneMemberVisibilityContext< TMemberHandle, TSubmissionMode > > > |
|
Returns visible member context buckets for all viewports. More... | |
template <typename TMemberHandle> | |
| void | clear () |
|
Clears all accumulated render and visibility state. More... | |
Private Member Attributes Index
template <typename TMemberHandle> | |
| std::vector< RenderTargetViewportSceneKey > | renderTargetViewportSceneKeys_ |
template <typename TMemberHandle> | |
| std::vector< std::vector< SceneMemberVisibilityContext< TMemberHandle, Instanced > > > | visibilityContextsInstanced_ |
template <typename TMemberHandle> | |
| std::vector< std::vector< SceneMemberVisibilityContext< TMemberHandle, Instanced > > > | culledContextsInstanced_ |
template <typename TMemberHandle> | |
| std::vector< std::vector< SceneMemberVisibilityContext< TMemberHandle, NonInstanced > > > | visibilityContextsNonInstanced_ |
template <typename TMemberHandle> | |
| std::vector< std::vector< SceneMemberVisibilityContext< TMemberHandle, NonInstanced > > > | culledContextsNonInstanced_ |
template <typename TMemberHandle> | |
| std::vector< SceneRenderContext< TMemberHandle > > | sceneRenderContexts_ |
Description
Stores per-viewport visibility/culling results for scene members.
The registry separates members by submission mode (Instanced vs NonInstanced) and by viewport handle index for fast retrieval during render submission.
- Template Parameters
-
TMemberHandle Handle type used to reference scene members.
Definition at line 45 of file SceneMemberVisibilityRegistry.ixx.
Public Constructors
SceneMemberVisibilityRegistry()
| inline |
Constructs the registry with pre-reserved top-level storage.
Definition at line 72 of file SceneMemberVisibilityRegistry.ixx.
References DEFAULT_VIEWPORT_POOL_CAPACITY, HELIOS_DEFAULT_VISIBLE_MEMBER_CAPACITY and helios::engine::scene::registerComponents.
Public Member Functions
addCulledMember()
| inline |
Adds a culled member visibility context for a viewport.
- Template Parameters
-
TSubmissionMode Submission mode (Instanced or NonInstanced).
- Parameters
-
viewportHandle Target viewport.
context Visibility context to append.
Definition at line 125 of file SceneMemberVisibilityRegistry.ixx.
Reference helios::engine::scene::registerComponents.
addSceneRenderContext()
| inline |
Adds a scene render context if it is not already present.
- Parameters
-
context Render context to insert.
Definition at line 98 of file SceneMemberVisibilityRegistry.ixx.
Reference helios::engine::scene::registerComponents.
addVisibleMember()
| inline |
Adds a visible member visibility context for a viewport.
- Template Parameters
-
TSubmissionMode Submission mode (Instanced or NonInstanced).
- Parameters
-
viewportHandle Target viewport.
context Visibility context to append.
Definition at line 150 of file SceneMemberVisibilityRegistry.ixx.
Reference helios::engine::scene::registerComponents.
clear()
| inline |
Clears all accumulated render and visibility state.
Definition at line 256 of file SceneMemberVisibilityRegistry.ixx.
Reference helios::engine::scene::registerComponents.
Referenced by helios::engine::scene::systems::SceneMemberVisibilitySystem< TOwnerHandle, TMemberHandle, TCullingStrategy, TRenderModes >::update.
culledMembers()
| inline |
Returns culled member contexts for one viewport.
- Template Parameters
-
TSubmissionMode Submission mode (Instanced or NonInstanced).
- Parameters
-
viewportHandle Viewport to query.
Definition at line 178 of file SceneMemberVisibilityRegistry.ixx.
culledMembers()
| inline |
Returns culled member context buckets for all viewports.
- Template Parameters
-
TSubmissionMode Submission mode (Instanced or NonInstanced).
Definition at line 201 of file SceneMemberVisibilityRegistry.ixx.
Reference helios::engine::scene::registerComponents.
sceneRenderContexts()
| inline noexcept |
Returns all registered scene render contexts.
Definition at line 112 of file SceneMemberVisibilityRegistry.ixx.
Referenced by helios::engine::scene::systems::SceneRenderSystem< TOwnerHandle, TMemberHandle, TCommandBuffer >::update.
visibleMembers()
| inline |
Returns visible member contexts for one viewport.
- Template Parameters
-
TSubmissionMode Submission mode (Instanced or NonInstanced).
- Parameters
-
viewportHandle Viewport to query.
Definition at line 218 of file SceneMemberVisibilityRegistry.ixx.
Reference helios::engine::scene::registerComponents.
visibleMembers()
| inline |
Returns visible member context buckets for all viewports.
- Template Parameters
-
TSubmissionMode Submission mode (Instanced or NonInstanced).
Definition at line 242 of file SceneMemberVisibilityRegistry.ixx.
Reference helios::engine::scene::registerComponents.
Private Member Attributes
culledContextsInstanced_
|
Definition at line 59 of file SceneMemberVisibilityRegistry.ixx.
culledContextsNonInstanced_
|
Definition at line 62 of file SceneMemberVisibilityRegistry.ixx.
renderTargetViewportSceneKeys_
|
Definition at line 56 of file SceneMemberVisibilityRegistry.ixx.
sceneRenderContexts_
|
Definition at line 64 of file SceneMemberVisibilityRegistry.ixx.
visibilityContextsInstanced_
|
Definition at line 58 of file SceneMemberVisibilityRegistry.ixx.
visibilityContextsNonInstanced_
|
Definition at line 61 of file SceneMemberVisibilityRegistry.ixx.
The documentation for this class was generated from the following file:
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.