9 struct CompiledGeomVertexAttributes;
43 std::unique_ptr<UniformBuffer>
buffer;
265 std::shared_ptr<LoadedPostProcShader>
shader;
274 std::shared_ptr<LoadedPostProcShader>
shader;
PostProcSetup
Bitmask for what features each postproc shader wants.
PostProcSetup operator|(PostProcSetup lhs, PostProcSetup rhs)
TransformSource
Enum describing on how the model transform is provided.
ShaderResource load_shaders(const Assets &assets, const CameraUniformBuffer &desc, const RenderSettings &settings, const FullScreenGeom &full_screen)
UseTransparency
A "named boolean".
const LoadedShader_Unlit & shader_from_container(const LoadedShader_Unlit_Container &container, const RenderContext &rc)
Select the correct sub shader from a container.
@ Instanced_mat4
the model source is provided as a (instanced) mat4 attribute
A (inclusive) range between two values.
A list of CompiledVertexLayoutNoNameList (for geom)
A "compiled" camera for use in rendering.
Store the information for how to render a full screen quad.
The "base class" for a loaded postproc shader.
std::optional< Uniform > resolution_uni
Uniform tex_input_uniform
std::shared_ptr< ShaderProgram > program
std::optional< Uniform > factor_uni
std::optional< Uniform > time_uni
LoadedPostProcShader(std::shared_ptr< ShaderProgram > s, PostProcSetup setup)
LoadedShader_Default transparency_shader
core::CompiledGeomVertexAttributes geom_layout
LoadedShader_Default default_shader_instance
LoadedShader_Default default_shader
Part of a loaded "default" shader.
std::shared_ptr< ShaderProgram > program
Uniform tex_directional_light_depth_uni
Uniform emissive_factor_uni
LoadedShader_Default(TransformSource model_source, std::shared_ptr< ShaderProgram > p, const RenderSettings &settings, const CameraUniformBuffer &desc)
Uniform tex_emissive_uniform
std::vector< PointLightUniforms > point_lights
Uniform view_position_uni
Uniform tex_specular_uniform
std::vector< DirectionalLightUniforms > directional_lights
Uniform light_ambient_color_uni
Uniform directional_shadow_clip_from_world_uni
Uniform specular_color_uni
std::vector< FrustumLightUniforms > frustum_lights
Uniform tex_diffuse_uniform
std::optional< Uniform > world_from_local_uni
std::optional< Uniform > world_from_local_uni
core::CompiledGeomVertexAttributes geom_layout
LoadedShader_OnlyDepth(TransformSource model_source, std::shared_ptr< ShaderProgram > p, core::CompiledGeomVertexAttributes l, const CameraUniformBuffer &desc)
std::shared_ptr< ShaderProgram > program
Uniform world_from_local_uni
LoadedShader_SingleColor(std::shared_ptr< ShaderProgram > p, core::CompiledGeomVertexAttributes l, const CameraUniformBuffer &desc)
std::shared_ptr< ShaderProgram > program
core::CompiledGeomVertexAttributes geom_layout
Uniform tex_skybox_uniform
std::shared_ptr< ShaderProgram > program
LoadedShader_Skybox(std::shared_ptr< ShaderProgram > p, core::CompiledGeomVertexAttributes l, const CameraUniformBuffer &desc)
core::CompiledGeomVertexAttributes geom_layout
LoadedShader_Unlit transparency_shader
LoadedShader_Unlit default_shader
core::CompiledGeomVertexAttributes geom_layout
Parts of a loaded unlit shader.
std::optional< Uniform > world_from_local_uni
std::shared_ptr< ShaderProgram > program
LoadedShader_Unlit(TransformSource model_source, std::shared_ptr< ShaderProgram > p, const CameraUniformBuffer &desc)
Uniform tex_diffuse_uniform
std::shared_ptr< LoadedPostProcShader > shader
Uniform is_horizontal_uniform
PingPongBlurShader(std::shared_ptr< LoadedPostProcShader > &&sh)
The shader data for composing a rendered image.
Uniform tex_input_uniform
RealizeShader(std::shared_ptr< ShaderProgram > s)
Uniform tex_blurred_bloom_uniform
std::shared_ptr< ShaderProgram > program
Stores information that is useful when selecting a shader part from a shader container.
TransformSource model_source
ShadowContext const * shadow_context
float gamma
gamma from the rendering settings
constexpr RenderContext(TransformSource s, UseTransparency t, float g, const ShadowContext *sc)
UseTransparency use_transparency
Startup settings for the renderer.
RAII representation of a open gl shader program.
RealizeShader pp_realize
the realization shader that is always run
LoadedShader_SingleColor single_color_shader
LoadedShader_Skybox skybox_shader
LoadedShader_OnlyDepth depth_transform_uniform
bool is_loaded() const
verify that the shaders are loaded
LoadedShader_Unlit_Container unlit_shader_container
PingPongBlurShader pp_ping
LoadedShader_Default_Container default_shader_container
LoadedShader_OnlyDepth depth_transform_instanced_mat4