|
virtual void | Initialize ()=0 |
| Initialize object.
|
|
virtual void | Destroy ()=0 |
| Destroy object, releasing all resources.
|
|
virtual void | BeginFrame ()=0 |
|
virtual void | EndFrame ()=0 |
|
virtual void | Clear ()=0 |
|
virtual void | BeginRenderPass (TObjectPtr< LRenderCommandBuffer > InRenderCommandBuffer, TObjectPtr< LRenderPass > InRenderPass, bool InExplicitClear=false)=0 |
|
virtual void | EndRenderPass (TObjectPtr< LRenderCommandBuffer > InRenderCommandBuffer)=0 |
|
virtual void | RenderGeometry (TObjectPtr< LRenderCommandBuffer > InRenderCommandBuffer, TObjectPtr< LPipeline > InPipeline, TObjectPtr< LMaterial > InMaterial, TObjectPtr< LVertexBuffer > InVertexBuffer, TObjectPtr< LIndexBuffer > InIndexBuffer, const glm::mat4 &InTransform, const uint32_t IndexCount=0)=0 |
|
virtual void | RenderMesh (TObjectPtr< LMesh > &InMesh, TObjectPtr< LShader > &InShader, const glm::mat4 &InTransform)=0 |
|
virtual void | RenderGeometry (TObjectPtr< LRenderCommandBuffer > RenderCommandBuffer, TObjectPtr< LPipeline > Pipeline, TObjectPtr< LVertexBuffer > InVertexBuffer, TObjectPtr< LIndexBuffer > InIndexBuffer, const glm::mat4 &Transform, uint32_t IndexCount)=0 |
|
virtual void | Draw (const LVertexBuffer &VertexBuffer, const LIndexBuffer &IndexBuffer, const LShader &Shader)=0 |
|
virtual void | Draw (LVertexBuffer &VertexBuffer, const LShader &Shader)=0 |
|
virtual void | SetPrimitiveTopology (const ERenderTopology InRenderTopology)=0 |
|
virtual void | SetDepthFunction (const EDepthFunction InDepthFunction)=0 |
|
virtual void | SetDepthEnabled (const bool Enabled)=0 |
|
virtual FRendererCapabilities & | GetCapabilities ()=0 |
|
| 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 LClass * | ObjectRegistration ()=0 |
| Register object class.
|
|
virtual FORCEINLINE const LClass * | GetClass () const |
| Get the class for this LObject.
|
|
virtual std::string | ClassName () const =0 |
| Get name of the LObject class.
|
|
LObject & | operator= (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.
|
|
template<typename OtherClassType > |
FORCEINLINE bool | IsA (OtherClassType OtherObject) const |
| Check if the object is the same type as the passed object's.
|
|
|
static FORCEINLINE ERendererAPI | Get () |
|
static void | SetAPI (ERendererAPI InRendererApiType) |
|
static FORCEINLINE std::string | GetName () |
|
static TObjectPtr< LRendererAPI > | Create () |
|
static FORCEINLINE const LClass * | StaticClass () |
| Get static class object.
|
|
static FORCEINLINE std::string | StaticClassName () |
| Static class name.
|
|
template<typename T > |
static void | ValidateLObjectImplementation () |
| Validate the implementation of a LObject.
|
|
template<typename ClassType > |
static FORCEINLINE bool | IsChildOf (const ClassType *InObjectClass, const ClassType *InOtherClass) |
| Check if the object is a child of another class.
|
|
Interface for renderer APIs.
- Todo
- Might remove deriving from LObject here since the renderer API should only be of static use anyways.