28#ifndef __InstanceBatchShader_H__
29#define __InstanceBatchShader_H__
This is the main starting point for the new instancing system.
Class encapsulating a standard 4x4 homogeneous matrix.
vector< unsignedshort >::type IndexMap
'New' rendering operation using vertex buffers.
Defines a part of a complete mesh.
Summary class collecting together vertex source information.
InstanceBatch(InstanceManager *creator, MeshPtr &meshReference, const MaterialPtr &material, size_t instancesPerBatch, const Mesh::IndexMap *indexToBoneMap, const String &batchName)
void setupIndices(const SubMesh *baseSubMesh)
InstanceBatchShader(InstanceManager *creator, MeshPtr &meshReference, const MaterialPtr &material, size_t instancesPerBatch, const Mesh::IndexMap *indexToBoneMap, const String &batchName)
size_t calculateMaxNumInstances(const SubMesh *baseSubMesh, uint16 flags) const
unsigned short getNumWorldTransforms(void) const
Returns the number of world transform matrices this renderable requires.
unsigned short mNumWorldMatrices
virtual ~InstanceBatchShader()
void setupHardwareSkinned(const SubMesh *baseSubMesh, VertexData *thisVertexData, VertexData *baseVertexData)
When the mesh is (hardware) skinned, a different code path is called so that we reuse the index buffe...
void buildFrom(const SubMesh *baseSubMesh, const RenderOperation &renderOperation)
void getWorldTransforms(Matrix4 *xform) const
Gets the world transform matrix / matrices for this renderable object.
void setupVertices(const SubMesh *baseSubMesh)
SharedPtr< Material > MaterialPtr
SharedPtr< Mesh > MeshPtr