MAGE  v0.171.0
Matthias Advanced Game Engine
mage::rendering::Manager::Impl Class Reference

Public Member Functions

 Impl (NotNull< HWND > window, DisplayConfiguration display_configuration)
 
 Impl (const Impl &manager)=delete
 
 Impl (Impl &&manager) noexcept
 
 ~Impl ()
 
Impl & operator= (const Impl &manager)=delete
 
Impl & operator= (Impl &&manager)=delete
 
const DisplayConfiguration & GetDisplayConfiguration () const noexcept
 
SwapChain & GetSwapChain () noexcept
 
const SwapChain & GetSwapChain () const noexcept
 
ResourceManager & GetResourceManager () const noexcept
 
World & GetWorld () const noexcept
 
void BindPersistentState ()
 
void Update ()
 
void Render (const GameTime &time)
 

Private Member Functions

void InitializeSystems ()
 
void UninitializeSystems () noexcept
 
void SetupDevice ()
 

Private Attributes

NotNull< HWND > m_window
 
UniquePtr< DisplayConfiguration > m_display_configuration
 
D3D_FEATURE_LEVEL m_feature_level
 
ComPtr< D3D11Device > m_device
 
ComPtr< D3D11DeviceContext > m_device_context
 
UniquePtr< SwapChain > m_swap_chain
 
UniquePtr< ResourceManager > m_resource_manager
 
UniquePtr< World > m_world
 
UniquePtr< Renderer > m_renderer
 

Detailed Description

A class of rendering managers.

Constructor & Destructor Documentation

◆ Impl() [1/3]

mage::rendering::Manager::Impl::Impl ( NotNull< HWND >  window,
DisplayConfiguration  display_configuration 
)
explicit

Constructs a rendering manager.

Parameters
[in]windowThe main window handle.
[in]display_configurationThe display configuration.

◆ Impl() [2/3]

mage::rendering::Manager::Impl::Impl ( const Impl &  manager)
delete

Constructs a rendering manager from the given rendering manager.

Parameters
[in]managerA reference to a rendering manager to copy.

◆ Impl() [3/3]

mage::rendering::Manager::Impl::Impl ( Impl &&  manager)
defaultnoexcept

Constructs a rendering manager by moving the given rendering manager.

Parameters
[in]managerA reference to a rendering manager to move.

◆ ~Impl()

mage::rendering::Manager::Impl::~Impl ( )

Destructs this rendering manager.

Member Function Documentation

◆ BindPersistentState()

void mage::rendering::Manager::Impl::BindPersistentState ( )

Binds the persistent state of this rendering manager.

Exceptions
ExceptionFailed to bind the persistent state of this rendering manager.
ExceptionFailed to bind the persistent state of this rendering manager.

◆ GetDisplayConfiguration()

const DisplayConfiguration& mage::rendering::Manager::Impl::GetDisplayConfiguration ( ) const
noexcept

Returns the display configuration of this rendering manager.

Returns
A reference to the display configuration of this rendering manager.

◆ GetResourceManager()

ResourceManager& mage::rendering::Manager::Impl::GetResourceManager ( ) const
noexcept

Returns the resource manager of this rendering manager.

Returns
A reference to the resource manager of this rendering manager.

◆ GetSwapChain() [1/2]

SwapChain& mage::rendering::Manager::Impl::GetSwapChain ( )
noexcept

Returns the swap chain of this rendering manager.

Returns
A reference to the swap chain of this rendering manager.

◆ GetSwapChain() [2/2]

const SwapChain& mage::rendering::Manager::Impl::GetSwapChain ( ) const
noexcept

Returns the swap chain of this rendering manager.

Returns
A reference to the swap chain of this rendering manager.

◆ GetWorld()

World& mage::rendering::Manager::Impl::GetWorld ( ) const
noexcept

Returns the world of this rendering manager.

Returns
A reference to the world of this rendering manager.

◆ InitializeSystems()

void mage::rendering::Manager::Impl::InitializeSystems ( )
private

Initializes the different rendering systems of this rendering manager.

Exceptions
ExceptionFailed to initialize at least one of the different rendering systems of this rendering manager.

◆ operator=() [1/2]

Impl& mage::rendering::Manager::Impl::operator= ( const Impl &  manager)
delete

Copies the given rendering manager to this rendering manager.

Parameters
[in]managerA reference to a rendering manager to copy.
Returns
A reference to the copy of the given rendering manager (i.e. this rendering manager).

◆ operator=() [2/2]

Impl& mage::rendering::Manager::Impl::operator= ( Impl &&  manager)
delete

Moves the given rendering manager to this rendering manager.

Parameters
[in]managerA reference to a rendering manager to move.
Returns
A reference to the moved rendering manager (i.e. this rendering manager).

◆ Render()

void mage::rendering::Manager::Impl::Render ( const GameTime &  time)

Renders.

Parameters
[in]timeA reference to the game time.
Exceptions
ExceptionFailed to render the world of this rendering manager.

◆ SetupDevice()

void mage::rendering::Manager::Impl::SetupDevice ( )
private

Sets up the D3D11 device and context of this rendering manager.

Exceptions
ExceptionFailed to set up the device and device context of this rendering manager.

◆ UninitializeSystems()

void mage::rendering::Manager::Impl::UninitializeSystems ( )
privatenoexcept

Uninitializes the different rendering systems of this rendering manager.

◆ Update()

void mage::rendering::Manager::Impl::Update ( )

Updates this rendering manager.

Member Data Documentation

◆ m_device

ComPtr< D3D11Device > mage::rendering::Manager::Impl::m_device
private

A pointer to the device of this rendering manager.

◆ m_device_context

ComPtr< D3D11DeviceContext > mage::rendering::Manager::Impl::m_device_context
private

A pointer to the device context of this rendering manager.

◆ m_display_configuration

UniquePtr< DisplayConfiguration > mage::rendering::Manager::Impl::m_display_configuration
private

A pointer to the display configuration of this rendering manager.

◆ m_feature_level

D3D_FEATURE_LEVEL mage::rendering::Manager::Impl::m_feature_level
private

A pointer to the feature level of this rendering manager.

◆ m_renderer

UniquePtr< Renderer > mage::rendering::Manager::Impl::m_renderer
private

A pointer to the renderer of this rendering manager.

◆ m_resource_manager

UniquePtr< ResourceManager > mage::rendering::Manager::Impl::m_resource_manager
private

A pointer to the resource manager of this rendering manager.

◆ m_swap_chain

UniquePtr< SwapChain > mage::rendering::Manager::Impl::m_swap_chain
private

A pointer to the swap chain of this rendering manager.

◆ m_window

NotNull< HWND > mage::rendering::Manager::Impl::m_window
private

The handle of the parent window of this rendering manager.

◆ m_world

UniquePtr< World > mage::rendering::Manager::Impl::m_world
private

A pointer to the world of this rendering manager.