# {py:mod}`simvx.core.backend` ```{py:module} simvx.core.backend ``` ```{autodoc2-docstring} simvx.core.backend :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`RenderBackend ` - ```{autodoc2-docstring} simvx.core.backend.RenderBackend :summary: ``` * - {py:obj}`Renderer2D ` - ```{autodoc2-docstring} simvx.core.backend.Renderer2D :summary: ``` * - {py:obj}`Renderer3D ` - ```{autodoc2-docstring} simvx.core.backend.Renderer3D :summary: ``` ```` ### API `````{py:class} RenderBackend :canonical: simvx.core.backend.RenderBackend Bases: {py:obj}`typing.Protocol` ```{autodoc2-docstring} simvx.core.backend.RenderBackend ``` ````{py:method} init(width: int, height: int, title: str) -> None :canonical: simvx.core.backend.RenderBackend.init ```{autodoc2-docstring} simvx.core.backend.RenderBackend.init ``` ```` ````{py:method} begin_frame() -> None :canonical: simvx.core.backend.RenderBackend.begin_frame ```{autodoc2-docstring} simvx.core.backend.RenderBackend.begin_frame ``` ```` ````{py:method} end_frame() -> None :canonical: simvx.core.backend.RenderBackend.end_frame ```{autodoc2-docstring} simvx.core.backend.RenderBackend.end_frame ``` ```` ````{py:method} render_mesh(mesh: simvx.core.graphics.mesh.BaseMesh, material: simvx.core.graphics.material.BaseMaterial, model_matrix: object) -> None :canonical: simvx.core.backend.RenderBackend.render_mesh ```{autodoc2-docstring} simvx.core.backend.RenderBackend.render_mesh ``` ```` ````{py:method} cleanup() -> None :canonical: simvx.core.backend.RenderBackend.cleanup ```{autodoc2-docstring} simvx.core.backend.RenderBackend.cleanup ``` ```` ````{py:attribute} __slots__ :canonical: simvx.core.backend.RenderBackend.__slots__ :value: > () ```` ````{py:method} __init_subclass__(*args, **kwargs) :canonical: simvx.core.backend.RenderBackend.__init_subclass__ :classmethod: ```` ````` `````{py:class} Renderer2D :canonical: simvx.core.backend.Renderer2D Bases: {py:obj}`typing.Protocol` ```{autodoc2-docstring} simvx.core.backend.Renderer2D ``` ````{py:method} draw_filled_rect(x: float, y: float, width: float, height: float, color: tuple[int, int, int, int]) -> None :canonical: simvx.core.backend.Renderer2D.draw_filled_rect ```{autodoc2-docstring} simvx.core.backend.Renderer2D.draw_filled_rect ``` ```` ````{py:method} draw_line(x1: float, y1: float, x2: float, y2: float, color: tuple[int, int, int, int]) -> None :canonical: simvx.core.backend.Renderer2D.draw_line ```{autodoc2-docstring} simvx.core.backend.Renderer2D.draw_line ``` ```` ````{py:method} draw_text(text: str, x: float, y: float, scale: float, color: tuple[int, int, int, int]) -> None :canonical: simvx.core.backend.Renderer2D.draw_text ```{autodoc2-docstring} simvx.core.backend.Renderer2D.draw_text ``` ```` ````{py:method} text_width(text: str, scale: float) -> float :canonical: simvx.core.backend.Renderer2D.text_width ```{autodoc2-docstring} simvx.core.backend.Renderer2D.text_width ``` ```` ````{py:attribute} __slots__ :canonical: simvx.core.backend.Renderer2D.__slots__ :value: > () ```` ````{py:method} __init_subclass__(*args, **kwargs) :canonical: simvx.core.backend.Renderer2D.__init_subclass__ :classmethod: ```` ````` `````{py:class} Renderer3D :canonical: simvx.core.backend.Renderer3D Bases: {py:obj}`typing.Protocol` ```{autodoc2-docstring} simvx.core.backend.Renderer3D ``` ````{py:method} render(camera_view_matrix: object, camera_projection_matrix: object) -> None :canonical: simvx.core.backend.Renderer3D.render ```{autodoc2-docstring} simvx.core.backend.Renderer3D.render ``` ```` ````{py:attribute} __slots__ :canonical: simvx.core.backend.Renderer3D.__slots__ :value: > () ```` ````{py:method} __init_subclass__(*args, **kwargs) :canonical: simvx.core.backend.Renderer3D.__init_subclass__ :classmethod: ```` `````