![]() |
MAGE
v0.171.0
Matthias Advanced Game Engine
|
#include <depth_pass.hpp>
Public Member Functions | |
DepthPass (ID3D11Device &device, ID3D11DeviceContext &device_context, StateManager &state_manager, ResourceManager &resource_manager) | |
DepthPass (const DepthPass &pass)=delete | |
DepthPass (DepthPass &&pass) noexcept | |
~DepthPass () | |
DepthPass & | operator= (const DepthPass &pass)=delete |
DepthPass & | operator= (DepthPass &&pass) noexcept |
void | BindFixedState () const noexcept |
void XM_CALLCONV | Render (const World &world, FXMMATRIX world_to_camera, CXMMATRIX camera_to_projection) |
void XM_CALLCONV | RenderOccluders (const World &world, FXMMATRIX world_to_camera, CXMMATRIX camera_to_projection) |
Private Member Functions | |
void | BindOpaqueShaders () const noexcept |
void | BindTransparentShaders () const noexcept |
void XM_CALLCONV | BindCamera (FXMMATRIX world_to_camera, CXMMATRIX camera_to_projection) |
void XM_CALLCONV | RenderOpaque (const Model &model, FXMMATRIX world_to_projection) const noexcept |
void XM_CALLCONV | RenderTransparent (const Model &model, FXMMATRIX world_to_projection) const noexcept |
Private Attributes | |
std::reference_wrapper< ID3D11DeviceContext > | m_device_context |
std::reference_wrapper< StateManager > | m_state_manager |
VertexShaderPtr | m_opaque_vs |
VertexShaderPtr | m_transparent_vs |
PixelShaderPtr | m_transparent_ps |
ConstantBuffer< SecondaryCameraBuffer > | m_camera_buffer |
A class of depth passes for rendering models to a depth buffer only.
|
explicit |
Constructs a depth pass.
[in,out] | device | A reference to the device. |
[in,out] | device_context | A reference to the device context. |
[in,out] | state_manager | A reference to the state manager. |
[in,out] | resource_manager | A reference to the resource manager. |
|
delete |
Constructs a depth pass from the given depth pass.
[in] | pass | A reference to the depth pass to copy. |
|
defaultnoexcept |
Constructs a depth pass by moving the given depth pass.
[in] | pass | A reference to the depth pass to move. |
|
default |
Destructs this depth pass.
|
private |
Binds the camera of this depth pass.
[in] | world_to_camera | The world-to-camera transformation matrix. |
[in] | camera_to_projection | The camera-to-projection transformation matrix. |
Exception | Failed to bind the camera of this depth pass. |
|
noexcept |
Binds the fixed state of this depth pass.
Exception | Failed to bind the fixed state of this depth pass. |
|
privatenoexcept |
Binds the shaders for opaque models.
|
privatenoexcept |
Binds the shaders for transparent models.
Copies the given depth pass to this depth pass.
[in] | pass | A reference to the depth pass to copy. |
Moves the given depth pass to this depth pass.
[in] | pass | A reference to the depth pass to move. |
void XM_CALLCONV mage::rendering::DepthPass::Render | ( | const World & | world, |
FXMMATRIX | world_to_camera, | ||
CXMMATRIX | camera_to_projection | ||
) |
Renders the world.
[in] | world | A reference to the world. |
[in] | world_to_camera | The world-to-camera transformation matrix. |
[in] | camera_to_projection | The camera-to-projection transformation matrix. |
Exception | Failed to render the world. |
void XM_CALLCONV mage::rendering::DepthPass::RenderOccluders | ( | const World & | world, |
FXMMATRIX | world_to_camera, | ||
CXMMATRIX | camera_to_projection | ||
) |
Renders the occluders of the world.
[in] | world | A reference to the world. |
[in] | world_to_camera | The world-to-camera transformation matrix. |
[in] | camera_to_projection | The camera-to-projection transformation matrix. |
Exception | Failed to render the world. |
|
privatenoexcept |
Renders the given opaque model.
[in] | model | A reference to the opaque model. |
[in] | world_to_projection | The world-to-projection transformation matrix. |
|
privatenoexcept |
Renders the given transparent model.
[in] | model | A reference to the transparent model. |
[in] | world_to_projection | The world-to-projection transformation matrix. |
|
private |
The camera buffer of this depth pass.
|
private |
A reference to the device context of this depth pass.
|
private |
A pointer to the vertex shader of this depth pass.
|
private |
A reference to the state manager of this depth pass.
|
private |
A pointer to the pixel shader for transparent models of this depth pass.
|
private |
A pointer to the vertex shader for transparent models of this depth pass.