28 #ifndef __HardwareVertexBuffer__
29 #define __HardwareVertexBuffer__
39 class HardwareBufferManagerBase;
58 virtual bool checkIfVertexInstanceDataIsSupported();
74 void setIsInstanceData(
const bool val);
76 size_t getInstanceDataStepRate()
const;
78 void setInstanceDataStepRate(
const size_t val);
187 unsigned short getSource(
void)
const {
return mSource; }
195 unsigned short getIndex(
void)
const {
return mIndex; }
197 size_t getSize(
void)
const;
233 if (mType != rhs.
mType ||
254 *pElem =
static_cast<void*
>(
255 static_cast<unsigned char*
>(pBase) + mOffset);
269 *pElem =
static_cast<float*
>(
271 static_cast<unsigned char*
>(pBase) + mOffset));
283 *pElem =
static_cast<RGBA*
>(
285 static_cast<unsigned char*
>(pBase) + mOffset));
296 *pElem =
static_cast<unsigned char*
>(pBase) + mOffset;
308 *pElem =
static_cast<unsigned short*
>(
310 static_cast<unsigned char*
>(pBase) + mOffset));
354 const VertexElementList& getElements(
void)
const;
378 void closeGapsInSource(
void);
392 bool vertexAnimation,
bool vertexAnimationNormals)
const;
395 unsigned short getMaxSource(
void)
const;
427 virtual const VertexElement& insertElement(
unsigned short atPosition,
432 virtual void removeElement(
unsigned short elem_index);
443 virtual void removeAllElements(
void);
450 virtual void modifyElement(
unsigned short elem_index,
unsigned short source,
size_t offset,
VertexElementType theType,
468 virtual VertexElementList findElementsBySource(
unsigned short source)
const;
471 virtual size_t getVertexSize(
unsigned short source)
const;
476 virtual unsigned short getNextFreeTextureCoordinate()
const;
489 VertexElementList::const_iterator i, iend, rhsi, rhsiend;
490 iend = mElementList.end();
493 for (i = mElementList.begin(); i != iend && rhsi != rhsiend; ++i, ++rhsi)
495 if ( !(*i == *rhsi) )
503 return !(*
this == rhs);
543 virtual void unsetBinding(
unsigned short index);
546 virtual void unsetAllBindings(
void);
554 virtual bool isBufferBound(
unsigned short index)
const;
563 virtual unsigned short getNextIndex(
void)
const {
return mHighIndex++; }
567 virtual unsigned short getLastBoundIndex(
void)
const;
573 virtual bool hasGaps(
void)
const;
590 virtual bool hasInstanceData()
const;