void DebugDraw::render(const fsengine::system::iCamera &camera) { if (m_buffer.empty()) { return; } bool ret = false; ret = m_shader.activate(); ASSERT(ret); // Set Projection Matrix44 camMat = camera.getRotMatrix(); camMat.pos() = camera.getPos().asVec4(); const Matrix44 mpMat = core::math::Matrix44Projection(camera.getFov(), camera.getAspectRatio(), 0.001f, 1024.000f) * core::math::Matrix44Inverse(camMat); const Matrix44f mpMatf = mpMat.asMatrix44f(); ret = m_pProjViewMat->set(16, &mpMatf.m_v[0]); ASSERT(ret); // Set identity model const Matrix44f modelMat = core::math::G_IdentityMatrix44.asMatrix44f(); ret = m_pModelMat->set(16, &modelMat.m_v[0]); ASSERT(ret); ret = m_shader.updateUniforms(); ASSERT(ret); // Render VBO m_vbo.drawStart(); m_vbo.setData(&m_buffer[0], m_buffer.size(), GL_DYNAMIC_DRAW); m_vbo.draw(GL_LINES); m_vbo.drawEnd(); ret = m_shader.deactivate(); ASSERT(ret); }