|
CeresEngine 0.2.0
A game development framework
|
A manager that controls all renderables currently registered with the renderer. More...
#include <CeresEngine/Renderer/RendererRenderable.hpp>
Public Member Functions | |
| RendererRenderableManager (Renderer &renderer) | |
Creates a new instance of the RendererRenderableManager. | |
| ~RendererRenderableManager () noexcept final | |
Destroys the RendererRenderableManager and releases all renderables objects managed by it. | |
| Async | prepare (RendererContext &context) |
| Prepares the renderables for the rendering of the current frame. | |
Public Member Functions inherited from CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType > | |
| template<typename... Args> | |
| TRendererObjectManager (Vector< UPtr< ObjectType > > &objects, Args &&... args) | |
Creates a new TRendererObjectManager instance. | |
| template<typename... Args> | |
| ObjectType & | create (Args &&... args) |
| Creates a new renderer object by calling it's constructor. | |
| void | destroy (ObjectType &object) |
| Destroys an existing renderer object by calling it's destructor and releasing it's memory. | |
Public Member Functions inherited from CeresEngine::RendererObjectManager | |
| RendererObjectManager (Renderer &renderer) noexcept | |
Creates a new RendererObjectManager instance. | |
| virtual | ~RendererObjectManager () noexcept=default |
Destroys an existing instance of RendererObjectManager. | |
| Renderer & | getRenderer () const noexcept |
| The renderer that owns this manager instance. | |
Private Types | |
| using | super = TRendererSceneObjectManager< RendererRenderableManager, RendererRenderable > |
| using | UniformBufferType = GPUDynamicStridedBindlessBufferArray< RendererRenderableParams > |
| The type used to store uniform buffers. | |
Private Member Functions | |
| void | markAsDirty (RendererRenderable *const renderable) |
| Marks the given renderable as dirty. | |
Private Attributes | |
| Vector< UPtr< RendererRenderable > > | mRenderables |
| A vector of all registered renderables. | |
| HashSet< RendererRenderable * > | mDirtyRenderables |
| A set of dirty renderables that need to be updated on the next frame. | |
| UniformBufferType | mUniformBuffer |
| The uniform buffer that holds GPU parameters for all renderables. | |
Friends | |
| class | RendererRenderable |
Additional Inherited Members | |
Protected Member Functions inherited from CeresEngine::RendererObjectManager | |
| void | notifyChangeID (RendererObject &object, const RendererObjectID newID) noexcept |
Method called whenever the RendererObject ID changes. | |
Protected Attributes inherited from CeresEngine::RendererObjectManager | |
| Renderer & | mRenderer |
| The renderer that owns this manager instance. | |
A manager that controls all renderables currently registered with the renderer.
|
private |
|
private |
The type used to store uniform buffers.
|
explicit |
Creates a new instance of the RendererRenderableManager.
|
finalnoexcept |
Destroys the RendererRenderableManager and releases all renderables objects managed by it.
|
private |
Marks the given renderable as dirty.
It will be updated on the next frame.
| Async CeresEngine::RendererRenderableManager::prepare | ( | RendererContext & | context | ) |
Prepares the renderables for the rendering of the current frame.
This will update uniform buffers and perform any other necessary operations necessary for rendering.
| context | A context struct that contains parameters given by the renderer. |
|
friend |
|
private |
A set of dirty renderables that need to be updated on the next frame.
|
private |
A vector of all registered renderables.
Indices in this vector represent the renderer ID of the object.
|
private |
The uniform buffer that holds GPU parameters for all renderables.
Meant to be used by bindless render passes.