diff --git a/manimlib/mobject/types/vectorized_mobject.py b/manimlib/mobject/types/vectorized_mobject.py index d757c7d9..1fcb0409 100644 --- a/manimlib/mobject/types/vectorized_mobject.py +++ b/manimlib/mobject/types/vectorized_mobject.py @@ -1145,6 +1145,7 @@ class VMobject(Mobject): ) self.stroke_shader_wrapper = ShaderWrapper( vert_data=self.stroke_data, + vert_indices=np.zeros(0, dtype='i4'), uniforms=self.uniforms, shader_folder=self.stroke_shader_folder, render_primitive=self.render_primitive, @@ -1164,11 +1165,8 @@ class VMobject(Mobject): return self.fill_shader_wrapper def get_stroke_shader_wrapper(self) -> ShaderWrapper: - # Temporary - if len(self.outer_vert_indices) != 3 * self.get_num_curves(): - self.outer_vert_indices = self.get_outer_vert_indices() - - self.stroke_shader_wrapper.vert_data = self.get_stroke_shader_data()[self.outer_vert_indices] + self.stroke_shader_wrapper.vert_data = self.get_stroke_shader_data() + self.stroke_shader_wrapper.vert_indices = self.get_stroke_shader_vert_indices() self.stroke_shader_wrapper.uniforms = self.get_shader_uniforms() self.stroke_shader_wrapper.depth_test = self.depth_test return self.stroke_shader_wrapper @@ -1236,8 +1234,9 @@ class VMobject(Mobject): return self.get_triangulation() def get_stroke_shader_vert_indices(self) -> np.ndarray: - # TODO, do better saving this - return self.get_outer_vert_indices() + if len(self.outer_vert_indices) != 3 * self.get_num_curves(): + self.outer_vert_indices = self.get_outer_vert_indices() + return self.outer_vert_indices class VGroup(VMobject):