LkEngine 0.1.2
 
Loading...
Searching...
No Matches
LkEngine::LOpenGLMaterial Class Reference
Inheritance diagram for LkEngine::LOpenGLMaterial:
LkEngine::LMaterial LkEngine::LObject LkEngine::LObjectBase

Public Member Functions

 LOpenGLMaterial (const TObjectPtr< LShader > &Shader, const std::string &Name)
 
 LOpenGLMaterial (TObjectPtr< LMaterial > Material, const std::string &Name)
 
virtual void Invalidate () override
 
virtual void OnShaderReloaded () override
 
virtual FORCEINLINE FBuffer GetUniformStorageBuffer () const override
 
virtual FORCEINLINE FBufferGetUniformStorageBuffer () override
 
virtual void Set (const std::string &Name, const int Value) override
 
virtual void Set (const std::string &Name, const bool Value) override
 
virtual void Set (const std::string &Name, const float Value) override
 
virtual void Set (const std::string &Name, const uint32_t Value) override
 
virtual void Set (const std::string &Name, const glm::vec2 &Value) override
 
virtual void Set (const std::string &Name, const glm::vec3 &Value) override
 
virtual void Set (const std::string &Name, const glm::vec4 &Value) override
 
virtual void Set (const std::string &Name, const glm::ivec2 &Value) override
 
virtual void Set (const std::string &Name, const glm::ivec3 &Value) override
 
virtual void Set (const std::string &Name, const glm::ivec4 &Value) override
 
virtual void Set (const std::string &Name, const glm::mat3 &Value) override
 
virtual void Set (const std::string &Name, const glm::mat4 &Value) override
 
virtual void Set (const std::string &Name, const TObjectPtr< LTexture2D > &Texture) override
 
virtual void Set (const std::string &Name, const TObjectPtr< LTexture2D > &Texture, const uint32_t ArrayIndex) override
 
virtual void Set (const std::string &Name, const TObjectPtr< LImage2D > &Image) override
 
virtual float & GetFloat (const std::string &Name) override
 
virtual int32_t & GetInt (const std::string &Name) override
 
virtual uint32_t & GetUInt (const std::string &Name) override
 
virtual bool & GetBool (const std::string &Name) override
 
virtual glm::vec2 & GetVector2 (const std::string &Name) override
 
virtual glm::vec3 & GetVector3 (const std::string &Name) override
 
virtual glm::vec4 & GetVector4 (const std::string &Name) override
 
virtual glm::mat3 & GetMatrix3 (const std::string &Name) override
 
virtual glm::mat4 & GetMatrix4 (const std::string &Name) override
 
virtual void SetTexture (TObjectPtr< LTexture > Texture) override
 @TODO: Allow for multiple textures per material.
 
virtual void SetTexture (TObjectPtr< LTexture2D > Texture) override
 
virtual TObjectPtr< LTexture2DGetTexture (const std::string &Name="") override
 
virtual const TObjectPtr< LTexture2D > & GetTexture (const std::string &Name) const override
 
virtual TObjectPtr< LTexture2DTryGetTexture (const std::string &Name) override
 
virtual TObjectPtr< LTextureCubeGetTextureCube (const std::string &Name) override
 
virtual TObjectPtr< LTextureCubeTryGetTextureCube (const std::string &Name) override
 
virtual FORCEINLINE TObjectPtr< LShaderGetShader () override
 
virtual FORCEINLINE const std::string & GetName () const override
 
- Public Member Functions inherited from LkEngine::LMaterial
- Public Member Functions inherited from LkEngine::LObject
 LObject (const LObject &Other)
 
virtual void Initialize ()
 Initialize object.
 
virtual void Destroy ()
 Destroy object, releasing all resources.
 
virtual FORCEINLINE bool IsInitialized () const
 Check if object is initialized.
 
FORCEINLINE FObjectHandle GetObjectHandle () const
 Get the object handle.
 
virtual FORCEINLINE bool IsObjectValid () const
 Check if object is valid for use.
 
virtual const LClassObjectRegistration ()=0
 Register object class.
 
virtual FORCEINLINE const LClassGetClass () const
 Get the class for this LObject.
 
virtual std::string ClassName () const =0
 Get name of the LObject class.
 
LObjectoperator= (const LObject &Other)
 
void MarkAsGarbage ()
 Mark object as garbage.
 
template<typename T >
T & As ()
 Cast object to type T.
 
template<typename T >
const T & As () const
 Cast object to type T.
 
template<typename T >
bool IsA () const
 Check if the object is or is a derivation of type T.
 
virtual FORCEINLINE bool IsAsset () const
 Check if object is an asset.
 
FORCEINLINE uint32_t GetReferenceCount () const
 Return current reference count from all object pointers.
 
- Public Member Functions inherited from LkEngine::LObjectBase
template<typename OtherClassType >
FORCEINLINE bool IsA (OtherClassType OtherObject) const
 Check if the object is the same type as the passed object's.
 

Additional Inherited Members

- Static Public Member Functions inherited from LkEngine::LMaterial
static TObjectPtr< LMaterialCreate (const TObjectPtr< LShader > &Shader, const std::string &Name)
 
static TObjectPtr< LMaterialCopy (const TObjectPtr< LMaterial > &Other, const std::string &Name="")
 
- Static Public Member Functions inherited from LkEngine::LObject
static FORCEINLINE const LClassStaticClass ()
 Get static class object.
 
static FORCEINLINE std::string StaticClassName ()
 Static class name.
 
template<typename T >
static void ValidateLObjectImplementation ()
 Validate the implementation of a LObject.
 
- Static Public Member Functions inherited from LkEngine::LObjectBase
template<typename ClassType >
static FORCEINLINE bool IsChildOf (const ClassType *InObjectClass, const ClassType *InOtherClass)
 Check if the object is a child of another class.
 
- Protected Member Functions inherited from LkEngine::LObjectBase
void SetClass (LClass *InClass)
 Set the class.
 
FORCEINLINE const LClassGetClass () const
 Get the private class member.
 
FORCEINLINE bool IsClassValid () const
 Check if LObjectBase has a valid LClass object.
 
- Protected Attributes inherited from LkEngine::LObject
FObjectHandle ObjectHandle = 0
 
bool bObjectInitialized = false
 
EObjectFlag ObjectFlags = EObjectFlag::None
 
std::atomic< uint32_t > Ptr_ReferenceCount = 0
 

Member Function Documentation

◆ GetBool()

bool & LkEngine::LOpenGLMaterial::GetBool ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ GetFloat()

float & LkEngine::LOpenGLMaterial::GetFloat ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ GetInt()

int32_t & LkEngine::LOpenGLMaterial::GetInt ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ GetMatrix3()

glm::mat3 & LkEngine::LOpenGLMaterial::GetMatrix3 ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ GetMatrix4()

glm::mat4 & LkEngine::LOpenGLMaterial::GetMatrix4 ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ GetName()

virtual FORCEINLINE const std::string & LkEngine::LOpenGLMaterial::GetName ( ) const
inlineoverridevirtual

Implements LkEngine::LMaterial.

◆ GetShader()

virtual FORCEINLINE TObjectPtr< LShader > LkEngine::LOpenGLMaterial::GetShader ( )
inlineoverridevirtual

Implements LkEngine::LMaterial.

◆ GetTexture() [1/2]

const TObjectPtr< LTexture2D > & LkEngine::LOpenGLMaterial::GetTexture ( const std::string & Name) const
overridevirtual

Implements LkEngine::LMaterial.

◆ GetTexture() [2/2]

TObjectPtr< LTexture2D > LkEngine::LOpenGLMaterial::GetTexture ( const std::string & Name = "")
overridevirtual

Implements LkEngine::LMaterial.

◆ GetTextureCube()

TObjectPtr< LTextureCube > LkEngine::LOpenGLMaterial::GetTextureCube ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ GetUInt()

uint32_t & LkEngine::LOpenGLMaterial::GetUInt ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ GetUniformStorageBuffer() [1/2]

virtual FORCEINLINE FBuffer LkEngine::LOpenGLMaterial::GetUniformStorageBuffer ( ) const
inlineoverridevirtual

Implements LkEngine::LMaterial.

◆ GetUniformStorageBuffer() [2/2]

virtual FORCEINLINE FBuffer & LkEngine::LOpenGLMaterial::GetUniformStorageBuffer ( )
inlineoverridevirtual

Implements LkEngine::LMaterial.

◆ GetVector2()

glm::vec2 & LkEngine::LOpenGLMaterial::GetVector2 ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ GetVector3()

glm::vec3 & LkEngine::LOpenGLMaterial::GetVector3 ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ GetVector4()

glm::vec4 & LkEngine::LOpenGLMaterial::GetVector4 ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ Invalidate()

void LkEngine::LOpenGLMaterial::Invalidate ( )
overridevirtual

Implements LkEngine::LMaterial.

◆ OnShaderReloaded()

void LkEngine::LOpenGLMaterial::OnShaderReloaded ( )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [1/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const bool Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [2/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const float Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [3/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const glm::ivec2 & Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [4/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const glm::ivec3 & Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [5/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const glm::ivec4 & Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [6/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const glm::mat3 & Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [7/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const glm::mat4 & Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [8/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const glm::vec2 & Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [9/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const glm::vec3 & Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [10/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const glm::vec4 & Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [11/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const int Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [12/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const TObjectPtr< LImage2D > & Image )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [13/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const TObjectPtr< LTexture2D > & Texture )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [14/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const TObjectPtr< LTexture2D > & Texture,
const uint32_t ArrayIndex )
overridevirtual

Implements LkEngine::LMaterial.

◆ Set() [15/15]

void LkEngine::LOpenGLMaterial::Set ( const std::string & Name,
const uint32_t Value )
overridevirtual

Implements LkEngine::LMaterial.

◆ SetTexture() [1/2]

void LkEngine::LOpenGLMaterial::SetTexture ( TObjectPtr< LTexture > Texture)
overridevirtual

@TODO: Allow for multiple textures per material.

Implements LkEngine::LMaterial.

◆ SetTexture() [2/2]

void LkEngine::LOpenGLMaterial::SetTexture ( TObjectPtr< LTexture2D > Texture)
overridevirtual

Implements LkEngine::LMaterial.

◆ TryGetTexture()

TObjectPtr< LTexture2D > LkEngine::LOpenGLMaterial::TryGetTexture ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.

◆ TryGetTextureCube()

TObjectPtr< LTextureCube > LkEngine::LOpenGLMaterial::TryGetTextureCube ( const std::string & Name)
overridevirtual

Implements LkEngine::LMaterial.


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