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

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

#include <CeresEngine/Renderer/RendererCamera.hpp>

Inheritance diagram for CeresEngine::RendererCameraManager:
CeresEngine::TRendererSceneObjectManager< RendererCameraManager, RendererCamera > CeresEngine::TRendererObjectManager< SelfType, ObjectType, BaseType > CeresEngine::RendererObjectManager

Public Member Functions

 RendererCameraManager (Renderer &renderer)
 Creates a new instance of the RendererCameraManager.
 
 ~RendererCameraManager () noexcept final
 Destroys the RendererCameraManager and releases all cameras objects managed by it.
 
Async prepare (RendererContext &context)
 Prepares the cameras 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< RendererCameraManager, RendererCamera >
 
using UniformBufferType = GPUDynamicStridedBindlessBufferArray< RendererCameraParams >
 The type used to store uniform buffers.
 

Private Member Functions

void markAsDirty (RendererCamera *const camera)
 Marks the given camera as dirty.
 

Private Attributes

Vector< UPtr< RendererCamera > > mCameras
 A vector of all registered cameras.
 
UniformBufferType mUniformBuffer
 The uniform buffer storing all camera GPU parameters used by the renderer.
 

Friends

class RendererCamera
 

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 cameras currently registered with the renderer.

Member Typedef Documentation

◆ super

◆ UniformBufferType

Constructor & Destructor Documentation

◆ RendererCameraManager()

CeresEngine::RendererCameraManager::RendererCameraManager ( Renderer renderer)
explicit

Creates a new instance of the RendererCameraManager.

◆ ~RendererCameraManager()

CeresEngine::RendererCameraManager::~RendererCameraManager ( )
finalnoexcept

Destroys the RendererCameraManager and releases all cameras objects managed by it.

Member Function Documentation

◆ markAsDirty()

void CeresEngine::RendererCameraManager::markAsDirty ( RendererCamera *const  camera)
private

Marks the given camera as dirty.

It will be updated on the next frame.

◆ prepare()

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

Prepares the cameras 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

◆ RendererCamera

Member Data Documentation

◆ mCameras

Vector<UPtr<RendererCamera> > CeresEngine::RendererCameraManager::mCameras
private

A vector of all registered cameras.

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

◆ mUniformBuffer

UniformBufferType CeresEngine::RendererCameraManager::mUniformBuffer
private

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


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