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

#include <voxel_grid_pass.hpp>

Public Member Functions

 VoxelGridPass (ID3D11DeviceContext &device_context, StateManager &state_manager, ResourceManager &resource_manager)
 
 VoxelGridPass (const VoxelGridPass &pass)=delete
 
 VoxelGridPass (VoxelGridPass &&pass) noexcept
 
 ~VoxelGridPass ()
 
VoxelGridPassoperator= (const VoxelGridPass &pass)=delete
 
VoxelGridPassoperator= (VoxelGridPass &&pass) noexcept
 
void Render (std::size_t resolution) const noexcept
 

Private Member Functions

void BindFixedState () const noexcept
 

Private Attributes

std::reference_wrapper< ID3D11DeviceContext > m_device_context
 
std::reference_wrapper< StateManagerm_state_manager
 
VertexShaderPtr m_vs
 
GeometryShaderPtr m_gs
 
PixelShaderPtr m_ps
 

Detailed Description

A class of voxel grid passes for rendering voxel grids to screen.

Constructor & Destructor Documentation

◆ VoxelGridPass() [1/3]

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

Constructs a voxel grid 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.

◆ VoxelGridPass() [2/3]

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

Constructs a voxel grid pass from the given voxel grid pass.

Parameters
[in]passA reference to the voxel grid pass to copy.

◆ VoxelGridPass() [3/3]

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

Constructs a voxel grid pass by moving the given voxel grid pass.

Parameters
[in]passA reference to the voxel grid pass to move.

◆ ~VoxelGridPass()

mage::rendering::VoxelGridPass::~VoxelGridPass ( )
default

Destructs this voxel grid pass.

Member Function Documentation

◆ BindFixedState()

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

Binds the fixed state of this voxel grid pass.

◆ operator=() [1/2]

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

Copies the given voxel grid pass to this voxel grid pass.

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

◆ operator=() [2/2]

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

Moves the given voxel grid pass to this voxel grid pass.

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

◆ Render()

void mage::rendering::VoxelGridPass::Render ( std::size_t  resolution) const
noexcept

Renders the given world.

Parameters
[in]resolutionThe resolution of the regular voxel grid.

Member Data Documentation

◆ m_device_context

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

A reference to the device context of this voxel grid pass.

◆ m_gs

GeometryShaderPtr mage::rendering::VoxelGridPass::m_gs
private

A pointer to the geometry shader of this voxel grid pass.

◆ m_ps

PixelShaderPtr mage::rendering::VoxelGridPass::m_ps
private

A pointer to the pixel shader of this voxel grid pass.

◆ m_state_manager

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

A reference to the state manager of this voxel grid pass.

◆ m_vs

VertexShaderPtr mage::rendering::VoxelGridPass::m_vs
private

A pointer to the vertex shader of this voxel grid pass.