Source code for picogl.backend.render.pass_

"""Render pass primitive."""

from __future__ import annotations

from dataclasses import dataclass, field
from typing import TYPE_CHECKING, Callable

from picogl.backend.state import RenderState

if TYPE_CHECKING:
    from picogl.backend.gl.backend import GLBackend
    from picogl.backend.render.resources import Texture


@dataclass
[docs] class RenderPass: """Declarative render pass with attached state and optional resource deps."""
[docs] name: str
[docs] state: RenderState
[docs] execute_fn: Callable[[], None]
[docs] reads: list["Texture"] = field(default_factory=list)
[docs] writes: list["Texture"] = field(default_factory=list)
[docs] def execute(self, backend: "GLBackend") -> None: backend.apply_state(self.state) self.execute_fn()