Zpět na projekty
TUIX v0.3Beta

Naposledy aktualizováno: 2026-05-20

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á hodnotaPopis
int0 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:

  1. Načte rozměry terminálu (detekce změny velikosti)
  2. Potvrdí čekající dávkové příkazy
  3. Zacachuje ukazatel na aktivní scénu (vyhne se porovnávání řetězců v každém snímku)
  4. Spustí interní řídicí handlery pro všechny zapnuté widgety (včetně automatického zpracování vstupu ve v0.3)
  5. Spočítá geometrii pro každý buffer widgetu
  6. Zavolá on_resize, pokud se změnily rozměry terminálu
  7. Zavolá build_content pro každý widget, který potřebuje překreslit
  8. Složí buffery scén do finálního framebufferu
  9. 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á hodnotaPopis
int0 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()