diff --git a/KREngine/kraken/KRCamera.cpp b/KREngine/kraken/KRCamera.cpp index d3c0272..031a394 100644 --- a/KREngine/kraken/KRCamera.cpp +++ b/KREngine/kraken/KRCamera.cpp @@ -228,7 +228,7 @@ void KRCamera::renderFrame(float deltaTime, GLint renderBufferWidth, GLint rende // Render the geometry - scene.render(this, m_viewport.getVisibleBounds(), m_viewport, KRNode::RENDER_PASS_FORWARD_OPAQUE, false); + scene.render(this, m_viewport.getVisibleBounds(), m_viewport, KRNode::RENDER_PASS_FORWARD_OPAQUE, true); } // ----====---- Sky Box ----====---- diff --git a/KREngine/kraken/KRLight.cpp b/KREngine/kraken/KRLight.cpp index 6f5faa7..a09c9f6 100644 --- a/KREngine/kraken/KRLight.cpp +++ b/KREngine/kraken/KRLight.cpp @@ -286,6 +286,10 @@ void KRLight::render(KRCamera *pCamera, std::vector &lights, const KR if(m_flareTexture.size() && m_flareSize > 0.0f) { if(m_occlusionQuery) { + GLuint hasBeenTested = 0; + while(!hasBeenTested) { + GLDEBUG(glGetQueryObjectuivEXT(m_occlusionQuery, GL_QUERY_RESULT_AVAILABLE_EXT, &hasBeenTested)); // FINDME, HACK!! This needs to be replaced with asynchonous logic + } GLuint params = 0; GLDEBUG(glGetQueryObjectuivEXT(m_occlusionQuery, GL_QUERY_RESULT_EXT, ¶ms)); GLDEBUG(glDeleteQueriesEXT(1, &m_occlusionQuery)); diff --git a/KREngine/kraken/KRScene.cpp b/KREngine/kraken/KRScene.cpp index 9dfea53..f076bed 100644 --- a/KREngine/kraken/KRScene.cpp +++ b/KREngine/kraken/KRScene.cpp @@ -165,6 +165,11 @@ void KRScene::render(KROctreeNode *pOctreeNode, std::map &visibleBo if(bOcclusionResultsPass) { // ----====---- Occlusion results pass ----====---- if(pOctreeNode->m_occlusionTested) { + GLuint hasBeenTested = 0; + while(!hasBeenTested) { + GLDEBUG(glGetQueryObjectuivEXT(pOctreeNode->m_occlusionQuery, GL_QUERY_RESULT_AVAILABLE_EXT, &hasBeenTested)); // FINDME, HACK!! This needs to be replaced with asynchonous logic + } + GLuint params = 0; GLDEBUG(glGetQueryObjectuivEXT(pOctreeNode->m_occlusionQuery, GL_QUERY_RESULT_EXT, ¶ms));