mirror of
https://github.com/3b1b/manim.git
synced 2025-09-01 00:48:45 +00:00
parent
d9dc956137
commit
5e459d57c6
1 changed files with 12 additions and 6 deletions
|
@ -403,20 +403,26 @@ class Camera(object):
|
||||||
single_use: bool = True
|
single_use: bool = True
|
||||||
) -> dict[str, Any]:
|
) -> dict[str, Any]:
|
||||||
# Data buffers
|
# Data buffers
|
||||||
vert_data = shader_wrapper.vert_data
|
vbo = self.ctx.buffer(shader_wrapper.vert_data.tobytes())
|
||||||
if shader_wrapper.vert_indices is not None:
|
if shader_wrapper.vert_indices is None:
|
||||||
vert_data = vert_data[shader_wrapper.vert_indices]
|
ibo = None
|
||||||
|
else:
|
||||||
vbo = self.ctx.buffer(vert_data.tobytes())
|
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
|
# Program and vertex array
|
||||||
shader_program, vert_format = self.get_shader_program(shader_wrapper)
|
shader_program, vert_format = self.get_shader_program(shader_wrapper)
|
||||||
vao = self.ctx.vertex_array(
|
vao = self.ctx.vertex_array(
|
||||||
program=shader_program,
|
program=shader_program,
|
||||||
content=[(vbo, vert_format, *shader_wrapper.vert_attributes)],
|
content=[(vbo, vert_format, *shader_wrapper.vert_attributes)],
|
||||||
|
index_buffer=ibo,
|
||||||
)
|
)
|
||||||
return {
|
return {
|
||||||
"vbo": vbo,
|
"vbo": vbo,
|
||||||
|
"ibo": ibo,
|
||||||
"vao": vao,
|
"vao": vao,
|
||||||
"prog": shader_program,
|
"prog": shader_program,
|
||||||
"shader_wrapper": shader_wrapper,
|
"shader_wrapper": shader_wrapper,
|
||||||
|
@ -424,7 +430,7 @@ class Camera(object):
|
||||||
}
|
}
|
||||||
|
|
||||||
def release_render_group(self, render_group: dict[str, Any]) -> None:
|
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:
|
if render_group[key] is not None:
|
||||||
render_group[key].release()
|
render_group[key].release()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue