# {py:mod}`simvx.graphics.renderer.render_packet` ```{py:module} simvx.graphics.renderer.render_packet ``` ```{autodoc2-docstring} simvx.graphics.renderer.render_packet :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ViewportSnapshot ` - ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.ViewportSnapshot :summary: ``` * - {py:obj}`SubViewportSRU ` - ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU :summary: ``` * - {py:obj}`RenderPacket ` - ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket :summary: ``` * - {py:obj}`RenderPacketRing ` - ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacketRing :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`extract_render_packet ` - ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.extract_render_packet :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.graphics.renderer.render_packet.__all__ :value: > ['RenderPacket', 'RenderPacketRing', 'SubViewportSRU', 'ViewportSnapshot', 'extract_render_packet'] ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.__all__ ``` ```` `````{py:class} ViewportSnapshot :canonical: simvx.graphics.renderer.render_packet.ViewportSnapshot ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.ViewportSnapshot ``` ````{py:attribute} vp_id :canonical: simvx.graphics.renderer.render_packet.ViewportSnapshot.vp_id :type: int :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.ViewportSnapshot.vp_id ``` ```` ````{py:attribute} x :canonical: simvx.graphics.renderer.render_packet.ViewportSnapshot.x :type: int :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.ViewportSnapshot.x ``` ```` ````{py:attribute} y :canonical: simvx.graphics.renderer.render_packet.ViewportSnapshot.y :type: int :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.ViewportSnapshot.y ``` ```` ````{py:attribute} width :canonical: simvx.graphics.renderer.render_packet.ViewportSnapshot.width :type: int :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.ViewportSnapshot.width ``` ```` ````{py:attribute} height :canonical: simvx.graphics.renderer.render_packet.ViewportSnapshot.height :type: int :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.ViewportSnapshot.height ``` ```` ````{py:attribute} camera_view :canonical: simvx.graphics.renderer.render_packet.ViewportSnapshot.camera_view :type: numpy.ndarray :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.ViewportSnapshot.camera_view ``` ```` ````{py:attribute} camera_proj :canonical: simvx.graphics.renderer.render_packet.ViewportSnapshot.camera_proj :type: numpy.ndarray :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.ViewportSnapshot.camera_proj ``` ```` ````{py:attribute} render_target :canonical: simvx.graphics.renderer.render_packet.ViewportSnapshot.render_target :type: typing.Any | None :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.ViewportSnapshot.render_target ``` ```` ````` `````{py:class} SubViewportSRU :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU ``` ````{py:attribute} sru_id :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.sru_id :type: int :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.sru_id ``` ```` ````{py:attribute} renderer :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.renderer :type: typing.Any :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.renderer ``` ```` ````{py:attribute} width :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.width :type: int :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.width ``` ```` ````{py:attribute} height :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.height :type: int :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.height ``` ```` ````{py:attribute} clear_colour :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.clear_colour :type: tuple[float, float, float, float] :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.clear_colour ``` ```` ````{py:attribute} camera_view :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.camera_view :type: numpy.ndarray | None :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.camera_view ``` ```` ````{py:attribute} camera_proj :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.camera_proj :type: numpy.ndarray | None :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.camera_proj ``` ```` ````{py:attribute} screen_size :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.screen_size :type: tuple[float, float] :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.screen_size ``` ```` ````{py:attribute} instances :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.instances :type: list[tuple[simvx.graphics.types.MeshHandle, numpy.ndarray, int, int]] :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.instances ``` ```` ````{py:attribute} skinned_instances :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.skinned_instances :type: list[tuple[simvx.graphics.types.MeshHandle, numpy.ndarray, int, numpy.ndarray]] :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.skinned_instances ``` ```` ````{py:attribute} draw2d_ops :canonical: simvx.graphics.renderer.render_packet.SubViewportSRU.draw2d_ops :type: list[typing.Any] :value: > 'field(...)' ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.SubViewportSRU.draw2d_ops ``` ```` ````` `````{py:class} RenderPacket :canonical: simvx.graphics.renderer.render_packet.RenderPacket ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket ``` ````{py:attribute} frame_index :canonical: simvx.graphics.renderer.render_packet.RenderPacket.frame_index :type: int :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.frame_index ``` ```` ````{py:attribute} structure_version :canonical: simvx.graphics.renderer.render_packet.RenderPacket.structure_version :type: int :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.structure_version ``` ```` ````{py:attribute} instances :canonical: simvx.graphics.renderer.render_packet.RenderPacket.instances :type: list[tuple[simvx.graphics.types.MeshHandle, numpy.ndarray, int, int]] :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.instances ``` ```` ````{py:attribute} skinned_instances :canonical: simvx.graphics.renderer.render_packet.RenderPacket.skinned_instances :type: list[tuple[simvx.graphics.types.MeshHandle, numpy.ndarray, int, numpy.ndarray]] :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.skinned_instances ``` ```` ````{py:attribute} shader_material_submissions :canonical: simvx.graphics.renderer.render_packet.RenderPacket.shader_material_submissions :type: list[tuple[simvx.graphics.types.MeshHandle, numpy.ndarray, int, typing.Any]] :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.shader_material_submissions ``` ```` ````{py:attribute} particle_submissions :canonical: simvx.graphics.renderer.render_packet.RenderPacket.particle_submissions :type: list[tuple[numpy.ndarray, int]] :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.particle_submissions ``` ```` ````{py:attribute} gpu_particle_submissions :canonical: simvx.graphics.renderer.render_packet.RenderPacket.gpu_particle_submissions :type: list[tuple[int, dict]] :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.gpu_particle_submissions ``` ```` ````{py:attribute} materials :canonical: simvx.graphics.renderer.render_packet.RenderPacket.materials :type: numpy.ndarray :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.materials ``` ```` ````{py:attribute} lights :canonical: simvx.graphics.renderer.render_packet.RenderPacket.lights :type: numpy.ndarray :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.lights ``` ```` ````{py:attribute} viewports :canonical: simvx.graphics.renderer.render_packet.RenderPacket.viewports :type: list[simvx.graphics.renderer.render_packet.ViewportSnapshot] :value: > 'field(...)' ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.viewports ``` ```` ````{py:attribute} draw2d_ops :canonical: simvx.graphics.renderer.render_packet.RenderPacket.draw2d_ops :type: list[typing.Any] :value: > 'field(...)' ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.draw2d_ops ``` ```` ````{py:attribute} tilemap_layers :canonical: simvx.graphics.renderer.render_packet.RenderPacket.tilemap_layers :type: list[tuple[numpy.ndarray, int, tuple[float, float]]] :value: > 'field(...)' ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.tilemap_layers ``` ```` ````{py:attribute} light2d_lights :canonical: simvx.graphics.renderer.render_packet.RenderPacket.light2d_lights :type: list[dict] :value: > 'field(...)' ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.light2d_lights ``` ```` ````{py:attribute} light2d_occluders :canonical: simvx.graphics.renderer.render_packet.RenderPacket.light2d_occluders :type: list[list[tuple[float, float]]] :value: > 'field(...)' ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.light2d_occluders ``` ```` ````{py:attribute} text_vertices :canonical: simvx.graphics.renderer.render_packet.RenderPacket.text_vertices :type: numpy.ndarray | None :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.text_vertices ``` ```` ````{py:attribute} text_indices :canonical: simvx.graphics.renderer.render_packet.RenderPacket.text_indices :type: numpy.ndarray | None :value: > None ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.text_indices ``` ```` ````{py:attribute} subviewport_srus :canonical: simvx.graphics.renderer.render_packet.RenderPacket.subviewport_srus :type: list[simvx.graphics.renderer.render_packet.SubViewportSRU] :value: > 'field(...)' ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacket.subviewport_srus ``` ```` ````` ````{py:function} extract_render_packet(renderer: simvx.graphics.renderer.forward.Renderer, tree: simvx.core.SceneTree, *, frame_index: int = 0, sub_viewports: typing.Any = None) -> simvx.graphics.renderer.render_packet.RenderPacket :canonical: simvx.graphics.renderer.render_packet.extract_render_packet ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.extract_render_packet ``` ```` `````{py:class} RenderPacketRing(capacity: int = 2) :canonical: simvx.graphics.renderer.render_packet.RenderPacketRing ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacketRing ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacketRing.__init__ ``` ````{py:property} capacity :canonical: simvx.graphics.renderer.render_packet.RenderPacketRing.capacity :type: int ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacketRing.capacity ``` ```` ````{py:property} closed :canonical: simvx.graphics.renderer.render_packet.RenderPacketRing.closed :type: bool ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacketRing.closed ``` ```` ````{py:method} submit(packet: simvx.graphics.renderer.render_packet.RenderPacket) -> None :canonical: simvx.graphics.renderer.render_packet.RenderPacketRing.submit ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacketRing.submit ``` ```` ````{py:method} acquire(timeout: float | None = None) -> simvx.graphics.renderer.render_packet.RenderPacket | None :canonical: simvx.graphics.renderer.render_packet.RenderPacketRing.acquire ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacketRing.acquire ``` ```` ````{py:method} release() -> None :canonical: simvx.graphics.renderer.render_packet.RenderPacketRing.release ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacketRing.release ``` ```` ````{py:method} close() -> None :canonical: simvx.graphics.renderer.render_packet.RenderPacketRing.close ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacketRing.close ``` ```` ````{py:method} pending() -> int :canonical: simvx.graphics.renderer.render_packet.RenderPacketRing.pending ```{autodoc2-docstring} simvx.graphics.renderer.render_packet.RenderPacketRing.pending ``` ```` `````