TUIX v0.2.0Beta
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í subcycle handlery pro všechny zapnuté widgety
- 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. Funkce drží zámek registry během generování bufferů a kompozice, poté jej uvolní před streamováním výstupu do terminálu.
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()