Toast Engine
Loading...
Searching...
No Matches
assets::Material Class Reference

Shader-driven material asset. More...

#include <material.hpp>

Inheritance diagram for assets::Material:
Collaboration diagram for assets::Material:

Public Member Functions

 Material (const toml::table &table, Handle< Schema > schema={})
auto type () const -> std::string_view override
auto serialize (SaveMode mode) const -> std::vector< uint8_t > override
void reload (const toml::table &table) override
 Re-parses the asset contents in place.
auto name () const -> std::string
 Display name of the material.
virtual auto shaders () const -> const std::vector< Handle< Shader > > &
virtual auto settings () const -> MaterialSettings
virtual auto value (std::string_view key) const -> const DataValue *
 Looks up a shader parameter value by name.
virtual auto rootMaterial () -> Material *
 The material owning the render pass, instances return their parent.
Public Member Functions inherited from assets::Data
 Data (const toml::table &table, Handle< Schema > schema={})
 Data (const toml::table &table, Handle< Schema > schema, KeepAllKeysTag)
 Stores the schema handle for round-trip serialization but runs free-form buildRoot, keeping every TOML key.
auto operator[] (std::string_view k) -> DataValue &
auto operator[] (std::string_view k) const -> const DataValue &
auto contains (std::string_view k) const -> bool
auto root () const -> const DataValue &
auto schema () const -> const Handle< Schema > &
Public Member Functions inherited from assets::Asset
 Asset (const Asset &)=delete
auto operator= (const Asset &) -> Asset &=delete
auto refCount () const noexcept -> uint32_t

Additional Inherited Members

Static Public Attributes inherited from assets::Data
static constexpr KeepAllKeysTag keep_all_keys {}
Protected Member Functions inherited from assets::Data
virtual void onReloaded ()
Protected Member Functions inherited from assets::Asset
void addRef () noexcept
void release () noexcept
Protected Attributes inherited from assets::Data
DataValue m_root
 Object DataValue holding all fields.
Handle< Schema > m_schema
 optional
bool m_keep_all_keys = false

Detailed Description

Shader-driven material asset.

The shaders array defines which shader assets the material renders with; every other key holds a value for a shader parameter discovered via reflection

The trailing settings table carries fixed-function state

Member Function Documentation

◆ reload()

void assets::Material::reload ( const toml::table & table)
overridevirtual

Re-parses the asset contents in place.

Reimplemented from assets::Data.

Reimplemented in assets::MaterialInstance.

Here is the caller graph for this function:

◆ rootMaterial()

virtual auto assets::Material::rootMaterial ( ) -> Material *
inlinenodiscardvirtual

The material owning the render pass, instances return their parent.

Reimplemented in assets::MaterialInstance.

◆ serialize()

auto assets::Material::serialize ( SaveMode mode) const -> std::vector< uint8_t >
nodiscardoverridevirtual

Reimplemented from assets::Data.

◆ type()

auto assets::Material::type ( ) const -> std::string_view
inlinenodiscardoverridevirtual

Reimplemented from assets::Data.

◆ value()

auto assets::Material::value ( std::string_view key) const -> const DataValue *
nodiscardvirtual

Looks up a shader parameter value by name.

Reimplemented in assets::MaterialInstance.

Here is the caller graph for this function:

The documentation for this class was generated from the following files:
  • engine/src/toast/assets/material.hpp
  • engine/src/toast/assets/material.cpp