28 #ifndef BERSERK_MATERIAL_HPP
29 #define BERSERK_MATERIAL_HPP
348 const std::vector<Ref<RHISampler>> &GetSamplers()
const {
return mSamplers; }
349 const std::vector<Ref<RHITexture>> &GetTextures()
const {
return mTextures; }
350 const std::vector<unsigned char> &GetDataParams()
const {
return mDataParams; }
360 std::vector<Ref<RHISampler>> mSamplers;
361 std::vector<Ref<RHITexture>> mTextures;
362 std::vector<unsigned char> mDataParams;
364 bool mIsDirty =
true;
#define BRK_NS_END
Definition: Config.hpp:48
#define BRK_API
Definition: Config.hpp:32
std::int32_t int32
Definition: Typedefs.hpp:43
std::uint32_t uint32
Definition: Typedefs.hpp:44
Packed material params ready for rendering usage.
Definition: MaterialParams.hpp:50
Controls how object is actually rendered.
Definition: Material.hpp:63
BRK_API void UpdatePack()
Update rhi-set of the material.
Definition: Material.cpp:170
BRK_API void SetFloat2(const StringName &name, const Vec2f &value, uint32 arrayIndex=0)
Set material float vec2 parameter.
Definition: Material.cpp:98
BRK_API void SetFloat4(const StringName &name, const Vec4f &value, uint32 arrayIndex=0)
Set material float vec4 parameter.
Definition: Material.cpp:106
BRK_API void SetBool2(const StringName &name, const Vec2b &value, uint32 arrayIndex=0)
Set material bool vec2 parameter.
Definition: Material.cpp:146
BRK_API void SetInt1(const StringName &name, int32 value, uint32 arrayIndex=0)
Set material int parameter.
Definition: Material.cpp:110
BRK_API Ref< const MaterialParams > GetPackedParams() const
Definition: Material.hpp:342
BRK_API void SetTexture(const StringName &name, Ref< RHITexture > texture, Ref< RHISampler > sampler, uint32 arrayIndex=0)
Set material texture parameter.
Definition: Material.cpp:71
BRK_API void SetBool4(const StringName &name, const Vec4b &value, uint32 arrayIndex=0)
Set material bool vec4 parameter.
Definition: Material.cpp:154
BRK_API void SetInt2(const StringName &name, const Vec2i &value, uint32 arrayIndex=0)
Set material int vec2 parameter.
Definition: Material.cpp:114
BRK_API void SetBool1(const StringName &name, bool value, uint32 arrayIndex=0)
Set material bool parameter.
Definition: Material.cpp:142
BRK_API void SetMat4(const StringName &name, const Mat4x4f &value, uint32 arrayIndex=0)
Set material float mat4x4 parameter.
Definition: Material.cpp:166
BRK_API Material(Ref< const Shader > shader)
Creates new material instance from provided shader.
Definition: Material.cpp:35
BRK_API void SetName(StringName name)
Definition: Material.cpp:63
BRK_API const String & GetDescription() const
Definition: Material.hpp:336
BRK_API void SetBool3(const StringName &name, const Vec3b &value, uint32 arrayIndex=0)
Set material bool vec3 parameter.
Definition: Material.cpp:150
BRK_API const Ref< const Shader > & GetShader() const
Definition: Material.hpp:337
BRK_API void SetUInt1(const StringName &name, uint32 value, uint32 arrayIndex=0)
Set material uint parameter.
Definition: Material.cpp:126
BRK_API ~Material() override=default
BRK_API void SetMat2(const StringName &name, const Mat2x2f &value, uint32 arrayIndex=0)
Set material float mat2x2 parameter.
Definition: Material.cpp:158
BRK_API const Ref< const ShaderTechnique > & GetTechnique() const
Definition: Material.hpp:338
BRK_API void SetInt3(const StringName &name, const Vec3i &value, uint32 arrayIndex=0)
Set material int vec3 parameter.
Definition: Material.cpp:118
BRK_API void SetUInt2(const StringName &name, const Vec2u &value, uint32 arrayIndex=0)
Set material uint vec2 parameter.
Definition: Material.cpp:130
BRK_API void SetInt4(const StringName &name, const Vec4i &value, uint32 arrayIndex=0)
Set material int vec4 parameter.
Definition: Material.cpp:122
BRK_API void SetUInt3(const StringName &name, const Vec3u &value, uint32 arrayIndex=0)
Set material uint vec3 parameter.
Definition: Material.cpp:134
BRK_API void SetFloat3(const StringName &name, const Vec3f &value, uint32 arrayIndex=0)
Set material float vec3 parameter.
Definition: Material.cpp:102
BRK_API const ShaderVariation & GetVariation() const
Definition: Material.hpp:339
BRK_API bool IsDirty() const
Definition: Material.hpp:333
BRK_API void SetMat3(const StringName &name, const Mat3x3f &value, uint32 arrayIndex=0)
Set material float mat3x3 parameter.
Definition: Material.cpp:162
BRK_API void SetUInt4(const StringName &name, const Vec4u &value, uint32 arrayIndex=0)
Set material uint vec4 parameter.
Definition: Material.cpp:138
BRK_API void SetFloat1(const StringName &name, float value, uint32 arrayIndex=0)
Set material float parameter.
Definition: Material.cpp:94
BRK_API const StringName & GetName() const
Definition: Material.hpp:335
BRK_API void SetDescription(String description)
Definition: Material.cpp:67
Reference counted base object.
Definition: RefCnt.hpp:52
Ref< G > As() const
Definition: Ref.hpp:139
Describes variation of compiled shader of the single type (max 64 flags)
BRK_API const ShaderVariation & GetVariation() const
Definition: Shader.hpp:111
Cached shared utf-8 string id.
Definition: StringName.hpp:61
Utf-8 encoded std based default string class.
Generic matrix of M x N size for space of type T.
Definition: TMatMxN.hpp:56
RHIShaderDataType
Definition: RHIDefs.hpp:83
Definition: GLDevice.cpp:46