def get_render_group_list(self, mobject: Mobject) -> Iterable[dict[str]]: if mobject.is_changing(): return self.generate_render_group_list(mobject) # Otherwise, cache result for later use key = id(mobject) if key not in self.mob_to_render_groups: self.mob_to_render_groups[key] = list(self.generate_render_group_list(mobject)) return self.mob_to_render_groups[key]
def generate_render_group_list(self, mobject: Mobject) -> Iterable[dict[str]]: return (self.get_render_group(sw, single_use=mobject.is_changing()) for sw in mobject.get_shader_wrapper_list())