Polyphase Game Engine
Loading...
Searching...
No Matches
Material Class Reference

#include <Material.h>

Inheritance diagram for Material:
Asset Object MaterialBase MaterialInstance MaterialLite

Public Member Functions

 DECLARE_ASSET (Material, Asset)
 
virtual void LoadStream (Stream &stream, Platform platform) override
 
virtual void SaveStream (Stream &stream, Platform platform) override
 
virtual void Create () override
 
virtual void Destroy () override
 
virtual bool Import (const std::string &path, ImportOptions *options) override
 
virtual void GatherProperties (std::vector< Property > &outProps) override
 
virtual glm::vec4 GetTypeColor () override
 
virtual const char * GetTypeName () override
 
virtual bool ShouldSnapshotForPie () const override
 
MaterialResourceGetResource ()
 
virtual bool IsBase () const
 
virtual bool IsInstance () const
 
virtual bool IsLite () const
 
MaterialLiteAsLite ()
 
std::vector< ShaderParameter > & GetParameters ()
 
void SetScalarParameter (const std::string &name, float value)
 
void SetVectorParameter (const std::string &name, glm::vec4 value)
 
void SetTextureParameter (const std::string &name, Texture *value)
 
float GetScalarParameter (const std::string &name)
 
glm::vec4 GetVectorParameter (const std::string &name)
 
TextureGetTextureParameter (const std::string &name)
 
void WriteShaderUniformParams (uint8_t *outData, uint32_t &outSize)
 
virtual BlendMode GetBlendMode () const
 
virtual float GetMaskCutoff () const
 
virtual int32_t GetSortPriority () const
 
virtual bool IsDepthTestDisabled () const
 
virtual bool ShouldApplyFog () const
 
virtual CullMode GetCullMode () const
 
virtual bool HasNodeGraph () const
 
virtual NodeGraphGetNodeGraph ()
 
virtual void ApplyGraphValues (NodeGraph *graph)
 
- Public Member Functions inherited from Asset
 DECLARE_FACTORY_MANAGER (Asset)
 
 DECLARE_FACTORY (Asset, Asset)
 
 DECLARE_OBJECT (Asset, Object)
 
 Asset ()
 
virtual ~Asset ()
 
virtual void Copy (Asset *srcAsset)
 
const std::string & GetName () const
 
bool IsLoaded () const
 
bool IsRefCounted () const
 
int32_t GetRefCount () const
 
bool IsEmbedded () const
 
void SetEmbedded (bool embed)
 
bool IsEngineAsset () const
 
void SetEngineAsset (bool engineAsset)
 
void SetName (const std::string &name)
 
void IncrementRefCount ()
 
void DecrementRefCount ()
 
void LoadFile (const char *path, AsyncLoadRequest *request=nullptr)
 
void LoadEmbedded (const EmbeddedFile *embeddedAsset, AsyncLoadRequest *request=nullptr)
 
void SaveFile (const char *path, Platform platform)
 
virtual const char * GetTypeImportExt ()
 
bool IsTransient () const
 
void SetTransient (bool transient)
 
uint64_t GetUuid () const
 
void SetUuid (uint64_t uuid)
 
void EnsureUuid ()
 
void WriteHeader (Stream &stream)
 
- Public Member Functions inherited from Object
virtual ~Object ()=default
 
virtual const char * RuntimeName () const =0
 
virtual const char * RuntimeParentName () const =0
 
virtual RuntimeId InstanceRuntimeId () const =0
 
virtual ObjectQueryInterface (RuntimeId id) const
 
virtual bool Is (RuntimeId id) const
 
virtual bool Is (const char *name) const
 
virtual bool DrawCustomProperty (Property &prop)
 
template<typename T >
T * As () const
 
virtual bool Equals (const Object *rhs) const
 

Static Public Member Functions

static MaterialLiteAsLite (Material *material)
 
static void OverwriteShaderParameters (std::vector< ShaderParameter > &dst, const std::vector< ShaderParameter > &src)
 
- Static Public Member Functions inherited from Asset
static AssetHeader ReadHeader (Stream &stream)
 
static std::string GetNameFromPath (const std::string &path)
 
static std::string GetDirectoryFromPath (const std::string &path)
 
static const char * GetNameFromTypeId (TypeId id)
 
static TypeId GetTypeIdFromName (const char *name)
 
- Static Public Member Functions inherited from Object
static const char * ClassRuntimeName ()
 

Protected Attributes

std::vector< ShaderParametermParameters
 
MaterialResource mResource
 
- Protected Attributes inherited from Asset
uint32_t mVersion = 0
 
TypeId mType = INVALID_TYPE_ID
 
uint64_t mUuid = 0
 
bool mEmbedded = false
 
bool mLoaded = false
 
bool mEnableRefCount = true
 
bool mEngineAsset = false
 
bool mTransient = false
 
std::string mName = "Asset"
 
int32_t mRefCount = 0
 

Member Function Documentation

◆ ApplyGraphValues()

virtual void Material::ApplyGraphValues ( NodeGraph graph)
inlinevirtual

Reimplemented in MaterialLite.

◆ AsLite() [1/2]

MaterialLite * Material::AsLite ( )

◆ AsLite() [2/2]

MaterialLite * Material::AsLite ( Material material)
static

◆ Create()

void Material::Create ( )
overridevirtual

Reimplemented from Asset.

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ DECLARE_ASSET()

Material::DECLARE_ASSET ( Material  ,
Asset   
)

◆ Destroy()

void Material::Destroy ( )
overridevirtual

Reimplemented from Asset.

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ GatherProperties()

void Material::GatherProperties ( std::vector< Property > &  outProps)
overridevirtual

Reimplemented from Asset.

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ GetBlendMode()

BlendMode Material::GetBlendMode ( ) const
virtual

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ GetCullMode()

CullMode Material::GetCullMode ( ) const
virtual

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ GetMaskCutoff()

float Material::GetMaskCutoff ( ) const
virtual

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ GetNodeGraph()

virtual NodeGraph * Material::GetNodeGraph ( )
inlinevirtual

Reimplemented in MaterialLite.

◆ GetParameters()

std::vector< ShaderParameter > & Material::GetParameters ( )

◆ GetResource()

MaterialResource * Material::GetResource ( )

◆ GetScalarParameter()

float Material::GetScalarParameter ( const std::string &  name)

◆ GetSortPriority()

int32_t Material::GetSortPriority ( ) const
virtual

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ GetTextureParameter()

Texture * Material::GetTextureParameter ( const std::string &  name)

◆ GetTypeColor()

glm::vec4 Material::GetTypeColor ( )
overridevirtual

Reimplemented from Asset.

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ GetTypeName()

const char * Material::GetTypeName ( )
overridevirtual

Reimplemented from Asset.

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ GetVectorParameter()

glm::vec4 Material::GetVectorParameter ( const std::string &  name)

◆ HasNodeGraph()

virtual bool Material::HasNodeGraph ( ) const
inlinevirtual

Reimplemented in MaterialLite.

◆ Import()

bool Material::Import ( const std::string &  path,
ImportOptions options 
)
overridevirtual

Reimplemented from Asset.

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ IsBase()

bool Material::IsBase ( ) const
virtual

Reimplemented in MaterialBase.

◆ IsDepthTestDisabled()

bool Material::IsDepthTestDisabled ( ) const
virtual

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ IsInstance()

bool Material::IsInstance ( ) const
virtual

Reimplemented in MaterialInstance.

◆ IsLite()

bool Material::IsLite ( ) const
virtual

Reimplemented in MaterialLite.

◆ LoadStream()

void Material::LoadStream ( Stream stream,
Platform  platform 
)
overridevirtual

Reimplemented from Asset.

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ OverwriteShaderParameters()

void Material::OverwriteShaderParameters ( std::vector< ShaderParameter > &  dst,
const std::vector< ShaderParameter > &  src 
)
static

◆ SaveStream()

void Material::SaveStream ( Stream stream,
Platform  platform 
)
overridevirtual

Reimplemented from Asset.

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ SetScalarParameter()

void Material::SetScalarParameter ( const std::string &  name,
float  value 
)

◆ SetTextureParameter()

void Material::SetTextureParameter ( const std::string &  name,
Texture value 
)

◆ SetVectorParameter()

void Material::SetVectorParameter ( const std::string &  name,
glm::vec4  value 
)

◆ ShouldApplyFog()

bool Material::ShouldApplyFog ( ) const
virtual

Reimplemented in MaterialBase, MaterialInstance, and MaterialLite.

◆ ShouldSnapshotForPie()

virtual bool Material::ShouldSnapshotForPie ( ) const
inlineoverridevirtual

Reimplemented from Asset.

◆ WriteShaderUniformParams()

void Material::WriteShaderUniformParams ( uint8_t *  outData,
uint32_t &  outSize 
)

Member Data Documentation

◆ mParameters

std::vector<ShaderParameter> Material::mParameters
protected

◆ mResource

MaterialResource Material::mResource
protected

The documentation for this class was generated from the following files: