sculpto
gl_built_in_objects.cpp
Go to the documentation of this file.
1/*!****************************************************************//*!*
2 * \file gl_built_in_objects.cpp
3 * \brief Sculpto library OpenGL specific rendering objects getting functions implementation module.
4 *
5 * \author Sabitov Kirill
6 * \date 10 July 2022
7 *********************************************************************/
8
9#include "sclpch.h"
10
11#include "gl.h"
12#include "core/resources/mesh.h"
15
16scl::shared<scl::shader_program> scl::gl::single_color_material_shader {};
17scl::shared<scl::shader_program> scl::gl::phong_geometry_shader {};
18scl::shared<scl::shader_program> scl::gl::phong_lighting_shader {};
19scl::shared<scl::shader_program> scl::gl::shadow_pass_shader {};
20scl::shared<scl::shader_program> scl::gl::tone_mapping_pass_shader {};
21scl::shared<scl::shader_program> scl::gl::gaussian_blur_pass_shader {};
22scl::shared<scl::shader_program> scl::gl::texture_add_pass_shader {};
23
25{
26 if (single_color_material_shader == nullptr)
27 single_color_material_shader = assets_manager::LoadShader("assets/shaders/lib/single_color_geometry.glsl");
28 return single_color_material_shader;
29}
30
32{
33 if (phong_geometry_shader == nullptr)
34 phong_geometry_shader = assets_manager::LoadShader("assets/shaders/lib/phong_geometry_pass.glsl");
35 return phong_geometry_shader;
36}
37
39{
40 if (phong_lighting_shader == nullptr)
41 phong_lighting_shader = assets_manager::LoadShader("assets/shaders/lib/phong_lighting_pass.glsl");
42 return phong_lighting_shader;
43}
44
46{
47 if (shadow_pass_shader == nullptr)
48 shadow_pass_shader = assets_manager::LoadShader("assets/shaders/lib/shadow_pass.glsl");
49 return shadow_pass_shader;
50}
51
53{
54 if (tone_mapping_pass_shader == nullptr)
55 tone_mapping_pass_shader = assets_manager::LoadShader("assets/shaders/lib/tone_mapping_pass.glsl");
56 return tone_mapping_pass_shader;
57}
58
60{
61 if (gaussian_blur_pass_shader == nullptr)
62 gaussian_blur_pass_shader = assets_manager::LoadShader("assets/shaders/lib/gaussian_blur_pass.glsl");
63 return gaussian_blur_pass_shader;
64}
65
67{
68 if (texture_add_pass_shader == nullptr)
69 texture_add_pass_shader = assets_manager::LoadShader("assets/shaders/lib/texture_add.glsl");
70 return texture_add_pass_shader;
71}
shared< shader_program > GetShadowPassShader() const override
shared< shader_program > GetToneMappingPassShader() const override
shared< shader_program > GetGaussianBlurPassShader() const override
shared< shader_program > GetPhongGeometryShader() const override
shared< shader_program > GetPhongLightingShader() const override
shared< shader_program > GetTextureAddPassShader() const override
shared< shader_program > GetSingleColorMaterialShader() const override
Mesh interfaces definition module. Mesh stores vertex and index buffer and implement their binding du...
shared< shader_program > LoadShader(const std::filesystem::path &ShaderProgamFilePath)
std::shared_ptr< T > shared
Definition: smart_ptr.h:15
Sculpto library prehompiled header. Defines common definitions, includes commonly used modules.
Shader program interface definition module.