sculpto
render_pipeline.h
Go to the documentation of this file.
1/*!****************************************************************//*!*
2 * \file render_pireline.h
3 * \brief Render pipeline data storage class declaration module.
4 * Used by renderer to store submited data and cleared every frame.
5 *
6 * \author Sabitov Kirill
7 * \date 11 July 2022
8 *********************************************************************/
9
10#pragma once
11
12#include "base.h"
16
17namespace scl
18{
20 class mesh;
21 class material;
22 class frame_buffer;
23 class constant_buffer;
24 class shader_program;
25
28 {
30 float Time;
36 float Exposure;
39 };
40
43 {
46 };
47
50 {
52 float Constant;
54 float Linear;
55 float Quadratic;
56 float __dummy[3];
57 };
58
61 {
65 float __dummy;
67 };
68
71 {
77 float Epsilon;
78 };
79
82 {
89 };
90
93 {
94 bool IsInitialized { false };
95
107
117
119 std::vector<submission> SubmissionsList {};
124 render_pipeline() = default;
125
127 ~render_pipeline() = default;
128
129 /*!*
130 * Render pipeline initializetion function..
131 *
132 * \param None.
133 * \return None.
134 */
136 {
137 IsInitialized = true;
138
146 }
147
148 /*!*
149 * Clear every frame updating pipeline data function.
150 *
151 * \param None.
152 * \return None.
153 */
154 void Clear()
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 }
167 };
168}
Topology object basis class for mesh creating implementation module.
Buffer interfaces implementation module.
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()
Definition: base.h:33
std::shared_ptr< T > shared
Definition: smart_ptr.h:15
uint32_t u32
Definition: math_common.h:21
Render bridge class implementation module. Static class for making calls to low-level render api,...
point_light PointLights[50]
directional_light DirectionalLight
spot_light SpotLights[50]
shared< shader_program > PhongLightingApplyShader
~render_pipeline()=default
shared< frame_buffer > ShadowMap
shared< constant_buffer > LightsStorageBuffer
render_pipeline()=default
shared< shader_program > TextureAddShader
shared< frame_buffer > BlurFrameBuffers0
shared< frame_buffer > BlurFrameBuffers1
shared< shader_program > GaussianBlurApplyShader
shared< frame_buffer > GBuffer
shared< constant_buffer > DataBuffer
std::vector< submission > SubmissionsList
lights_storage LightsStorage
shared< shader_program > ShadowPassShader
shared< frame_buffer > HDRFrameBuffer
shared< frame_buffer > MainFrameBuffer
shared< shader_program > ToneMappingApplyShader
shared< mesh > Mesh