From 693a859cafa8e752c4e9efed5fab330cc572610c Mon Sep 17 00:00:00 2001 From: MathItYT Date: Sun, 27 Oct 2024 14:10:12 -0300 Subject: [PATCH] revert changes in mobject.py and camera.py --- manimlib/camera/camera.py | 3 +-- manimlib/mobject/mobject.py | 15 ++++++++++----- manimlib/scene/scene.py | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/manimlib/camera/camera.py b/manimlib/camera/camera.py index cfe7afce..2074fbd1 100644 --- a/manimlib/camera/camera.py +++ b/manimlib/camera/camera.py @@ -14,7 +14,6 @@ from manimlib.constants import FRAME_WIDTH from manimlib.mobject.mobject import Mobject from manimlib.mobject.mobject import Point from manimlib.utils.color import color_to_rgba -from manimlib.utils.family_ops import extract_mobject_family_members from typing import TYPE_CHECKING @@ -229,7 +228,7 @@ class Camera(object): self.clear() self.refresh_uniforms() self.fbo.use() - for mobject in extract_mobject_family_members(mobjects, True): + for mobject in mobjects: mobject.render(self.ctx, self.uniforms) if self.window: diff --git a/manimlib/mobject/mobject.py b/manimlib/mobject/mobject.py index 923e6dfd..a8ebcba4 100644 --- a/manimlib/mobject/mobject.py +++ b/manimlib/mobject/mobject.py @@ -2039,11 +2039,16 @@ class Mobject(object): return self.shader_wrapper def get_shader_wrapper_list(self, ctx: Context) -> list[ShaderWrapper]: - if len(self.get_points()) == 0: - return [] - shader_wrapper = self.get_shader_wrapper(ctx) - shader_wrapper.read_in([self.get_shader_data()]) - return [shader_wrapper] + family = self.family_members_with_points() + batches = batch_by_property(family, lambda sm: sm.get_shader_wrapper(ctx).get_id()) + + result = [] + for submobs, sid in batches: + shader_wrapper = submobs[0].shader_wrapper + data_list = [sm.get_shader_data() for sm in submobs] + shader_wrapper.read_in(data_list) + result.append(shader_wrapper) + return result def get_shader_data(self) -> np.ndarray: indices = self.get_shader_vert_indices() diff --git a/manimlib/scene/scene.py b/manimlib/scene/scene.py index 65ab4949..b92eef0f 100644 --- a/manimlib/scene/scene.py +++ b/manimlib/scene/scene.py @@ -373,7 +373,7 @@ class Scene(object): Groups of all clusters of adjacent Mobjects in the scene """ batches = batch_by_property( - sorted(self.mobjects, key=lambda m: m.z_index), + self.mobjects, lambda m: str(type(m)) + str(m.get_shader_wrapper(self.camera.ctx).get_id()) + str(m.z_index) )