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 ()
 
Imploperator= (const Impl &manager)=delete
 
Imploperator= (Impl &&manager)=delete
 
const DisplayConfigurationGetDisplayConfiguration () const noexcept
 
SwapChainGetSwapChain () noexcept
 
const SwapChainGetSwapChain () const noexcept
 
ResourceManagerGetResourceManager () const noexcept
 
WorldGetWorld () 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< DisplayConfigurationm_display_configuration
 
D3D_FEATURE_LEVEL m_feature_level
 
ComPtr< D3D11Devicem_device
 
ComPtr< D3D11DeviceContextm_device_context
 
UniquePtr< SwapChainm_swap_chain
 
UniquePtr< ResourceManagerm_resource_manager
 
UniquePtr< Worldm_world
 
UniquePtr< Rendererm_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.