zooui.objects.scene.sceneutils.parallel module

SceneParallelRenderer class for parallel rendering operations.

This class encapsulates all parallel rendering functionality that was previously part of the Scene class, providing better separation of concerns.

class zooui.objects.scene.sceneutils.parallel.SceneParallelRenderer(scene, config=None)[source]

Bases: object

Manages parallel rendering operations for a Scene.

This class encapsulates all parallel rendering functionality that was previously part of the Scene class, providing better separation of concerns.

_scene

Reference to parent Scene

_config

Parallel rendering configuration

_enabled

Whether parallel rendering is enabled

_layout_calculator

Parallel layout calculator instance

_priority_batcher

Priority batcher for text objects

_last_viewport_center

Last known viewport center

_last_viewport_rect

Last known viewport rectangle

_stats

Parallel rendering statistics

_logger

Logger instance

Initialize the SceneParallelRenderer.

Parameters:
  • scene – Reference to parent Scene

  • config – Configuration dictionary (may contain ‘parallel_rendering’ key)

is_enabled()[source]

Check if parallel rendering is enabled.

Returns:

True if parallel rendering is enabled, False otherwise

initialize()[source]

Initialize parallel rendering components if not already initialized.

update_viewport()[source]

Update viewport information for parallel rendering components.

_get_text_objects()[source]

Get all StringMediaObjects in the scene.

Returns:

List of StringMediaObject instances

precalculate_text_layouts()[source]

Pre-calculate text layouts for parallel rendering.

This method should be called before rendering when the scene is moving to prepare layout data for parallel rendering.

_on_layout_calculation_complete(index, result)[source]

Callback for when layout calculation completes.

Parameters:
  • index – Object index

  • result – CalculationResult

render_text(painter)[source]

Render text objects using parallel rendering.

Parameters:

painter – QPainter object to render with

Returns:

True if parallel rendering was used, False otherwise

enable(enabled=True)[source]

Enable or disable parallel rendering.

Parameters:

enabled – Whether to enable parallel rendering

shutdown()[source]

Shut down parallel rendering and release resources.

Stops the layout calculator and clears the priority batcher. Safe to call multiple times.

get_stats()[source]

Get parallel rendering statistics.

Returns:

Dictionary with parallel rendering statistics

invalidate_cache()[source]

Invalidate parallel rendering cache.

See Also

  • zooui/objects/scene/scene - Scene management

  • zooui/objects/scene/sceneutils/prioritybatcher - Priority-based object batching

  • zooui/objects/mediaobjects/mediaobjectsutils/string/parallellayout - Parallel text layout calculation