Euphoria
eu::render::MaterialShader Struct Reference

Extends a regular Shader with uniform bindings for 3d rendering. More...

#include <materialshader.h>

Public Member Functions

 MaterialShader ()
 
bool load (io::FileSystem *file_system, const io::FilePath &path)
 
void use_shader ()
 
void set_projection (const mat4f &projection_data)
 
void set_view (const mat4f &view_data)
 
void set_model (const mat4f &model_data)
 
void setup_light (const Light &light, const vec3f &camera)
 
void set_colors (const Rgb &ambient_data, const Rgb &diffuse_data, const Rgb &specular_data, float shininess_data)
 

Public Attributes

render::ShaderProgram shader
 
ShaderUniform projection
 
ShaderUniform view
 
ShaderUniform model
 
ShaderUniform ambient
 
ShaderUniform diffuse
 
ShaderUniform specular
 
ShaderUniform shininess
 
bool has_light
 
ShaderUniform light_ambient
 
ShaderUniform light_diffuse
 
ShaderUniform light_specular
 
ShaderUniform light_position
 
ShaderUniform light_direction
 
ShaderUniform light_type
 
ShaderUniform light_attenuation_constant
 
ShaderUniform light_attenuation_linear
 
ShaderUniform light_attenuation_quadratic
 
ShaderUniform light_cutoff_angle_outer
 
ShaderUniform light_cutoff_angle_inner
 
ShaderUniform normal_matrix
 
ShaderUniform view_position
 
std::vector< MaterialShaderBindingbindings
 
std::vector< MaterialShaderDefaultTexturedefault_textures
 

Detailed Description

Extends a regular Shader with uniform bindings for 3d rendering.

Definition at line 40 of file materialshader.h.

Constructor & Destructor Documentation

◆ MaterialShader()

eu::render::MaterialShader::MaterialShader ( )

Definition at line 42 of file materialshader.cc.

Member Function Documentation

◆ load()

bool eu::render::MaterialShader::load ( io::FileSystem file_system,
const io::FilePath path 
)

Definition at line 149 of file materialshader.cc.

◆ set_colors()

void eu::render::MaterialShader::set_colors ( const Rgb ambient_data,
const Rgb diffuse_data,
const Rgb specular_data,
float  shininess_data 
)

Definition at line 242 of file materialshader.cc.

◆ set_model()

void eu::render::MaterialShader::set_model ( const mat4f model_data)

Definition at line 203 of file materialshader.cc.

◆ set_projection()

void eu::render::MaterialShader::set_projection ( const mat4f projection_data)

Definition at line 191 of file materialshader.cc.

◆ set_view()

void eu::render::MaterialShader::set_view ( const mat4f view_data)

Definition at line 197 of file materialshader.cc.

◆ setup_light()

void eu::render::MaterialShader::setup_light ( const Light light,
const vec3f camera 
)

Definition at line 217 of file materialshader.cc.

◆ use_shader()

void eu::render::MaterialShader::use_shader ( )

Definition at line 185 of file materialshader.cc.

Member Data Documentation

◆ ambient

ShaderUniform eu::render::MaterialShader::ambient

Definition at line 49 of file materialshader.h.

◆ bindings

std::vector<MaterialShaderBinding> eu::render::MaterialShader::bindings

Definition at line 70 of file materialshader.h.

◆ default_textures

std::vector<MaterialShaderDefaultTexture> eu::render::MaterialShader::default_textures

Definition at line 71 of file materialshader.h.

◆ diffuse

ShaderUniform eu::render::MaterialShader::diffuse

Definition at line 50 of file materialshader.h.

◆ has_light

bool eu::render::MaterialShader::has_light

Definition at line 54 of file materialshader.h.

◆ light_ambient

ShaderUniform eu::render::MaterialShader::light_ambient

Definition at line 55 of file materialshader.h.

◆ light_attenuation_constant

ShaderUniform eu::render::MaterialShader::light_attenuation_constant

Definition at line 61 of file materialshader.h.

◆ light_attenuation_linear

ShaderUniform eu::render::MaterialShader::light_attenuation_linear

Definition at line 62 of file materialshader.h.

◆ light_attenuation_quadratic

ShaderUniform eu::render::MaterialShader::light_attenuation_quadratic

Definition at line 63 of file materialshader.h.

◆ light_cutoff_angle_inner

ShaderUniform eu::render::MaterialShader::light_cutoff_angle_inner

Definition at line 65 of file materialshader.h.

◆ light_cutoff_angle_outer

ShaderUniform eu::render::MaterialShader::light_cutoff_angle_outer

Definition at line 64 of file materialshader.h.

◆ light_diffuse

ShaderUniform eu::render::MaterialShader::light_diffuse

Definition at line 56 of file materialshader.h.

◆ light_direction

ShaderUniform eu::render::MaterialShader::light_direction

Definition at line 59 of file materialshader.h.

◆ light_position

ShaderUniform eu::render::MaterialShader::light_position

Definition at line 58 of file materialshader.h.

◆ light_specular

ShaderUniform eu::render::MaterialShader::light_specular

Definition at line 57 of file materialshader.h.

◆ light_type

ShaderUniform eu::render::MaterialShader::light_type

Definition at line 60 of file materialshader.h.

◆ model

ShaderUniform eu::render::MaterialShader::model

Definition at line 47 of file materialshader.h.

◆ normal_matrix

ShaderUniform eu::render::MaterialShader::normal_matrix

Definition at line 67 of file materialshader.h.

◆ projection

ShaderUniform eu::render::MaterialShader::projection

Definition at line 45 of file materialshader.h.

◆ shader

render::ShaderProgram eu::render::MaterialShader::shader

Definition at line 42 of file materialshader.h.

◆ shininess

ShaderUniform eu::render::MaterialShader::shininess

Definition at line 52 of file materialshader.h.

◆ specular

ShaderUniform eu::render::MaterialShader::specular

Definition at line 51 of file materialshader.h.

◆ view

ShaderUniform eu::render::MaterialShader::view

Definition at line 46 of file materialshader.h.

◆ view_position

ShaderUniform eu::render::MaterialShader::view_position

Definition at line 68 of file materialshader.h.


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