Source code for mini_arcade_core.engine.render.passes.begin_frame
"""
Begin Frame Render Pass
"""
from dataclasses import dataclass
from mini_arcade_core.backend import Backend
from mini_arcade_core.engine.render.context import RenderContext
from mini_arcade_core.engine.render.packet import RenderPacket
[docs]
@dataclass
class BeginFramePass:
"""
Begin Frame Render Pass.
This pass signals the start of a new frame to the backend.
"""
name: str = "BeginFrame"
# Justification: some arguments are unused but required by the protocol
# pylint: disable=unused-argument
[docs]
def run(
self, backend: Backend, ctx: RenderContext, packets: list[RenderPacket]
):
"""Run the begin frame pass."""
if (
not hasattr(backend.render, "begin_frame")
or backend.render is None
):
raise NotImplementedError(
"Backend does not support begin_frame method"
)
backend.render.begin_frame()