LkEngine 0.1.2
 
Loading...
Searching...
No Matches
LkEngine::LOpenGLRenderer Class Reference
Inheritance diagram for LkEngine::LOpenGLRenderer:
LkEngine::LRendererAPI LkEngine::LObject LkEngine::LObjectBase

Public Member Functions

virtual void Initialize () override
 Initialize object.
 
virtual void Destroy () override
 Destroy object, releasing all resources.
 
virtual void BeginFrame () override
 
virtual void EndFrame () override
 
virtual void Clear () override
 
virtual void RenderMesh (TObjectPtr< LMesh > &InMesh, TObjectPtr< LShader > &InShader, const glm::mat4 &InTransform) override
 
virtual void RenderGeometry (TObjectPtr< LRenderCommandBuffer > RenderCommandBuffer, TObjectPtr< LPipeline > Pipeline, TObjectPtr< LVertexBuffer > InVertexBuffer, TObjectPtr< LIndexBuffer > InIndexBuffer, const glm::mat4 &Transform, uint32_t IndexCount) override
 
virtual void BeginRenderPass (TObjectPtr< LRenderCommandBuffer > RenderCommandBuffer, TObjectPtr< LRenderPass > renderPass, bool bExplicitClear=false) override
 
virtual void EndRenderPass (TObjectPtr< LRenderCommandBuffer > RenderCommandBuffer) override
 
virtual void RenderGeometry (TObjectPtr< LRenderCommandBuffer > RenderCommandBuffer, TObjectPtr< LPipeline > Pipeline, TObjectPtr< LMaterial > Material, TObjectPtr< LVertexBuffer > InVertexBuffer, TObjectPtr< LIndexBuffer > InIndexBuffer, const glm::mat4 &Transform, const uint32_t IndexCount) override
 
virtual void Draw (LVertexBuffer &InVertexBuffer, const LShader &InShader) override
 
virtual void Draw (const LVertexBuffer &VertexBuffer, const LIndexBuffer &IndexBuffer, const LShader &Shader)
 
virtual void SetPrimitiveTopology (const ERenderTopology InRenderTopology) override
 
virtual void SetDepthFunction (const EDepthFunction InDepthFunction) override
 
virtual void SetDepthEnabled (const bool Enabled) override
 
virtual FRendererCapabilitiesGetCapabilities () override
 
void BindArrayTexture (const uint8_t Index)
 
void BindArrayTexture (const EArrayTextureDimension Dimension)
 
TObjectPtr< LOpenGLArrayTextureGetArrayTexture (const int Index)
 
- Public Member Functions inherited from LkEngine::LRendererAPI
- Public Member Functions inherited from LkEngine::LObject
 LObject (const LObject &Other)
 
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::LRendererAPI
static FORCEINLINE ERendererAPI Get ()
 
static void SetAPI (ERendererAPI InRendererApiType)
 
static FORCEINLINE std::string GetName ()
 
static TObjectPtr< LRendererAPICreate ()
 
- 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
 
- Static Protected Attributes inherited from LkEngine::LRendererAPI
static ERendererAPI RendererAPI = ERendererAPI::OpenGL
 

Member Function Documentation

◆ BeginFrame()

void LkEngine::LOpenGLRenderer::BeginFrame ( )
overridevirtual

◆ BeginRenderPass()

void LkEngine::LOpenGLRenderer::BeginRenderPass ( TObjectPtr< LRenderCommandBuffer > RenderCommandBuffer,
TObjectPtr< LRenderPass > renderPass,
bool bExplicitClear = false )
overridevirtual

◆ Clear()

void LkEngine::LOpenGLRenderer::Clear ( )
overridevirtual

◆ Destroy()

void LkEngine::LOpenGLRenderer::Destroy ( )
overridevirtual

Destroy object, releasing all resources.

Implements LkEngine::LRendererAPI.

◆ Draw() [1/2]

void LkEngine::LOpenGLRenderer::Draw ( const LVertexBuffer & VertexBuffer,
const LIndexBuffer & IndexBuffer,
const LShader & Shader )
virtual

◆ Draw() [2/2]

void LkEngine::LOpenGLRenderer::Draw ( LVertexBuffer & InVertexBuffer,
const LShader & InShader )
overridevirtual

◆ EndFrame()

void LkEngine::LOpenGLRenderer::EndFrame ( )
overridevirtual

◆ EndRenderPass()

void LkEngine::LOpenGLRenderer::EndRenderPass ( TObjectPtr< LRenderCommandBuffer > RenderCommandBuffer)
overridevirtual

◆ GetCapabilities()

FRendererCapabilities & LkEngine::LOpenGLRenderer::GetCapabilities ( )
overridevirtual

◆ Initialize()

void LkEngine::LOpenGLRenderer::Initialize ( )
overridevirtual

Initialize object.

Implements LkEngine::LRendererAPI.

◆ RenderGeometry() [1/2]

void LkEngine::LOpenGLRenderer::RenderGeometry ( TObjectPtr< LRenderCommandBuffer > RenderCommandBuffer,
TObjectPtr< LPipeline > Pipeline,
TObjectPtr< LMaterial > Material,
TObjectPtr< LVertexBuffer > InVertexBuffer,
TObjectPtr< LIndexBuffer > InIndexBuffer,
const glm::mat4 & Transform,
const uint32_t IndexCount )
overridevirtual

DrawIndexed(IndexCount);

Implements LkEngine::LRendererAPI.

◆ RenderGeometry() [2/2]

void LkEngine::LOpenGLRenderer::RenderGeometry ( TObjectPtr< LRenderCommandBuffer > RenderCommandBuffer,
TObjectPtr< LPipeline > Pipeline,
TObjectPtr< LVertexBuffer > InVertexBuffer,
TObjectPtr< LIndexBuffer > InIndexBuffer,
const glm::mat4 & Transform,
uint32_t IndexCount )
overridevirtual

◆ RenderMesh()

void LkEngine::LOpenGLRenderer::RenderMesh ( TObjectPtr< LMesh > & InMesh,
TObjectPtr< LShader > & InShader,
const glm::mat4 & InTransform )
overridevirtual

◆ SetDepthEnabled()

void LkEngine::LOpenGLRenderer::SetDepthEnabled ( const bool Enabled)
overridevirtual

◆ SetDepthFunction()

void LkEngine::LOpenGLRenderer::SetDepthFunction ( const EDepthFunction InDepthFunction)
overridevirtual

◆ SetPrimitiveTopology()

void LkEngine::LOpenGLRenderer::SetPrimitiveTopology ( const ERenderTopology InRenderTopology)
overridevirtual

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