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
 
MaterialResource * GetResource ()
 
virtual bool IsBase () const
 
virtual bool IsInstance () const
 
virtual bool IsLite () const
 
MaterialLite * AsLite ()
 
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)
 
Texture * GetTextureParameter (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 NodeGraph * GetNodeGraph ()
 
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)
 
void ResetLoadedFlag ()
 
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 Object * QueryInterface (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 MaterialLite * AsLite (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< ShaderParameter > mParameters
 
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: