Toast Engine
Toggle main menu visibility
Loading...
Searching...
No Matches
material_instance.hpp
Go to the documentation of this file.
1
8
9
#pragma once
10
#include "
material.hpp
"
11
12
#include <string>
13
#include <unordered_map>
14
15
namespace
assets {
16
21
class
TOAST_API MaterialInstance :
public
Material {
22
public
:
23
explicit
MaterialInstance(
const
toml::table& table,
Handle<Schema>
schema = {});
24
~MaterialInstance()
override
;
25
26
[[nodiscard]]
27
auto
type()
const
-> std::string_view
override
{
28
return
"material_instance"
;
29
}
30
31
[[nodiscard]]
32
auto
serialize(
SaveMode
mode)
const
-> std::vector<uint8_t>
override
;
33
34
void
reload
(
const
toml::table& table)
override
;
35
36
[[nodiscard]]
37
auto
parent
()
const
->
const
Handle<Material>
&;
38
39
[[nodiscard]]
40
auto
shaders()
const
->
const
std::vector<Handle<Shader>>&
override
;
41
42
[[nodiscard]]
43
auto
settings()
const
->
MaterialSettings
override
;
44
45
[[nodiscard]]
46
auto
value
(std::string_view key)
const
->
const
DataValue
*
override
;
47
48
[[nodiscard]]
49
auto
rootMaterial
() -> Material*
override
;
50
51
private
:
52
auto
parentMaterial()
const
-> Material*;
53
54
[[nodiscard]]
55
auto
deltaRoot()
const
->
DataValue
;
56
57
mutable
Handle<Material>
m_parent;
58
mutable
bool
m_parent_dirty =
true
;
59
mutable
std::unordered_map<std::string, DataValue> m_merged_objects;
60
};
61
62
}
assets::DataValue
Typed value for TOML files.
Definition
data_value.hpp:50
assets::Handle
Type-safe smart pointer for assets.
Definition
core_types.hpp:149
assets::MaterialInstance::reload
void reload(const toml::table &table) override
Re-parses the asset contents in place.
Definition
material_instance.cpp:49
assets::MaterialInstance::parent
auto parent() const -> const Handle< Material > &
The parent material.
Definition
material_instance.cpp:55
assets::MaterialInstance::value
auto value(std::string_view key) const -> const DataValue *override
Looks up a shader parameter value by name.
Definition
material_instance.cpp:114
assets::MaterialInstance::rootMaterial
auto rootMaterial() -> Material *override
The material owning the render pass, instances return their parent.
Definition
material_instance.cpp:141
assets::SaveMode
SaveMode
Definition
core_types.hpp:25
material.hpp
Material asset backed by TOML data.
assets::MaterialSettings
Fixed-function pipeline state carried by the material's [settings] block.
Definition
material.hpp:33
engine
src
toast
assets
material_instance.hpp
Generated by
1.17.0