28 #ifndef __InstanceBatchHW_H__
29 #define __InstanceBatchHW_H__
A viewpoint from which the scene will be rendered.
This is technique requires true instancing hardware support.
InstanceBatch forms part of the new Instancing system This is an abstract class that must be derived ...
This is the main starting point for the new instancing system.
Class encapsulating a standard 4x4 homogeneous matrix.
vector< unsigned short >::type IndexMap
'New' rendering operation using vertex buffers.
Class to manage the scene object rendering queue.
Defines a part of a complete mesh.
size_t updateVertexBuffer(Camera *currentCamera)
size_t calculateMaxNumInstances(const SubMesh *baseSubMesh, uint16 flags) const
void buildFrom(const SubMesh *baseSubMesh, const RenderOperation &renderOperation)
void setupIndices(const SubMesh *baseSubMesh)
virtual bool checkSubMeshCompatibility(const SubMesh *baseSubMesh)
Returns false on errors that would prevent building this batch from the given submesh.
unsigned short getNumWorldTransforms(void) const
Returns the number of world transform matrices this renderable requires.
bool isStatic() const
Returns true if this batch was set as static.
void getWorldTransforms(Matrix4 *xform) const
Gets the world transform matrix / matrices for this renderable object.
void setupVertices(const SubMesh *baseSubMesh)
InstanceBatchHW(InstanceManager *creator, MeshPtr &meshReference, const MaterialPtr &material, size_t instancesPerBatch, const Mesh::IndexMap *indexToBoneMap, const String &batchName)
virtual ~InstanceBatchHW()
void setStaticAndUpdate(bool bStatic)
virtual void _updateRenderQueue(RenderQueue *queue)
Overloaded to avoid updating skeletons (which we don't support), check visibility on a per unit basis...
void _boundsDirty(void)
Overloaded so that we don't perform needless updates when in static mode.