From 728a0116db8b1923800cd81b11758c499618b8e7 Mon Sep 17 00:00:00 2001 From: Martin Felis Date: Thu, 22 Dec 2016 23:24:07 +0100 Subject: [PATCH] fixed freeze when debug no lines are being rendered --- src/modules/RenderModule.cc | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/modules/RenderModule.cc b/src/modules/RenderModule.cc index be6f5c5..33c3b1e 100644 --- a/src/modules/RenderModule.cc +++ b/src/modules/RenderModule.cc @@ -1492,14 +1492,14 @@ void Renderer::paintGL() { // update buffer from buffer data bgfx::updateDynamicVertexBuffer (debug_lines_vbh, - 0, - bgfx::copy(line_vert_buf, sizeof(PosColorVertex) * line_count * 2) - ); + 0, + bgfx::copy(line_vert_buf, sizeof(PosColorVertex) * line_count * 2) + ); bgfx::updateDynamicIndexBuffer (debug_lines_ibh, - 0, - bgfx::copy(line_idx_buf, sizeof(uint16_t) * line_count * 2) - ); + 0, + bgfx::copy(line_idx_buf, sizeof(uint16_t) * line_count * 2) + ); // submit data const RenderState& st = s_renderStates[RenderState::Debug]; @@ -1555,13 +1555,16 @@ void Renderer::paintGL() { // } } - - // update buffer from buffer data - bgfx::updateDynamicVertexBuffer (path_lines_vbh, - 0, - bgfx::copy(path_vertices.data(), sizeof(PathVertex) * path_vertices.size()) - ); + // update buffer from buffer data + bgfx::updateDynamicVertexBuffer (path_lines_vbh, + 0, + bgfx::copy(path_vertices.data(), sizeof(PathVertex) * path_vertices.size()) + ); + + // only render if we actually have lines to draw + if (path_vertices.size() > 0) + { std::vector line_indices; int index = 0; for (int i = 0; i < (path_vertices.size() / 2) - 1; i++) { @@ -1610,6 +1613,7 @@ void Renderer::paintGL() { bgfx::setVertexBuffer(path_lines_vbh); bgfx::setState(st.m_state); bgfx::submit(st.m_viewId, st.m_program.program); + } // Advance to next frame. Rendering thread will be kicked to // process submitted rendering primitives.