#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 111 of file Material.h.
|
inline |
Definition at line 214 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 238 of file Material.h.
|
inline |
Definition at line 250 of file Material.h.
|
inline |
Definition at line 249 of file Material.h.
|
inline |
Definition at line 127 of file Material.h.
|
inlineprivate |
Definition at line 281 of file Material.h.
|
inline |
Definition at line 230 of file Material.h.
|
inline |
Definition at line 226 of file Material.h.
|
inlineprivate |
Definition at line 277 of file Material.h.
|
inline |
Definition at line 184 of file Material.h.
|
inline |
Definition at line 155 of file Material.h.
|
inline |
Definition at line 234 of file Material.h.
|
inline |
Definition at line 210 of file Material.h.
|
inline |
Definition at line 206 of file Material.h.
|
inline |
Definition at line 151 of file Material.h.
|
inline |
Definition at line 163 of file Material.h.
|
inline |
Definition at line 172 of file Material.h.
|
inline |
Definition at line 251 of file Material.h.
|
inline |
Definition at line 180 of file Material.h.
|
inline |
Definition at line 121 of file Material.h.
|
inline |
Definition at line 115 of file Material.h.
|
inline |
Definition at line 176 of file Material.h.
|
inline |
Definition at line 168 of file Material.h.
|
inline |
Definition at line 159 of file Material.h.
|
inline |
Definition at line 142 of file Material.h.
|
inline |
Definition at line 137 of file Material.h.
Definition at line 146 of file Material.h.
|
inlineprivate |
Definition at line 255 of file Material.h.
|
inline |
Definition at line 220 of file Material.h.
|
inline |
Definition at line 197 of file Material.h.
|
inline |
Definition at line 201 of file Material.h.
|
inline |
Definition at line 189 of file Material.h.
|
inline |
Definition at line 193 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 106 of file Material.h.
|
mutableprivate |
Definition at line 253 of file Material.h.
|
private |
Definition at line 103 of file Material.h.
|
private |
Definition at line 102 of file Material.h.
|
private |
Definition at line 100 of file Material.h.
|
private |
Definition at line 107 of file Material.h.
|
private |
Definition at line 101 of file Material.h.
|
mutableprivate |
Definition at line 108 of file Material.h.