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

#include <postprocess_pass.hpp>

Public Member Functions

 PostProcessPass (ID3D11DeviceContext &device_context, StateManager &state_manager, ResourceManager &resource_manager)
 
 PostProcessPass (const PostProcessPass &pass)=delete
 
 PostProcessPass (PostProcessPass &&pass) noexcept
 
 ~PostProcessPass ()
 
PostProcessPassoperator= (const PostProcessPass &pass)=delete
 
PostProcessPassoperator= (PostProcessPass &&pass) noexcept
 
void DispatchDOF (const U32x2 &viewport_size) const noexcept
 
void DispatchLDR (const U32x2 &viewport_size, ToneMapping tone_mapping) const noexcept
 

Private Attributes

std::reference_wrapper< ID3D11DeviceContext > m_device_context
 
std::reference_wrapper< StateManagerm_state_manager
 
std::reference_wrapper< ResourceManagerm_resource_manager
 
ComputeShaderPtr m_dof_cs
 

Detailed Description

A class of post-process passes for performing post-processing.

Constructor & Destructor Documentation

◆ PostProcessPass() [1/3]

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

Constructs a post-process 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.

◆ PostProcessPass() [2/3]

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

Constructs a post-process pass from the given post-process pass.

Parameters
[in]passA reference to the post-process pass to copy.

◆ PostProcessPass() [3/3]

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

Constructs a post-process pass by moving the given post-process shading pass.

Parameters
[in]passA reference to the post-process pass to move.

◆ ~PostProcessPass()

mage::rendering::PostProcessPass::~PostProcessPass ( )
default

Destructs this DOF pass.

Member Function Documentation

◆ DispatchDOF()

void mage::rendering::PostProcessPass::DispatchDOF ( const U32x2 viewport_size) const
noexcept

Dispatches an depth-of-field pass.

Parameters
[in]viewport_sizeA reference to the viewport size.

◆ DispatchLDR()

void mage::rendering::PostProcessPass::DispatchLDR ( const U32x2 viewport_size,
ToneMapping  tone_mapping 
) const
noexcept

Dispatches an low-dynamic-range pass.

Parameters
[in]viewport_sizeA reference to the viewport size.
[in]tone_mappingThe tone mapping type.

◆ operator=() [1/2]

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

Copies the given post-process pass to this post-process pass.

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

◆ operator=() [2/2]

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

Moves the given post-process pass to this post-process pass.

Parameters
[in]passA reference to the post-process pass to move.
Returns
A reference to the moved DOF pass (i.e. this post-process pass).

Member Data Documentation

◆ m_device_context

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

A reference to the device context of this post-process pass.

◆ m_dof_cs

ComputeShaderPtr mage::rendering::PostProcessPass::m_dof_cs
private

A pointer to the compute shader of this post-process pass.

◆ m_resource_manager

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

A reference to the resource manager of this post-process pass.

◆ m_state_manager

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

A reference to the state manager of this post-process pass.