# {py:mod}`simvx.graphics.renderer.render_thread` ```{py:module} simvx.graphics.renderer.render_thread ``` ```{autodoc2-docstring} simvx.graphics.renderer.render_thread :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`RenderThread ` - ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.RenderThread :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`log ` - ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.log :summary: ``` * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.__all__ :summary: ``` ```` ### API ````{py:data} log :canonical: simvx.graphics.renderer.render_thread.log :value: > 'getLogger(...)' ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.log ``` ```` ````{py:data} __all__ :canonical: simvx.graphics.renderer.render_thread.__all__ :value: > ['RenderThread'] ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.__all__ ``` ```` `````{py:class} RenderThread(engine: simvx.graphics.engine.Engine, renderer: simvx.graphics.renderer.forward.Renderer, ring: simvx.graphics.renderer.render_packet.RenderPacketRing, *, draw_frame: collections.abc.Callable[[], None] | None = None, capture: collections.abc.Callable[[int, typing.Any], None] | None = None) :canonical: simvx.graphics.renderer.render_thread.RenderThread ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.RenderThread ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.RenderThread.__init__ ``` ````{py:method} start() -> None :canonical: simvx.graphics.renderer.render_thread.RenderThread.start ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.RenderThread.start ``` ```` ````{py:method} wait_for_frame(frame_index: int, timeout: float | None = None) -> bool :canonical: simvx.graphics.renderer.render_thread.RenderThread.wait_for_frame ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.RenderThread.wait_for_frame ``` ```` ````{py:method} stop(timeout: float | None = 5.0) -> None :canonical: simvx.graphics.renderer.render_thread.RenderThread.stop ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.RenderThread.stop ``` ```` ````{py:property} alive :canonical: simvx.graphics.renderer.render_thread.RenderThread.alive :type: bool ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.RenderThread.alive ``` ```` ````{py:property} frames_done :canonical: simvx.graphics.renderer.render_thread.RenderThread.frames_done :type: int ```{autodoc2-docstring} simvx.graphics.renderer.render_thread.RenderThread.frames_done ``` ```` `````