From cc7c51ad33a898e4ce55b61a6537f2694110f10c Mon Sep 17 00:00:00 2001 From: Pascal Engeler <engelerp@phys.ethz.ch> Date: Thu, 12 Aug 2021 22:23:41 +0200 Subject: [PATCH] Added explicit element buffer bindings for safety. If performance degrades, undo these changes. --- src/wave_handler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/wave_handler.cpp b/src/wave_handler.cpp index bb932f6..d50511f 100644 --- a/src/wave_handler.cpp +++ b/src/wave_handler.cpp @@ -84,9 +84,11 @@ void WaveHandler::prepare_step() { glBindTexture(GL_TEXTURE_2D, tex_comp_damp_static_); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, tex_comp_damp_dynamic_); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo_2d_); glBindVertexArray(vao_2d_); glDrawElements(GL_TRIANGLES, num_elements_2d_, GL_UNSIGNED_INT, 0); glBindVertexArray(0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0); } @@ -118,9 +120,11 @@ bool WaveHandler::step(Toolbox& tb, const int num_dsteps) glBindTexture(GL_TEXTURE_2D, tex_comp_wave_1_); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, tex_comp_damp_); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo_2d_); glBindVertexArray(vao_2d_); glDrawElements(GL_TRIANGLES, num_elements_2d_, GL_UNSIGNED_INT, 0); glBindVertexArray(0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); tb.time += tb.dt; //swap framebuffers, repeat @@ -134,9 +138,11 @@ bool WaveHandler::step(Toolbox& tb, const int num_dsteps) glBindTexture(GL_TEXTURE_2D, tex_comp_wave_0_); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, tex_comp_damp_); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo_2d_); glBindVertexArray(vao_2d_); glDrawElements(GL_TRIANGLES, num_elements_2d_, GL_UNSIGNED_INT, 0); glBindVertexArray(0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0); tb.time += tb.dt; } @@ -160,10 +166,12 @@ bool WaveHandler::render() glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_1D, tex_palette_); //glBindTexture(GL_TEXTURE_2D, tex_3d_checkerboard_); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo_render_); glBindVertexArray(vao_render_); glEnable(GL_MULTISAMPLE); glDrawElements(GL_TRIANGLES, num_elements_render_, GL_UNSIGNED_INT, 0); glBindVertexArray(0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); return true; } -- GitLab