Help me keep track of VBOs
This commit is contained in:
@@ -70,6 +70,22 @@ BOOL LLVertexBuffer::sOmitBlank = FALSE;
|
||||
|
||||
std::vector<U32> LLVertexBuffer::sDeleteList;
|
||||
|
||||
|
||||
GLuint LLVBOPool::allocateName()
|
||||
{
|
||||
GLuint name;
|
||||
glGenBuffersARB(1, &name);
|
||||
LLVertexBuffer::sGLCount++;
|
||||
return name;
|
||||
}
|
||||
|
||||
void LLVBOPool::releaseName(GLuint name)
|
||||
{
|
||||
glDeleteBuffersARB(1, &name);
|
||||
LLVertexBuffer::sGLCount--;
|
||||
}
|
||||
|
||||
|
||||
S32 LLVertexBuffer::sTypeOffsets[LLVertexBuffer::TYPE_MAX] =
|
||||
{
|
||||
sizeof(LLVector3), // TYPE_VERTEX,
|
||||
@@ -342,6 +358,7 @@ void LLVertexBuffer::clientCopy(F64 max_time)
|
||||
if (!sDeleteList.empty())
|
||||
{
|
||||
glDeleteBuffersARB(sDeleteList.size(), (GLuint*) &(sDeleteList[0]));
|
||||
sGLCount -= sDeleteList.size();
|
||||
sDeleteList.clear();
|
||||
}
|
||||
}
|
||||
@@ -432,8 +449,8 @@ void LLVertexBuffer::genBuffer()
|
||||
{
|
||||
BOOST_STATIC_ASSERT(sizeof(mGLBuffer) == sizeof(GLuint));
|
||||
glGenBuffersARB(1, (GLuint*)&mGLBuffer);
|
||||
sGLCount++;
|
||||
}
|
||||
sGLCount++;
|
||||
}
|
||||
|
||||
void LLVertexBuffer::genIndices()
|
||||
@@ -450,8 +467,8 @@ void LLVertexBuffer::genIndices()
|
||||
{
|
||||
BOOST_STATIC_ASSERT(sizeof(mGLBuffer) == sizeof(GLuint));
|
||||
glGenBuffersARB(1, (GLuint*)&mGLIndices);
|
||||
sGLCount++;
|
||||
}
|
||||
sGLCount++;
|
||||
}
|
||||
|
||||
void LLVertexBuffer::releaseBuffer()
|
||||
@@ -468,7 +485,6 @@ void LLVertexBuffer::releaseBuffer()
|
||||
{
|
||||
sDeleteList.push_back(mGLBuffer);
|
||||
}
|
||||
sGLCount--;
|
||||
}
|
||||
|
||||
void LLVertexBuffer::releaseIndices()
|
||||
@@ -485,7 +501,6 @@ void LLVertexBuffer::releaseIndices()
|
||||
{
|
||||
sDeleteList.push_back(mGLIndices);
|
||||
}
|
||||
sGLCount--;
|
||||
}
|
||||
|
||||
void LLVertexBuffer::createGLBuffer()
|
||||
|
||||
@@ -60,20 +60,10 @@
|
||||
class LLVBOPool : public LLGLNamePool
|
||||
{
|
||||
protected:
|
||||
virtual GLuint allocateName()
|
||||
{
|
||||
GLuint name;
|
||||
glGenBuffersARB(1, &name);
|
||||
return name;
|
||||
}
|
||||
|
||||
virtual void releaseName(GLuint name)
|
||||
{
|
||||
glDeleteBuffersARB(1, &name);
|
||||
}
|
||||
virtual GLuint allocateName();
|
||||
virtual void releaseName(GLuint name);
|
||||
};
|
||||
|
||||
|
||||
//============================================================================
|
||||
// base class
|
||||
|
||||
|
||||
@@ -212,6 +212,7 @@ void display_stats()
|
||||
{
|
||||
F32 fps = gRecentFrameCount / fps_log_freq;
|
||||
llinfos << llformat("FPS: %.02f", fps) << llendl;
|
||||
llinfos << llformat("VBO: %d glVBO: %d", LLVertexBuffer::sCount, LLVertexBuffer::sGLCount) << llendl;
|
||||
gRecentFrameCount = 0;
|
||||
gRecentFPSTime.reset();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user