# {py:mod}`simvx.graphics.app` ```{py:module} simvx.graphics.app ``` ```{autodoc2-docstring} simvx.graphics.app :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`App ` - ```{autodoc2-docstring} simvx.graphics.app.App :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.graphics.app.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.graphics.app.__all__ :value: > ['App'] ```{autodoc2-docstring} simvx.graphics.app.__all__ ``` ```` `````{py:class} App(title: str = 'SimVX Vulkan', width: int = 1280, height: int = 720, backend: str = 'glfw', physics_fps: int = 60, visible: bool = True, vsync: bool = True, **_kwargs) :canonical: simvx.graphics.app.App ```{autodoc2-docstring} simvx.graphics.app.App ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.graphics.app.App.__init__ ``` ````{py:property} engine :canonical: simvx.graphics.app.App.engine :type: simvx.graphics.engine.Engine | None ```{autodoc2-docstring} simvx.graphics.app.App.engine ``` ```` ````{py:method} run(root_or_update: typing.Any = None, *, update: collections.abc.Callable[[], None] | None = None, render: collections.abc.Callable[[object, tuple[int, int]], None] | None = None) -> None :canonical: simvx.graphics.app.App.run ```{autodoc2-docstring} simvx.graphics.app.App.run ``` ```` ````{py:method} run_headless(root_node: typing.Any, *, frames: int = 1, on_frame: collections.abc.Callable[[int, float], bool | None] | None = None, capture_frames: list[int] | None = None, capture_fn: collections.abc.Callable[[int], bool] | None = None) -> list :canonical: simvx.graphics.app.App.run_headless ```{autodoc2-docstring} simvx.graphics.app.App.run_headless ``` ```` `````