|
| virtual IVertexBuffer * | createInstancingVertexBuffer () |
| | Create a vertex buffer for instancing data (must be implemented by subclasses).
|
| virtual IMeshBuffer * | createMeshBuffer (video::E_INDEX_TYPE type) |
| | Create a mesh buffer for a specific index type (must be implemented by subclasses).
|
| virtual void | batchIntancing (IVertexBuffer *vtxBuffer, CMaterial **materials, CEntity **entities, int count) |
| | Batch update instancing vertex buffer with transform and material data for multiple entities (must be implemented by subclasses).
|
|
| IShaderInstancing () |
| | Constructor. Initializes descriptors to null.
|
|
virtual | ~IShaderInstancing () |
| | Destructor.
|
| virtual void | setupDescriptorForRenderLighting (const char *name) |
| | Set up vertex descriptor for instanced rendering with lighting data. Adds necessary attributes for color, UV scaling, and world matrix.
|
| virtual bool | isSupport (IMeshBuffer *mb) |
| | Check if instancing is supported for the given mesh buffer. Compares vertex descriptors to base and instanced formats.
|
| virtual bool | isSupport (IMesh *mesh) |
| | Check if instancing is supported for the given mesh. Compares vertex descriptors for all mesh buffers.
|
| virtual IMeshBuffer * | createLinkMeshBuffer (IMeshBuffer *mb) |
| | Create a mesh buffer that links to the vertex and index buffers of another mesh buffer. Used for instanced rendering.
|
| virtual bool | applyInstancing (IMeshBuffer *meshbuffer, IVertexBuffer *instancingBuffer, IVertexBuffer *transformBuffer) |
| | Apply instancing setup to a mesh buffer, binding instancing and transform 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 descriptor.
|
| virtual bool | removeInstancing (IMeshBuffer *meshbuffer) |
| | Remove instancing buffers from a mesh buffer, restoring the base descriptor.
|
| virtual bool | applyInstancing (IMesh *mesh, IVertexBuffer *instancingBuffer, IVertexBuffer *transformBuffer) |
| | Apply instancing setup to all mesh buffers in a mesh, binding instancing and transform buffers.
|
| virtual bool | applyInstancingForRenderLighting (IMesh *mesh, IVertexBuffer *instancingBuffer, IVertexBuffer *transformBuffer) |
| | Apply instancing setup for render lighting to all mesh buffers in a mesh.
|
| virtual bool | removeInstancing (IMesh *mesh) |
| | Remove instancing buffers from all mesh buffers in a mesh, restoring the base descriptor.
|
| video::IVertexDescriptor * | getBaseVertexDescriptor () |
| | Get the base vertex descriptor used for original mesh format.
|
| video::IVertexDescriptor * | getInstancingVertexDescriptor () |
| | Get the instancing vertex descriptor used for instanced rendering format.
|