TUIX v0.3Beta
API enginu
Modul engine (tuix.core.engine) poskytuje tři funkce, které řídí životní cyklus TUIX runtime.
engine.init()
from tuix.core import engine
result = engine.init()Inicializuje C jádro a globální registry. Jde o dvoufázové volání: tuix_init() a poté tuix_init_registry(). Musí být zavoláno před jakoukoli další operací TUIX.
| Návratová hodnota | Popis |
|---|---|
| int | 0 při úspěchu |
engine.main_loop()
engine.main_loop()Provede jeden snímek renderovacího pipeline. Volá se v cyklu pro běh UI. Každé volání provede v C jádře tyto kroky:
- Načte rozměry terminálu (detekce změny velikosti)
- Potvrdí čekající dávkové příkazy
- Zacachuje ukazatel na aktivní scénu (vyhne se porovnávání řetězců v každém snímku)
- Spustí interní řídicí handlery pro všechny zapnuté widgety (včetně automatického zpracování vstupu ve v0.3)
- Spočítá geometrii pro každý buffer widgetu
- Zavolá on_resize, pokud se změnily rozměry terminálu
- Zavolá build_content pro každý widget, který potřebuje překreslit
- Složí buffery scén do finálního framebufferu
- Streamuje změněné řádky do terminálu
Výkonmain_loop() preferuje cestu přes Cython pro maximální rychlost. Ve v0.3 byl zmenšen rozsah locku okolo builder callbacků v cestě generování bufferů, aby se snížila kontence při zachování lock-safe snapshot operací.
engine.shutdown()
engine.shutdown()Ukončí engine a zničí globální registry. Uvolní všechny scény, buffery, subcykly a sestavovače. Zničí multiplatformní zámek. Tuto funkci volejte jako poslední operaci TUIX.
| Návratová hodnota | Popis |
|---|---|
| int | 0 při úspěchu |
Typické použití
from tuix.core import engine, builders
# Startup
engine.init()
builders.register_standard()
# ... create scenes, widgets, start input ...
# Render loop
while running:
engine.main_loop()
# Shutdown
engine.shutdown()