Zpět na projekty
TUIX v0.6Beta

Naposledy aktualizováno: 2026-08-14

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 scene

scene.init_scene(b'Main')
scene.select_scene(b'Main')

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

Aktivní scéna

Pro explicitní přepínání scén používejte scene.select_scene(name). Proxy registry také vystavuje core.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.

scene.set_focus(b'Main', widget_uid)
scene.set_previous_focus(b'Main')

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

Transakce

TUIX Core 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.

scene.begin_transaction(b'Main')
# update several widgets
scene.commit_transaction(b'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 = scene.get_scene_stats(b'Main')
freed = scene.compact_scene_pixels(b'Main')
compacted_count = scene.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 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.