mirror of
https://github.com/ManimCommunity/manim.git
synced 2026-06-22 10:01:47 +00:00
Add a release method to OpenGLRenderer
This commit is contained in:
parent
4e6af02ceb
commit
97fedbca13
4 changed files with 12 additions and 4 deletions
|
|
@ -158,6 +158,7 @@ class Manager(Generic[Scene_co]):
|
|||
config._warn_about_config_options()
|
||||
self._render_first_pass()
|
||||
self._render_second_pass()
|
||||
self.release()
|
||||
|
||||
def _render_first_pass(self) -> None:
|
||||
"""
|
||||
|
|
@ -192,6 +193,9 @@ class Manager(Generic[Scene_co]):
|
|||
"""
|
||||
...
|
||||
|
||||
def release(self) -> None:
|
||||
self.renderer.release()
|
||||
|
||||
def post_contruct(self) -> None:
|
||||
"""Run post-construct hooks, and clean up the file writer."""
|
||||
if self.file_writer.num_plays:
|
||||
|
|
|
|||
|
|
@ -524,6 +524,10 @@ class OpenGLRenderer(Renderer, RendererProtocol):
|
|||
# numpy typing being bad, we have to type: ignore it
|
||||
return buf[::-1] # type: ignore
|
||||
|
||||
def release(self) -> None:
|
||||
self.ctx.release()
|
||||
self.output_fbo.release()
|
||||
|
||||
|
||||
class GLVMobjectManager:
|
||||
@staticmethod
|
||||
|
|
|
|||
|
|
@ -78,6 +78,10 @@ class RendererProtocol(Protocol):
|
|||
"""Get the pixels that should be written to a file."""
|
||||
...
|
||||
|
||||
def release(self) -> None:
|
||||
"""Release any resources the renderer is holding."""
|
||||
...
|
||||
|
||||
|
||||
# NOTE: The user should expect depth between renderers not to be handled discussed at 03.09.2023 Between jsonv and MrDiver
|
||||
# NOTE: Cairo_camera overlay_PIL_image for MultiRenderer
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import pytest
|
|||
from manim import Manager, Scene
|
||||
from manim._config import tempconfig
|
||||
from manim._config.utils import ManimConfig
|
||||
from manim.renderer.opengl_renderer import OpenGLRenderer
|
||||
|
||||
from ._frames_testers import _ControlDataWriter, _FramesTester
|
||||
from ._test_class_makers import (
|
||||
|
|
@ -213,9 +212,6 @@ def _make_test_comparing_frames(
|
|||
manager.render()
|
||||
if last_frame:
|
||||
frames_tester.check_frame(-1, manager.renderer.get_pixels())
|
||||
if isinstance(manager.renderer, OpenGLRenderer):
|
||||
manager.renderer.ctx.release()
|
||||
manager.renderer.output_fbo.release()
|
||||
|
||||
return real_test
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue