TUIX v0.6Beta
API scén
Balíček tuix.core.scene vlastní lifecycle scén, výběr, focus, modální stav, transakce, statistiky a kompaktaci studených scén.
| Metoda | Jak ji použít | Proč existuje |
|---|---|---|
| scene.tuix_scene_init(name: bytes) -> int | Alokuje novou pojmenovanou scénu v nativním registru. | Musí být zavoláno před přidáním bufferů nebo objektů. Vrací TUIX_RC_OK (0). |
| scene.tuix_scene_free(name: bytes) -> None | Zničí scénu a dealokuje všechny její buffery a objekty. | Uvolní nativní paměť, když už scéna není potřeba. |
| scene.tuix_scene_clear(name: bytes) -> None | Vymaže všechny buffery ze scény při zachování aktivní alokace scény. | Použijte pro dynamický reset scény bez nutnosti znovu vytvářet metadata. |
| scene.tuix_scene_get(name: bytes) -> int | Vrátí nativní ukazatel na strukturu scény. | Interní překlad ukazatele pro operace nativního přemostění. |
| scene.tuix_scene_get_all() -> list[bytes] | Vrátí seznam všech aktivních názvů scén v registru. | Umožňuje introspekci a správu více scén. |
| scene.tuix_scene_select(name: bytes) -> None | Vybere aktivní scénu pro renderování a směrování vstupu. | Přepne zobrazenou UI obrazovku. |
| scene.tuix_scene_focus_set(scene_name: bytes, uid: int) -> int | Nastaví aktivní klávesový focus na zadané UID objektu. | Směruje stisky kláves do fokusovaného interaktivního widgetu. |
| scene.tuix_scene_focus_previous(scene_name: bytes) -> int | Obnoví předchozí fokusované UID widgetu. | Užitečné pro návrat fokusu po zavření dialogu. |
| scene.tuix_scene_modal_activate(scene_name: bytes, uid: int) -> int | Aktivuje modální zachycení vstupu pro zadané UID dialogu. | Zabraňuje proniknutí vstupu do podkladových widgetů. |
| scene.tuix_scene_modal_deactivate(scene_name: bytes, uid: int) -> int | Deaktivuje modální stav a obnoví běžné směrování vstupu scény. | Ukončí modální zachycení při zavření dialogu. |
| scene.tuix_scene_modal_get_active(scene_name: bytes) -> int | Vrátí UID aktuálně aktivního modálního widgetu ve scéně, nebo 0. | Zjišťuje stav aktivního modálního překryvu. |
| scene.tuix_scene_transaction_begin(scene_name: bytes) -> None | Zahájí atomickou transakci na bufferech scény. | Sdružuje více mutací widgetů před vykreslením. |
| scene.tuix_scene_transaction_commit(scene_name: bytes) -> None | Potvrdí otevřenou transakci a vyvolá přepočet kompozitoru. | Aplikuje všechny bufferované mutace scény atomicky. |
| scene.tuix_scene_force_redraw(scene_name: bytes) -> None | Vynutí bezpodmínečné plné překreslení scény v dalším snímku. | Invaliduje nacachovaný stav kompozice a obrazovky. |
| scene.tuix_scene_get_stats(scene_name: bytes) -> dict | Vrací slovník statistik scény (buffer_count, focus_uid, modal_uid, pixel_bytes). | Umožňuje profilování paměti a diagnostiku UI. |
| scene.tuix_scene_compact_pixels(scene_name: bytes) -> int | Uvolní nevyužité alokace pixelových bufferů ve scéně. | Vrací celkový počet uvolněných bajtů paměti. |
| scene.tuix_scene_compact_cold(cold_frames: int, min_pixel_bytes: int = 0, keep_active_scene: bool = True) -> int | Zkompaktuje pixelové úložiště pro scény, které nebyly aktivní po dobu cold_frames. | Automatická údržba paměti na pozadí pro víceobrazovkové aplikace. |
Klíče statistik
get_scene_stats() při podpoře vrací dict. Očekávané klíče zahrnují buffer_count, active, current_focus, last_active_frame, last_compacted_frame, pixel_bytes a approx_heap_bytes.
Příklad modalu
dialog_uid = objects.create_object(content_builder.DIALOG, b'Main', 0.7, 0.5, 0.2, 0.15)
dialog = objects.get_object_by_uid(dialog_uid)
objects.tuix_dialog_activate(dialog, b'Main')
while running:
core.main_loop()
if objects.tuix_dialog_take_close_requested(dialog):
objects.tuix_dialog_deactivate(dialog, b'Main')
break