28 #ifndef BERSERK_SHADER_HPP
29 #define BERSERK_SHADER_HPP
38 #include <unordered_set>
76 BRK_API const std::unordered_set<StringName> &
Get()
const {
return mValues; }
79 std::unordered_set<StringName> mValues;
126 std::vector<Ref<ShaderTechnique>> mTechniques;
127 std::vector<ShaderOption> mAllOptions;
#define BRK_NS_END
Definition: Config.hpp:48
#define BRK_API
Definition: Config.hpp:32
std::uint32_t uint32
Definition: Typedefs.hpp:44
Reference counted base object.
Definition: RefCnt.hpp:52
Options passed to compile shader.
Definition: Shader.hpp:67
BRK_API size_t GetCount() const
Definition: Shader.hpp:75
BRK_API void Clear()
Definition: Shader.hpp:74
BRK_API ShaderCompileOptions()=default
BRK_API ~ShaderCompileOptions() override=default
BRK_API void Set(const StringName &option)
Definition: Shader.hpp:72
BRK_API const std::unordered_set< StringName > & Get() const
Definition: Shader.hpp:76
BRK_API bool IsSet(const StringName &option) const
Definition: Shader.hpp:73
Describes variation of compiled shader of the single type (max 64 flags)
Defines complete rendering flow for the object.
Definition: Shader.hpp:86
BRK_API void SetOptions(Ref< ShaderCompileOptions > options)
Definition: Shader.cpp:56
BRK_API const Ref< ShaderParams > & GetParams() const
Definition: Shader.hpp:115
BRK_API Ref< const ShaderTechnique > FindFirstTechnique(const ShaderTechniqueTags &tags, bool mustBeCompiled=true) const
Definition: Shader.cpp:84
BRK_API void SetLoadPath(String loadPath)
Definition: Shader.cpp:40
BRK_API ~Shader() override=default
BRK_API void SetArchetype(StringName archetype)
Definition: Shader.cpp:36
BRK_API void SetVariation(ShaderVariation variation)
Definition: Shader.cpp:48
BRK_API void SetAllOptions(std::vector< ShaderOption > options)
Definition: Shader.cpp:64
BRK_API Ref< const ShaderTechnique > GetTechnique(const StringName &name) const
Definition: Shader.cpp:72
BRK_API const Ref< ShaderCompileOptions > & GetOptions() const
Definition: Shader.hpp:116
BRK_API const std::vector< ShaderOption > & GetAllOptions() const
Definition: Shader.hpp:114
BRK_API const ShaderVariation & GetVariation() const
Definition: Shader.hpp:111
BRK_API void SetName(StringName name)
Definition: Shader.cpp:32
BRK_API void SetDescription(String description)
Definition: Shader.cpp:44
BRK_API void SetTechniques(std::vector< Ref< ShaderTechnique >> techniques)
Definition: Shader.cpp:60
BRK_API size_t GetTechniquesCount() const
Definition: Shader.hpp:105
BRK_API const StringName & GetName() const
Definition: Shader.hpp:107
BRK_API void SetParams(Ref< ShaderParams > params)
Definition: Shader.cpp:68
BRK_API const String & GetLoadPath() const
Definition: Shader.hpp:109
BRK_API const MeshFormat & GetFormat() const
Definition: Shader.hpp:112
BRK_API const StringName & GetArchetype() const
Definition: Shader.hpp:108
BRK_API void SetFormat(MeshFormat format)
Definition: Shader.cpp:52
BRK_API const String & GetDescription() const
Definition: Shader.hpp:110
BRK_API const std::vector< Ref< ShaderTechnique > > & GetTechniques() const
Definition: Shader.hpp:113
Cached shared utf-8 string id.
Definition: StringName.hpp:61
Utf-8 encoded std based default string class.
Definition: GLDevice.cpp:46
Single option exposed by the shader.
Definition: Shader.hpp:58
String description
Definition: Shader.hpp:60
StringName name
Definition: Shader.hpp:59