Implemented global dynamic texture LOD selection to constrain texture memory usage within bounds
--HG-- extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%40108
This commit is contained in:
@@ -104,14 +104,14 @@ void KRModelManager::bindVBO(GLvoid *data, GLsizeiptr size, bool enable_vertex,
|
||||
while(m_vbosPool.size() + m_vbosActive.size() >= KRENGINE_MAX_VBO_HANDLES || m_vboMemUsed >= KRENGINE_MAX_VBO_MEM) {
|
||||
if(m_vbosPool.empty()) {
|
||||
fprintf(stderr, "flushBuffers due to VBO exhaustion...\n");
|
||||
m_pContext->rotateBuffers();
|
||||
m_pContext->rotateBuffers(false);
|
||||
}
|
||||
std::map<GLvoid *, vbo_info_type>::iterator first_itr = m_vbosPool.begin();
|
||||
vbo_info_type firstVBO = first_itr->second;
|
||||
GLDEBUG(glDeleteBuffers(1, &firstVBO.handle));
|
||||
m_vboMemUsed -= firstVBO.size;
|
||||
m_vbosPool.erase(first_itr);
|
||||
//fprintf(stderr, "VBO Swapping...\n");
|
||||
fprintf(stderr, "VBO Swapping...\n");
|
||||
}
|
||||
|
||||
m_currentVBO.handle = -1;
|
||||
@@ -231,7 +231,7 @@ long KRModelManager::getMemUsed()
|
||||
return m_vboMemUsed;
|
||||
}
|
||||
|
||||
void KRModelManager::rotateBuffers()
|
||||
void KRModelManager::rotateBuffers(bool new_frame)
|
||||
{
|
||||
m_vbosPool.insert(m_vbosActive.begin(), m_vbosActive.end());
|
||||
m_vbosActive.clear();
|
||||
|
||||
Reference in New Issue
Block a user