CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::RendererTerrainManager Class Referencefinal

A manager that controls all terrains currently registered with the renderer. More...

#include <CeresEngine/Renderer/RendererTerrain.hpp>

Inheritance diagram for CeresEngine::RendererTerrainManager:
CeresEngine::TRendererSceneObjectManager< RendererTerrainManager, RendererTerrain > CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType > CeresEngine::RendererObjectManager

Public Member Functions

 RendererTerrainManager (Renderer &renderer)
 Creates a new instance of the RendererTerrainManager.
 
 ~RendererTerrainManager ()
 Destroys the RendererTerrainManager and releases all terrains objects managed by it.
 
Async prepare (RendererContext &context)
 Prepares the terrains 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>
ObjectTypecreate (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.
 
RenderergetRenderer () const noexcept
 The renderer that owns this manager instance.
 

Private Types

using super = TRendererSceneObjectManager< RendererTerrainManager, RendererTerrain >
 
using UniformBufferType = GPUDynamicStridedBindlessBufferArray< RendererTerrainParams >
 The type used to store uniform buffers.
 

Private Member Functions

void markAsDirty (RendererTerrain *const terrain)
 Marks the given terrain as dirty.
 

Private Attributes

Vector< UPtr< RendererTerrain > > mTerrains
 A vector of all registered terrains.
 
UniformBufferType mUniformBuffer
 The uniform buffer storing all terrain GPU parameters used by the renderer.
 

Friends

class RendererTerrain
 

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
RenderermRenderer
 The renderer that owns this manager instance.
 

Detailed Description

A manager that controls all terrains currently registered with the renderer.

Member Typedef Documentation

◆ super

◆ UniformBufferType

Constructor & Destructor Documentation

◆ RendererTerrainManager()

CeresEngine::RendererTerrainManager::RendererTerrainManager ( Renderer renderer)
explicit

Creates a new instance of the RendererTerrainManager.

◆ ~RendererTerrainManager()

CeresEngine::RendererTerrainManager::~RendererTerrainManager ( )

Destroys the RendererTerrainManager and releases all terrains objects managed by it.

Member Function Documentation

◆ markAsDirty()

void CeresEngine::RendererTerrainManager::markAsDirty ( RendererTerrain *const  terrain)
private

Marks the given terrain as dirty.

It will be updated on the next frame.

◆ prepare()

Async CeresEngine::RendererTerrainManager::prepare ( RendererContext context)

Prepares the terrains for the rendering of the current frame.

This will update uniform buffers and perform any other necessary operations necessary for rendering.

Parameters
contextA context struct that contains parameters given by the renderer.

Friends And Related Symbol Documentation

◆ RendererTerrain

Member Data Documentation

◆ mTerrains

Vector<UPtr<RendererTerrain> > CeresEngine::RendererTerrainManager::mTerrains
private

A vector of all registered terrains.

Indices in this vector represent the renderer ID of the object.

◆ mUniformBuffer

UniformBufferType CeresEngine::RendererTerrainManager::mUniformBuffer
private

The uniform buffer storing all terrain GPU parameters used by the renderer.


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