simvx.graphics.renderer.pass_orchestrator

PassOrchestrator — owns the forward renderer’s pass lifecycle.

Extracted from Renderer so the 13 render-pass subsystems (shadow, point-shadow, particle, GPU-particle-compute, tilemap, light2d, text, draw2d, post-process, custom post-process, grid, gizmo, SSAO, fog, skybox) live in one place with unified setup / resize / cleanup.

Renderer still owns frame-level orchestration (pre_render, render) and calls into the orchestrator’s render_overlays for the 2D overlay pass after tonemap.

Module Contents

Classes

PassOrchestrator

Owns the lifecycle of every render pass used by the forward renderer.

Data

API

simvx.graphics.renderer.pass_orchestrator.__all__

[‘PassOrchestrator’]

simvx.graphics.renderer.pass_orchestrator.log

‘getLogger(…)’

class simvx.graphics.renderer.pass_orchestrator.PassOrchestrator(engine: Any)[source]

Owns the lifecycle of every render pass used by the forward renderer.

Initialization

setup(ssbo_layout: Any, pipelines: simvx.graphics.renderer.pipeline_manager.PipelineManager) None[source]

Create and initialise every pass.

Order is load-bearing:

  1. Grid, shadow, point-shadow, particles, tilemap, light2d come first and are independent.

  2. TextPass → Draw2DPass (Draw2D shares TextPass’s atlas/pipeline).

  3. PostProcess / CustomPostProcess.

  4. Once post-process has built the HDR target, pipelines is rebuilt against the HDR render pass so 3D draws inside that pass match the HDR format.

  5. Gizmo, SSAO, Fog — SSAO/Fog need the HDR depth views.

set_skybox(cubemap_view: Any, cubemap_sampler: Any, buffers: simvx.graphics.renderer.buffer_manager.BufferManager, cubemap_image: Any = None, cubemap_memory: Any = None) None[source]

Set a cubemap as the skybox and enable IBL.

Takes ownership of cubemap_image / cubemap_memory when provided so they can be destroyed at shutdown.

resize(width: int, height: int) None[source]

Resize passes that track the framebuffer size. Returns the render pass that 3D pipelines should be compiled against after resize.

pipeline_render_pass() Any[source]

Return the render pass that 3D pipelines should be compiled against.

begin_frame() None[source]

Reset per-frame state on passes that buffer submissions.

cleanup() None[source]

Destroy every pass and the skybox cubemap ownership.