|
From: <axl...@us...> - 2009-10-10 22:19:20
|
Revision: 554
http://hgengine.svn.sourceforge.net/hgengine/?rev=554&view=rev
Author: axlecrusher
Date: 2009-10-10 22:19:14 +0000 (Sat, 10 Oct 2009)
Log Message:
-----------
add const methods
update for easier striding else where
Modified Paths:
--------------
Mercury2/src/MercuryVBO.cpp
Mercury2/src/MercuryVBO.h
Modified: Mercury2/src/MercuryVBO.cpp
===================================================================
--- Mercury2/src/MercuryVBO.cpp 2009-10-10 22:16:31 UTC (rev 553)
+++ Mercury2/src/MercuryVBO.cpp 2009-10-10 22:19:14 UTC (rev 554)
@@ -25,7 +25,6 @@
void MercuryVBO::Render(const MercuryNode* node)
{
- uint16_t stride = sizeof(float)*8;
if ( !m_initiated ) InitVBO();
@@ -40,14 +39,14 @@
GLCALL( glBindBufferARB(GL_ARRAY_BUFFER_ARB, m_bufferIDs[0]) );
GLCALL( glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, m_bufferIDs[1]) );
- GLCALL( glVertexPointer(3, GL_FLOAT, stride, BUFFER_OFFSET(sizeof(float)*5)) );
+ GLCALL( glVertexPointer(3, GL_FLOAT, STRIDE*sizeof(float), BUFFER_OFFSET( VERTEX_OFFSET*sizeof(float) ) ) );
++m_vboBinds;
}
- Texture::ApplyActiveTextures(stride);
+ Texture::ApplyActiveTextures(STRIDE*sizeof(float));
GLCALL( glEnableClientState( GL_NORMAL_ARRAY ) );
- GLCALL( glNormalPointer(GL_FLOAT, stride, BUFFER_OFFSET(sizeof(float)*2)) );
+ GLCALL( glNormalPointer(GL_FLOAT, STRIDE*sizeof(float), BUFFER_OFFSET(sizeof(float)*2)) );
GLCALL( glDrawRangeElements(GL_TRIANGLES, 0, m_indexData.Length()-1, m_indexData.Length(), GL_UNSIGNED_SHORT, NULL) );
m_vboBatches++;
Modified: Mercury2/src/MercuryVBO.h
===================================================================
--- Mercury2/src/MercuryVBO.h 2009-10-10 22:16:31 UTC (rev 553)
+++ Mercury2/src/MercuryVBO.h 2009-10-10 22:19:14 UTC (rev 554)
@@ -10,6 +10,9 @@
class MercuryVBO : public MercuryAsset
{
public:
+ static const uint16_t STRIDE = 8;
+ static const uint16_t VERTEX_OFFSET = 5;
+
MercuryVBO();
virtual ~MercuryVBO();
@@ -22,9 +25,14 @@
static uint32_t ResetBatchCount() { uint32_t t = m_vboBatches; m_vboBatches = 0; return t; }
static uint32_t ResetBindCount() { uint32_t t = m_vboBinds; m_vboBinds = 0; return t; }
- float * GetVertexHandle() { return &m_vertexData[0]; }
- short unsigned int * GetIndexHandle() { return &m_indexData[0]; }
+ const float* GetVertexHandle() const { return m_vertexData.Buffer(); }
+ float* GetVertexHandle() { return m_vertexData.Buffer(); }
+
+ const short unsigned int* GetIndexHandle() const { return m_indexData.Buffer(); }
+ short unsigned int* GetIndexHandle() { return m_indexData.Buffer(); }
+ inline uint16_t IndiceCount() const { return m_indexData.Length(); }
+
static void* m_lastVBOrendered;
void DirtyVertices() { m_bDirtyVertices = 1; }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|