Polyphase Game Engine
Loading...
Searching...
No Matches
MaterialInstance.h
Go to the documentation of this file.
1#pragma once
2
3#include "Assets/Material.h"
4
5class MaterialBase;
6
8{
9public:
10
12
13 static MaterialInstance* New(Material* src = nullptr);
14
17
18 virtual void SaveStream(Stream& stream, Platform platform) override;
19 virtual void LoadStream(Stream& stream, Platform platform) override;
20 virtual void GatherProperties(std::vector<Property>& outProps) override;
21 virtual void Create() override;
22 virtual void Destroy() override;
23 virtual bool Import(const std::string& path, ImportOptions* options) override;
24 virtual glm::vec4 GetTypeColor() override;
25 virtual const char* GetTypeName() override;
26
27 virtual bool IsInstance() const override;
28
29 MaterialBase* GetBaseMaterial() const;
30 void SetBaseMaterial(MaterialBase* material);
31
32 void LinkToBase();
33
34 virtual BlendMode GetBlendMode() const override;
35 virtual float GetMaskCutoff() const override;
36 virtual int32_t GetSortPriority() const override;
37 virtual bool IsDepthTestDisabled() const override;
38 virtual bool ShouldApplyFog() const override;
39 virtual CullMode GetCullMode() const override;
40
41protected:
42
43 static bool HandlePropChange(Datum* datum, uint32_t index, const void* newValue);
44
45 // Property
47};
CullMode
Definition EngineTypes.h:139
Platform
Definition EngineTypes.h:31
BlendMode
Definition EngineTypes.h:106
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Definition AssetRef.h:18
Definition Datum.h:164
Definition Asset.h:102
Definition MaterialBase.h:14
Definition MaterialInstance.h:8
DECLARE_ASSET(MaterialInstance, Material)
MaterialRef mBaseMaterial
Definition MaterialInstance.h:46
Definition Material.h:48
virtual glm::vec4 GetTypeColor() override
Definition Material.cpp:94
virtual bool Import(const std::string &path, ImportOptions *options) override
Definition Material.cpp:84
virtual bool IsInstance() const
Definition Material.cpp:114
virtual void SaveStream(Stream &stream, Platform platform) override
Definition Material.cpp:42
virtual bool IsDepthTestDisabled() const
Definition Material.cpp:283
virtual void LoadStream(Stream &stream, Platform platform) override
Definition Material.cpp:10
virtual const char * GetTypeName() override
Definition Material.cpp:99
virtual bool ShouldApplyFog() const
Definition Material.cpp:284
virtual BlendMode GetBlendMode() const
Definition Material.cpp:280
virtual CullMode GetCullMode() const
Definition Material.cpp:285
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Material.cpp:89
virtual int32_t GetSortPriority() const
Definition Material.cpp:282
virtual void Destroy() override
Definition Material.cpp:79
virtual float GetMaskCutoff() const
Definition Material.cpp:281
virtual void Create() override
Definition Material.cpp:74
Definition Stream.h:21