From 5bd97ed47ec22c2c043dddc59472b9eac22e05ef Mon Sep 17 00:00:00 2001 From: Kearwood Gilbert Date: Wed, 28 May 2014 23:13:14 -0700 Subject: [PATCH] Refactoring of streamer code to integrate texture and vbo memory management in progress. --- KREngine/kraken/KRContext.cpp | 4 ++-- KREngine/kraken/KRMesh.cpp | 3 ++- KREngine/kraken/KRMeshManager.cpp | 9 ++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/KREngine/kraken/KRContext.cpp b/KREngine/kraken/KRContext.cpp index 9954329..14b95ff 100644 --- a/KREngine/kraken/KRContext.cpp +++ b/KREngine/kraken/KRContext.cpp @@ -334,8 +334,8 @@ void KRContext::getMemoryStats(long &free_memory) void KRContext::doStreaming() { if(m_streamingEnabled) { - long memoryRemaining = KRENGINE_TARGET_TEXTURE_MEM_MAX; - long memoryRemainingThisFrame = KRENGINE_MAX_TEXTURE_MEM - m_pTextureManager->getMemUsed() - m_pMeshManager->getMemUsed(); + long memoryRemaining = KRENGINE_TARGET_TEXTURE_MEM_MAX + KRENGINE_MAX_VBO_MEM; + long memoryRemainingThisFrame = KRENGINE_MAX_TEXTURE_MEM + KRENGINE_MAX_VBO_MEM - m_pTextureManager->getMemUsed() - m_pMeshManager->getMemUsed(); m_pMeshManager->doStreaming(memoryRemaining, memoryRemainingThisFrame); m_pTextureManager->doStreaming(memoryRemaining, memoryRemainingThisFrame); } diff --git a/KREngine/kraken/KRMesh.cpp b/KREngine/kraken/KRMesh.cpp index 2cbea58..173ac6d 100644 --- a/KREngine/kraken/KRMesh.cpp +++ b/KREngine/kraken/KRMesh.cpp @@ -253,8 +253,9 @@ void KRMesh::render(const std::string &object_name, KRCamera *pCamera, std::vect //fprintf(stderr, "Rendering model: %s\n", m_name.c_str()); if(renderPass != KRNode::RENDER_PASS_ADDITIVE_PARTICLES && renderPass != KRNode::RENDER_PASS_PARTICLE_OCCLUSION && renderPass != KRNode::RENDER_PASS_VOLUMETRIC_EFFECTS_ADDITIVE) { + preStream(lod_coverage); if(getStreamLevel() == kraken_stream_level::STREAM_LEVEL_OUT) { - preStream(lod_coverage); + } else { getSubmeshes(); diff --git a/KREngine/kraken/KRMeshManager.cpp b/KREngine/kraken/KRMeshManager.cpp index c2f0b05..df3b5e3 100644 --- a/KREngine/kraken/KRMeshManager.cpp +++ b/KREngine/kraken/KRMeshManager.cpp @@ -606,13 +606,12 @@ void KRMeshManager::KRVBOData::load() GLDEBUG(glGenBuffers(1, &m_vbo_handle_indexes)); } - - /* #if GL_OES_vertex_array_object - GLDEBUG(glGenVertexArraysOES(1, &m_vao_handle)); - GLDEBUG(glBindVertexArrayOES(m_vao_handle)); + if(m_type == CONSTANT) { + GLDEBUG(glGenVertexArraysOES(1, &m_vao_handle)); + GLDEBUG(glBindVertexArrayOES(m_vao_handle)); + } #endif - */ GLDEBUG(glBindBuffer(GL_ARRAY_BUFFER, m_vbo_handle)); #if GL_OES_mapbuffer