#include <Material.h>
Classes | |
| struct | Property |
| struct | ShaderInfo |
Public Types | |
| enum class | PropertyType { FLOAT , VEC2 , VEC3 , COLOR3 , VEC4 , COLOR4 , TEXTURE , TEXTURE_FLAG , BOOL , INT , MAT3 , MAT4 } |
Public Member Functions | |
| Material (const std::string &name) | |
| template<typename T > | |
| void | set_property (const std::string &name, const T &value, PropertyType type, const std::string &uniform_name="") |
| template<typename T > | |
| void | set_property (const std::string &name, const T &value, const std::string &uniform_name="") |
| template<typename T > | |
| T | get_property (const std::string &name, const T &default_value=T{}) const |
| Material & | set_texture (const std::string &path, TextureType type, int texture_slot=0) |
| Material & | set_texture (const std::shared_ptr< Texture > &texture, int texture_slot=0) |
| Material & | set_texture (Texture *texture, int texture_slot=0) |
| void | set_diffuse_color (const glm::vec3 &color) |
| void | set_ambient_color (const glm::vec3 &color) |
| void | set_specular_color (const glm::vec3 &color) |
| void | set_emissive_color (const glm::vec3 &color) |
| void | set_shininess (float shininess) |
| void | set_metallic (float metallic) |
| void | set_roughness (float roughness) |
| void | set_opacity (float opacity) |
| bool | is_transparent () const |
| void | set_uv_tiling (const glm::vec2 &tiling) |
| void | set_uv_tiling (float x, float y) |
| void | set_uv_offset (const glm::vec2 &offset) |
| void | set_uv_rotation (float rotation) |
| void | set_custom_shader (const std::string &vertex_path, const std::string &fragment_path) |
| void | set_custom_shader (const ShaderInfo &shader_info) |
| void | add_shader_define (const std::string &define) |
| void | set_uniform_mapping (const std::string &property_name, const std::string &uniform_name) |
| bool | has_custom_shader () const |
| const ShaderInfo * | get_shader_info () const |
| void | set_compiled_shader_id (uint32_t shader_id) |
| uint32_t | get_compiled_shader_id () const |
| void | bind () const |
| Used to bind a Material for rendering. | |
| void | unbind () const |
| void | unbind_all_textures () const |
| const auto & | get_properties () const |
| const std::string & | get_name () const |
| void | set_name (const std::string &name) |
Private Member Functions | |
| Material & | set_texture_internal (Texture *texture, TextureType type, int texture_slot) |
| void | bind_all_properties (uint32_t shader_program, int &texture_unit) const |
| bool | has_property (const std::string &name) const |
| Property | get_property_object (const std::string &name) const |
Private Attributes | |
| std::string | name_ |
| std::map< std::string, Property > | properties_ |
| std::optional< ShaderInfo > | custom_shader_info_ |
| uint32_t | compiled_shader_id_ = 0 |
| std::shared_ptr< Material > | base_material_ |
| std::unordered_map< std::string, Property > | overrides_ |
| std::unordered_set< std::string > | touched_uniforms_ |
| std::vector< int > | bound_texture_units_ |
Definition at line 21 of file Material.h.
|
strong |
| Enumerator | |
|---|---|
| FLOAT | |
| VEC2 | |
| VEC3 | |
| COLOR3 | |
| VEC4 | |
| COLOR4 | |
| TEXTURE | |
| TEXTURE_FLAG | |
| BOOL | |
| INT | |
| MAT3 | |
| MAT4 | |
Definition at line 23 of file Material.h.
|
inlineexplicit |
Definition at line 112 of file Material.h.
|
inline |
Definition at line 215 of file Material.h.
| void hellfire::Material::bind | ( | ) | const |
Used to bind a Material for rendering.
Definition at line 11 of file Material.cpp.
|
private |
Definition at line 40 of file Material.cpp.
|
inline |
Definition at line 239 of file Material.h.
|
inline |
Definition at line 251 of file Material.h.
|
inline |
Definition at line 250 of file Material.h.
|
inline |
Definition at line 128 of file Material.h.
|
inlineprivate |
Definition at line 282 of file Material.h.
|
inline |
Definition at line 231 of file Material.h.
|
inline |
Definition at line 227 of file Material.h.
|
inlineprivate |
Definition at line 278 of file Material.h.
|
inline |
Definition at line 185 of file Material.h.
|
inline |
Definition at line 156 of file Material.h.
|
inline |
Definition at line 235 of file Material.h.
|
inline |
Definition at line 211 of file Material.h.
|
inline |
Definition at line 207 of file Material.h.
|
inline |
Definition at line 152 of file Material.h.
|
inline |
Definition at line 164 of file Material.h.
|
inline |
Definition at line 173 of file Material.h.
|
inline |
Definition at line 252 of file Material.h.
|
inline |
Definition at line 181 of file Material.h.
|
inline |
Definition at line 122 of file Material.h.
|
inline |
Definition at line 116 of file Material.h.
|
inline |
Definition at line 177 of file Material.h.
|
inline |
Definition at line 169 of file Material.h.
|
inline |
Definition at line 160 of file Material.h.
|
inline |
Definition at line 143 of file Material.h.
|
inline |
Definition at line 138 of file Material.h.
Definition at line 147 of file Material.h.
|
inlineprivate |
Definition at line 256 of file Material.h.
|
inline |
Definition at line 221 of file Material.h.
|
inline |
Definition at line 198 of file Material.h.
|
inline |
Definition at line 202 of file Material.h.
|
inline |
Definition at line 190 of file Material.h.
|
inline |
Definition at line 194 of file Material.h.
| void hellfire::Material::unbind | ( | ) | const |
Definition at line 24 of file Material.cpp.
| void hellfire::Material::unbind_all_textures | ( | ) | const |
Definition at line 31 of file Material.cpp.
|
private |
Definition at line 107 of file Material.h.
|
mutableprivate |
Definition at line 254 of file Material.h.
|
private |
Definition at line 104 of file Material.h.
|
private |
Definition at line 103 of file Material.h.
|
private |
Definition at line 101 of file Material.h.
|
private |
Definition at line 108 of file Material.h.
|
private |
Definition at line 102 of file Material.h.
|
mutableprivate |
Definition at line 109 of file Material.h.