From 5e459d57c6d65b7452ca12ee9423232b99957dd4 Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Wed, 11 Jan 2023 16:21:55 -0800 Subject: [PATCH] Revert "Don't use index buffer" This reverts commit d9dc956137df4cc13a17bfda79cc277aa2b7c03b. --- manimlib/camera/camera.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/manimlib/camera/camera.py b/manimlib/camera/camera.py index d2e8fa66..efd8c537 100644 --- a/manimlib/camera/camera.py +++ b/manimlib/camera/camera.py @@ -403,20 +403,26 @@ class Camera(object): single_use: bool = True ) -> dict[str, Any]: # Data buffers - vert_data = shader_wrapper.vert_data - if shader_wrapper.vert_indices is not None: - vert_data = vert_data[shader_wrapper.vert_indices] - - vbo = self.ctx.buffer(vert_data.tobytes()) + vbo = self.ctx.buffer(shader_wrapper.vert_data.tobytes()) + if shader_wrapper.vert_indices is None: + ibo = None + else: + vert_index_data = shader_wrapper.vert_indices.astype('i4').tobytes() + if vert_index_data: + ibo = self.ctx.buffer(vert_index_data) + else: + ibo = None # Program and vertex array shader_program, vert_format = self.get_shader_program(shader_wrapper) vao = self.ctx.vertex_array( program=shader_program, content=[(vbo, vert_format, *shader_wrapper.vert_attributes)], + index_buffer=ibo, ) return { "vbo": vbo, + "ibo": ibo, "vao": vao, "prog": shader_program, "shader_wrapper": shader_wrapper, @@ -424,7 +430,7 @@ class Camera(object): } def release_render_group(self, render_group: dict[str, Any]) -> None: - for key in ["vbo", "vao"]: + for key in ["vbo", "ibo", "vao"]: if render_group[key] is not None: render_group[key].release()