Zpět na projekty
TUIX v0.5Beta

Naposledy aktualizováno: 2026-05-20

Scény

Scéna je pojmenovaná kolekce bufferů a objektů. Renderuje se pouze vybraná scéna, ale neaktivní scény mohou zůstat v paměti pro rychlé přepnutí, sběr statistik nebo pozdější kompaktaci.

Životní cyklus scény

from tuix.core import scenes

scenes.init_scene('Main')
scenes.select_scene('Main')

# later
scenes.clear_scene('Main')   # keep the scene, remove buffers
scenes.free_scene('Main')    # remove the scene

Aktivní scéna

Pro explicitní přepínání scén používejte scenes.select_scene(name). Proxy registry také vystavuje registry.registry.current_scene_name kvůli kompatibilitě a nízkoúrovňovému řízení.

Focus a modální stav

Klávesnicový vstup se routuje přes focus scény. Dialogy a další modální flow mohou aktivovat modální UID, takže vstup je omezen na daný podstrom, dokud se modal nedeaktivuje.

scenes.set_focus('Main', widget_uid)
scenes.set_previous_focus('Main')

scenes.activate_modal('Main', dialog_uid)
active = scenes.get_active_modal('Main')
scenes.deactivate_modal('Main', dialog_uid)

Transakce

v0.5 vystavuje transakce scén pro seskupení více aktualizací widgetů. Používejte je okolo dávek změn, které se mají potvrdit společně před dalším viditelným snímkem.

scenes.begin_transaction('Main')
# update several widgets
scenes.commit_transaction('Main')

Statistiky a kompaktace

Scény sledují aktivitu a paměťové statistiky jako buffer_count, current_focus, last_active_frame, pixel_bytes a approx_heap_bytes. Kompaktace studených scén může uvolnit pixelové úložiště neaktivních scén a zachovat strukturu scény.

stats = scenes.get_scene_stats('Main')
freed = scenes.compact_scene_pixels('Main')
compacted_count = scenes.compact_cold_scenes(
    cold_frames=300,
    min_pixel_bytes=1_000_000,
    keep_active_scene=True,
)

Hierarchie

Buffery mohou tvořit parent/child stromy. Layout buildry ve v0.5 na této hierarchii stojí, aby parent kontejnery mohly přepočítat geometrii dětí před kompozicí. Self-parenting a cykly odmítá bufferová vrstva.