sculpto
Public Member Functions | Public Attributes | List of all members
scl::render_pipeline Struct Reference

#include <render_pipeline.h>

Public Member Functions

 render_pipeline ()=default
 
 ~render_pipeline ()=default
 
void Initalize ()
 
void Clear ()
 

Public Attributes

bool IsInitialized { false }
 
shared< shader_programShadowPassShader {}
 
shared< shader_programPhongLightingApplyShader {}
 
shared< shader_programGaussianBlurApplyShader {}
 
shared< shader_programTextureAddShader {}
 
shared< shader_programToneMappingApplyShader {}
 
shared< constant_bufferDataBuffer {}
 
shared< constant_bufferLightsStorageBuffer {}
 
shared< frame_bufferShadowMap {}
 
shared< frame_bufferMainFrameBuffer {}
 
shared< frame_bufferGBuffer {}
 
shared< frame_bufferHDRFrameBuffer {}
 
shared< frame_bufferBlurFrameBuffers0 {}
 
shared< frame_bufferBlurFrameBuffers1 {}
 
matr4 ViewProjection
 
std::vector< submissionSubmissionsList {}
 
lights_storage LightsStorage {}
 
pipeline_data Data {}
 

Detailed Description

Render pipeline data storage class.

Definition at line 92 of file render_pipeline.h.

Constructor & Destructor Documentation

◆ render_pipeline()

scl::render_pipeline::render_pipeline ( )
default

Pipeline data.

Render pipeline deault constructor.

◆ ~render_pipeline()

scl::render_pipeline::~render_pipeline ( )
default

Render pipeline default destructor.

Member Function Documentation

◆ Clear()

void scl::render_pipeline::Clear ( )
inline
  • Clear every frame updating pipeline data function.
Parameters
None.
Returns
None.

Definition at line 154 of file render_pipeline.h.

155 {
156 SubmissionsList.clear();
157 std::memset(&Data, 0, sizeof(pipeline_data));
158 std::memset(&LightsStorage, 0, sizeof(lights_storage));
159
160 ShadowMap.reset();
161 MainFrameBuffer.reset();
162 GBuffer.reset();
163 HDRFrameBuffer.reset();
164 BlurFrameBuffers0.reset();
165 BlurFrameBuffers1.reset();
166 }
shared< frame_buffer > ShadowMap
shared< frame_buffer > BlurFrameBuffers0
shared< frame_buffer > BlurFrameBuffers1
shared< frame_buffer > GBuffer
std::vector< submission > SubmissionsList
lights_storage LightsStorage
shared< frame_buffer > HDRFrameBuffer
shared< frame_buffer > MainFrameBuffer

◆ Initalize()

void scl::render_pipeline::Initalize ( )
inline
  • Render pipeline initializetion function..
Parameters
None.
Returns
None.

Definition at line 135 of file render_pipeline.h.

136 {
137 IsInitialized = true;
138
144 DataBuffer = constant_buffer::Create(sizeof(pipeline_data));
145 LightsStorageBuffer = constant_buffer::Create(sizeof(lights_storage));
146 }
static shared< constant_buffer > Create(u32 Size)
Definition: buffer.cpp:14
static shared< shader_program > GetGaussianBlurPassShader()
static shared< shader_program > GetTextureAddPassShader()
static shared< shader_program > GetPhongLightingShader()
static shared< shader_program > GetShadowPassShader()
static shared< shader_program > GetToneMappingPassShader()
shared< shader_program > PhongLightingApplyShader
shared< constant_buffer > LightsStorageBuffer
shared< shader_program > TextureAddShader
shared< shader_program > GaussianBlurApplyShader
shared< constant_buffer > DataBuffer
shared< shader_program > ShadowPassShader
shared< shader_program > ToneMappingApplyShader

Member Data Documentation

◆ BlurFrameBuffers0

shared<frame_buffer> scl::render_pipeline::BlurFrameBuffers0 {}

HDR Frame buffer, then tone mapped to destination frame buffer.

Definition at line 112 of file render_pipeline.h.

◆ BlurFrameBuffers1

shared<frame_buffer> scl::render_pipeline::BlurFrameBuffers1 {}

Frame buffer for apllying gaussian blur effect.

Definition at line 113 of file render_pipeline.h.

◆ Data

pipeline_data scl::render_pipeline::Data {}

Pipeline lights storage.

Definition at line 121 of file render_pipeline.h.

◆ DataBuffer

shared<constant_buffer> scl::render_pipeline::DataBuffer {}

Shader program for applying HDR effect to main frame buffer.

Definition at line 102 of file render_pipeline.h.

◆ GaussianBlurApplyShader

shared<shader_program> scl::render_pipeline::GaussianBlurApplyShader {}

Shader program for applying deffered phong lighting.

Definition at line 99 of file render_pipeline.h.

◆ GBuffer

shared<frame_buffer> scl::render_pipeline::GBuffer {}

Main renderer frame buffer.

Definition at line 110 of file render_pipeline.h.

◆ HDRFrameBuffer

shared<frame_buffer> scl::render_pipeline::HDRFrameBuffer {}

Frame buffer for geometry pass.

Definition at line 111 of file render_pipeline.h.

◆ IsInitialized

bool scl::render_pipeline::IsInitialized { false }

Definition at line 94 of file render_pipeline.h.

◆ LightsStorage

lights_storage scl::render_pipeline::LightsStorage {}

Pipeline list of submited to draw meshes.

Definition at line 120 of file render_pipeline.h.

◆ LightsStorageBuffer

shared<constant_buffer> scl::render_pipeline::LightsStorageBuffer {}

Constant buffer for pipeline data.

Definition at line 103 of file render_pipeline.h.

◆ MainFrameBuffer

shared<frame_buffer> scl::render_pipeline::MainFrameBuffer {}

Pipeline camera frame buffers to render in.

Definition at line 109 of file render_pipeline.h.

◆ PhongLightingApplyShader

shared<shader_program> scl::render_pipeline::PhongLightingApplyShader {}

Shader program for filling depth buffer of shadow caster frame buffer.

Definition at line 98 of file render_pipeline.h.

◆ ShadowMap

shared<frame_buffer> scl::render_pipeline::ShadowMap {}

Constant buffer for pipeline lights storage.

Pipeline shadow map frame buffer.

Definition at line 106 of file render_pipeline.h.

◆ ShadowPassShader

shared<shader_program> scl::render_pipeline::ShadowPassShader {}

Render resources used by renderer.

Definition at line 97 of file render_pipeline.h.

◆ SubmissionsList

std::vector<submission> scl::render_pipeline::SubmissionsList {}

Every frame updating data.

Definition at line 119 of file render_pipeline.h.

◆ TextureAddShader

shared<shader_program> scl::render_pipeline::TextureAddShader {}

Shader program for applying bloom effect (bluring bright colors) to main buffer.

Definition at line 100 of file render_pipeline.h.

◆ ToneMappingApplyShader

shared<shader_program> scl::render_pipeline::ToneMappingApplyShader {}

Shader program for combining (additive bluring) two textuers.

Definition at line 101 of file render_pipeline.h.

◆ ViewProjection

matr4 scl::render_pipeline::ViewProjection

Frame buffer for apllying gaussian blur effect.

Pipeline camera view projection matrix.

Definition at line 116 of file render_pipeline.h.


The documentation for this struct was generated from the following file: