Zpět na projekty
TUIX v0.6Beta

Naposledy aktualizováno: 2026-08-14

Reference interních a pokročilých API

TUIX Core vystavuje specializované subbalíčky určené pro pokročilé uživatele, vlastní UI frameworky, vysokofrekvenční renderovací smyčky a nízkoúrovňové C bridge integrace. Tato stránka dokumentuje nízkoúrovňové podsystémy napříč `command_buffer`, `compositor`, `event`, `renderer`, `sub_cycles`, `viewport` a `_lib`.

Podsystém Command Buffer (tuix.core.command_buffer)

Podsystém command bufferu umožňuje dávkové provádění opkódů a transakční commity na hranici snímků přímo přes C-Python rozhraní.

FunkceSignaturaPopis
tuix_command_buffer_executecommand_buffer.tuix_command_buffer_execute(data: bytes = b'') -> intVykoná serializovaný proud binárních opkódů v nativním jádře.
tuix_batch_clear_pendingcommand_buffer.tuix_batch_clear_pending() -> NoneVymaže všechny čekající dávkové operace bez jejich aplikace.
tuix_batch_global_commitcommand_buffer.tuix_batch_global_commit() -> intAtomicky potvrdí (commitne) všechny dávkové mutace objektů napříč všemi scénami.

Podsystém kompozitoru (tuix.core.compositor)

FunkcePopis
compositor.tuix_compositor_compose_scene(scene) -> intSpustí kompletní průchod hierarchií bufferů a vykreslí viditelné pixelové vrstvy do finálního výstupního bufferu.
compositor.tuix_compositor_mark_hit_map_dirty() -> NoneInvaliduje prostorovou hit-test mapu, což vynutí její přegenerování při další události myši.
compositor.tuix_compositor_get_last_traversal_cache_hit() -> intVrátí 1, pokud poslední snímek znovu použil nacachovaný průchod scénou, 0 při cache miss.
compositor.tuix_compositor_resolve_geometry(buf_addr) -> intPřepočítá proporcionální a vnořenou geometrii layout slotů na absolutní terminálové souřadnice.

Podsystém rendereru (tuix.core.renderer)

FunkcePopis
renderer.tuix_renderer_stream() -> NoneStreamuje aktuální dirty delta bajty terminálu přímo do standardního výstupu.
renderer.tuix_render_streaming(buf) -> NoneVygeneruje proud ANSI sekvencí z raw nativního buffer handlu.
renderer.tuix_renderer_create_native_buffer(py_buf) -> intAlokuje souvislou nativní strukturu bufferu z dat Python bufferu.
renderer.tuix_renderer_free_native_buffer(handle: int) -> NoneUvolní paměť nativního bufferu alokovanou přes tuix_renderer_create_native_buffer.
renderer.tuix_renderer_apply_patch_and_render(handle: int, patch: bytes) -> bytesAplikuje kompaktní binární patch na nativní buffer a vyrenderuje diferenciální ANSI výstup.
renderer.tuix_renderer_mark_rows_dirty(start_row: int, count: int) -> NoneExplicitně označí svislý rozsah řádků jako dirty pro další renderovací průchod.
renderer.tuix_renderer_invalidate_all() -> NoneInvaliduje celý obrazovkový buffer, což vynutí plné překreslení v dalším snímku.
renderer.tuix_renderer_get_last_stats() -> dictVrací statistiky časování renderování (diff_ms, ansi_encode_ms, write_ms, bytes_emitted).
renderer.tuix_renderer_get_last_frame_bytes() -> intVrací počet ANSI bajtů odeslaných v posledním snímku.

Sub-cycles a event bridge

Modul a funkcePopis
sub_cycles.tuix_sub_cycle_init(scene_name, obj_ptr) -> intInicializuje vysokofrekvenční sub-cycle smyčku pro daný widget.
sub_cycles.tuix_sub_cycle_free(scene_name, uid) -> NoneUvolní a odregistruje sub-cycle prostředky pro zadané UID widgetu.
event.tuix_event_clear_pending() -> NoneVymaže čekající zafrontované nativní události.
event.tuix_event_commit_python() -> intOdešle zafrontované nativní události do registrovaných Python listenerů.
viewport.tuix_object_is_viewport(obj_ptr) -> intVrátí 1, pokud widget funguje jako vlastník viewportu (má virtuální velikost obsahu a scroll offset).
viewport.tuix_object_get_viewport_offset(obj_ptr) -> tuple[int, int]Vrátí virtuální souřadnice (offset_x, offset_y) pro viewport kontejner.
viewport.tuix_object_get_viewport_content_size(obj_ptr) -> tuple[int, int]Vrátí virtuální (content_width, content_height) v buňkách terminálu.

Nízkoúrovňový binární patch protokol

Pro vzdálený streaming s ultra nízkou latencí nebo vlastní renderer bridge jsou patche baleny do 20bajtových binárních struktur: - `index`: 4bajtový uint32 (lineární index buňky v bufferu) - `sym`: 8bajtový uint64 (identifikátor internovaného UTF-8 symbolu) - `fgr, fgg, fgb`: 1 bajt každý (RGB barva popředí) - `bgr, bgg, bgb`: 1 bajt každý (RGB barva pozadí) - `flags`: 2 bajty (bitové příznaky pro tučné, tlumené, kurzívu, podtržené, široké znaky)