27#include "Entity/CEntity.h"
28#include "VertexInstancingType.h"
29#include "Transform/CWorldTransformData.h"
30#include "IndirectLighting/CIndirectLightingData.h"
130 virtual bool applyInstancing(IMeshBuffer* meshbuffer, IVertexBuffer* instancingBuffer, IVertexBuffer* transformBuffer);
155 virtual bool applyInstancing(IMesh* mesh, IVertexBuffer* instancingBuffer, IVertexBuffer* transformBuffer);
193 IVertexBuffer* tBuffer,
194 IVertexBuffer* lBuffer,
205 IVertexBuffer* tBuffer,
This is the object class that describes an entity.
Definition CEntity.h:58
The object class describes material information such as which shader it's associated with,...
Definition CMaterial.h:84
virtual bool applyInstancing(IMeshBuffer *meshbuffer, IVertexBuffer *instancingBuffer, IVertexBuffer *transformBuffer)
Apply instancing setup to a mesh buffer, binding instancing and transform buffers.
video::IVertexDescriptor * m_vtxDescriptor
Vertex descriptor for instanced rendering.
Definition IShaderInstancing.h:51
static void batchTransformAndLighting(IVertexBuffer *tBuffer, IVertexBuffer *lBuffer, CEntity **entities, int count)
Batch update transform and lighting vertex buffers for multiple entities (static method).
virtual IMeshBuffer * createLinkMeshBuffer(IMeshBuffer *mb)
Create a mesh buffer that links to the vertex and index buffers of another mesh buffer....
static IVertexBuffer * createTransformVertexBuffer()
Create a vertex buffer for transform matrices (static method).
virtual bool applyInstancingForRenderLighting(IMesh *mesh, IVertexBuffer *instancingBuffer, IVertexBuffer *transformBuffer)
Apply instancing setup for render lighting to all mesh buffers in a mesh.
video::IVertexDescriptor * getBaseVertexDescriptor()
Get the base vertex descriptor used for original mesh format.
Definition IShaderInstancing.h:213
static void batchTransform(IVertexBuffer *tBuffer, CEntity **entities, int count)
Batch update transform vertex buffer for multiple entities (static method).
virtual IVertexBuffer * createInstancingVertexBuffer()=0
Create a vertex buffer for instancing data (must be implemented by subclasses).
virtual bool isSupport(IMeshBuffer *mb)
Check if instancing is supported for the given mesh buffer. Compares vertex descriptors to base and i...
virtual bool removeInstancing(IMeshBuffer *meshbuffer)
Remove instancing buffers from a mesh buffer, restoring the base descriptor.
virtual void batchIntancing(IVertexBuffer *vtxBuffer, CMaterial **materials, CEntity **entities, int count)=0
Batch update instancing vertex buffer with transform and material data for multiple entities (must be...
virtual bool isSupport(IMesh *mesh)
Check if instancing is supported for the given mesh. Compares vertex descriptors for all mesh buffers...
virtual bool applyInstancingForRenderLighting(IMeshBuffer *meshbuffer, IVertexBuffer *instancingBuffer, IVertexBuffer *transformBuffer)
Apply instancing setup for render lighting to a mesh buffer, binding buffers and using lighting descr...
virtual void setupDescriptorForRenderLighting(const char *name)
Set up vertex descriptor for instanced rendering with lighting data. Adds necessary attributes for co...
virtual bool removeInstancing(IMesh *mesh)
Remove instancing buffers from all mesh buffers in a mesh, restoring the base descriptor.
video::IVertexDescriptor * m_vtxDescriptorForRenderLighting
Vertex descriptor for instanced rendering with lighting data.
Definition IShaderInstancing.h:54
video::IVertexDescriptor * getInstancingVertexDescriptor()
Get the instancing vertex descriptor used for instanced rendering format.
Definition IShaderInstancing.h:222
static IVertexBuffer * createIndirectLightingVertexBuffer()
Create a vertex buffer for indirect lighting data (static method).
virtual IMeshBuffer * createMeshBuffer(video::E_INDEX_TYPE type)=0
Create a mesh buffer for a specific index type (must be implemented by subclasses).
virtual ~IShaderInstancing()
Destructor.
video::IVertexDescriptor * m_baseVtxDescriptor
The base vertex descriptor(original mesh format).
Definition IShaderInstancing.h:48
IShaderInstancing()
Constructor. Initializes descriptors to null.
virtual bool applyInstancing(IMesh *mesh, IVertexBuffer *instancingBuffer, IVertexBuffer *transformBuffer)
Apply instancing setup to all mesh buffers in a mesh, binding instancing and transform buffers.
Definition IVertexDescriptor.h:154
Everything in the Skylicht Engine. You can start by looking at the topics.
Definition AudioDebugLog.h:29