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

#include <deferred_pass.hpp>

Public Member Functions

 DeferredPass (ID3D11DeviceContext &device_context, StateManager &state_manager, ResourceManager &resource_manager)
 
 DeferredPass (const DeferredPass &pass)=delete
 
 DeferredPass (DeferredPass &&pass) noexcept
 
 ~DeferredPass ()
 
DeferredPassoperator= (const DeferredPass &pass)=delete
 
DeferredPassoperator= (DeferredPass &&pass) noexcept
 
void Render (BRDF brdf, bool vct)
 
void Dispatch (const U32x2 &viewport_size, BRDF brdf, bool vct)
 

Private Member Functions

void BindFixedState () const noexcept
 

Private Attributes

std::reference_wrapper< ID3D11DeviceContext > m_device_context
 
std::reference_wrapper< StateManagerm_state_manager
 
std::reference_wrapper< ResourceManagerm_resource_manager
 
VertexShaderPtr m_msaa_vs
 

Detailed Description

A class of deferred passes for unpacking GBuffers and performing light calculations using the rendering or compute pipeline.

Constructor & Destructor Documentation

◆ DeferredPass() [1/3]

mage::rendering::DeferredPass::DeferredPass ( ID3D11DeviceContext &  device_context,
StateManager state_manager,
ResourceManager resource_manager 
)
explicit

Constructs a deferred pass.

Parameters
[in,out]device_contextA reference to the device context.
[in,out]state_managerA reference to the state manager.
[in,out]resource_managerA reference to the resource manager.

◆ DeferredPass() [2/3]

mage::rendering::DeferredPass::DeferredPass ( const DeferredPass pass)
delete

Constructs a deferred pass from the given deferred shading pass.

Parameters
[in]passA reference to the deferred pass to copy.

◆ DeferredPass() [3/3]

mage::rendering::DeferredPass::DeferredPass ( DeferredPass &&  pass)
defaultnoexcept

Constructs a deferred pass by moving the given deferred pass.

Parameters
[in]passA reference to the deferred pass to move.

◆ ~DeferredPass()

mage::rendering::DeferredPass::~DeferredPass ( )
default

Destructs this deferred pass.

Member Function Documentation

◆ BindFixedState()

void mage::rendering::DeferredPass::BindFixedState ( ) const
privatenoexcept

Binds the fixed state of this deferred pass.

◆ Dispatch()

void mage::rendering::DeferredPass::Dispatch ( const U32x2 viewport_size,
BRDF  brdf,
bool  vct 
)

Dispatches.

Parameters
[in]viewport_sizeA reference to the viewport size.
[in]brdfThe BRDF.
[in]vcttrue if voxel cone tracing should be enabled. false otherwise.
Exceptions
ExceptionFailed to dispatch.

◆ operator=() [1/2]

DeferredPass& mage::rendering::DeferredPass::operator= ( const DeferredPass pass)
delete

Copies the given deferred pass to this deferred pass.

Parameters
[in]passA reference to the deferred pass to copy.
Returns
A reference to the copy of the given deferred shading pass (i.e. this deferred pass).

◆ operator=() [2/2]

DeferredPass & mage::rendering::DeferredPass::operator= ( DeferredPass &&  pass)
defaultnoexcept

Moves the given deferred pass to this deferred pass.

Parameters
[in]passA reference to the deferred pass to move.
Returns
A reference to the moved deferred pass (i.e. this deferred pass).

◆ Render()

void mage::rendering::DeferredPass::Render ( BRDF  brdf,
bool  vct 
)

Renders.

Parameters
[in]brdfThe BRDF.
[in]vcttrue if voxel cone tracing should be enabled. false otherwise.
Exceptions
ExceptionFailed to render the world.

Member Data Documentation

◆ m_device_context

std::reference_wrapper< ID3D11DeviceContext > mage::rendering::DeferredPass::m_device_context
private

A reference to the device context of this deferred pass.

◆ m_msaa_vs

VertexShaderPtr mage::rendering::DeferredPass::m_msaa_vs
private

A pointer to the vertex shader of this deferred pass.

◆ m_resource_manager

std::reference_wrapper< ResourceManager > mage::rendering::DeferredPass::m_resource_manager
private

A reference to the resource manager of this deferred pass.

◆ m_state_manager

std::reference_wrapper< StateManager > mage::rendering::DeferredPass::m_state_manager
private

A reference to the state manager of this deferred pass.