TUIX v0.6Beta
API bufferů
Balíček tuix.core.buffer je bezpečný veřejný povrch pro lifecycle bufferů, hierarchii, z-index, layout override, grid placement, dirty značkování, screen metriky a snapshoty.
| Metoda | Jak ji použít | Proč existuje |
|---|---|---|
| buffer.tuix_buffer_free(scene_name: bytes, uid: int) -> None | Dealokuje úložiště bufferu pro dané UID objektu. | Uvolní paměť pixelů. |
| buffer.tuix_buffer_set_parent(scene_name: bytes, uid: int, parent_uid: int) -> int | Připojí buffer UID do hierarchie potomků parent_uid. | Vytváří vnořené stromy kontejnerů a layoutu. |
| buffer.tuix_buffer_get_parent(scene_name: bytes, uid: int) -> int | Vrátí UID nadřazeného bufferu, nebo 0 pro kořen. | Průchod stromem a inspekce hierarchie. |
| buffer.tuix_buffer_get_z_index(scene_name: bytes, uid: int) -> int | Vrátí z-index vrstvení. | Určuje pořadí vykreslování vrstev při kompozici. |
| buffer.tuix_buffer_set_z_index(scene_name: bytes, uid: int, z_index: int) -> int | Nastaví celočíselnou vrstvu z-indexu. | Řídí prioritu překryvu a hloubky. |
| buffer.tuix_buffer_set_layout_slot_by_uid(uid: int, grow=0.0, shrink=1.0, basis=-1, min_w=0, min_h=0, max_w=-1, max_h=-1, align_self=-1, grid_row=0, grid_col=0, row_span=1, col_span=1) -> int | Nakonfiguruje flex/stack layout omezení pro potomkovský buffer v kontejneru. | Řídí flexibilní změnu velikosti, zarovnání a umístění ve stopách. |
| buffer.tuix_buffer_get_layout_slot_by_uid(uid: int) -> dict | Přečte slovník parametrů nakonfigurovaného layout slotu. | Zjišťuje layout omezení. |
| buffer.tuix_buffer_set_layout_rect_by_uid(uid: int, offset_left: int, offset_top: int, width: int, height: int) -> int | Nastaví explicitní obdélník layoutu v buňkách terminálu. | Přepíše proporcionální výpočty přesnou buňkovou geometrií. |
| buffer.tuix_buffer_clear_layout_rect_by_uid(uid: int) -> int | Vymaže explicitní obdélník layoutu a vrátí buffer k proporcionálním modifikátorům. | Obnoví výchozí chování layoutu. |
| buffer.tuix_buffer_set_grid_placement_by_uid(uid: int, row: int, col: int, row_span: int = 1, col_span: int = 1) -> int | Umístí potomkovský buffer v rámci rodičovského Gridu. | Nastaví indexy buněk mřížky a rozpětí řádků/sloupců. |
| buffer.tuix_buffer_get_screen_rect_by_uid(uid: int) -> tuple[int, int, int, int] | Vrátí vyřešený obdélník obrazovky `(x, y, w, h)` v buňkách terminálu. | Získá přesné vykreslené souřadnice na obrazovce. |
| buffer.tuix_buffer_get_screen_metrics_by_uid(uid: int) -> dict | Vrátí komplexní slovník metrik obrazovky (screen_x, screen_y, width, height, visible, z_index, parent_uid). | Diagnostika a inspekce ohraničujících obdélníků. |
| buffer.tuix_buffer_mark_redraw_by_uid(uid: int) -> None | Zvýší generaci překreslení bufferu a označí jej jako dirty pro další renderovací průchod. | Upozorní kompozitor na změny obsahu. |
| buffer.tuix_buffer_mark_children_geometry_dirty_by_uid(uid: int) -> None | Označí všechny potomkovské buffery jako dirty pro přepočet geometrie. | Vyvolá rekurzivní přepočet layoutu při změně velikosti kontejneru. |
| buffer.tuix_buffer_get_snapshot_by_uid(uid: int) -> dict | Vrátí vláknově bezpečný slovníkový snapshot stavu bufferu a metadat pixelů. | Read-only diagnostika a testování. |
Klíče snapshotu
Snapshoty bufferů mohou obsahovat uid, pixels_owned, width, height, required_redraw, margin_left, margin_top, parent_uid, z_index, flat_index, children_count, children_capacity, layout_slot a layout_rect.
Příklad layoutu
row_uid = objects.create_object(content_builder.ROW, b'Main', 0.9, 0.2, 0.05, 0.05)
row = objects.get_object_by_uid(row_uid)
child_uid = objects.tuix_stack_add_object(row, b'Main', content_builder.TEXT, 1.0, 1.0)
buffer.set_buffer_layout_slot_by_uid(child_uid, grow=1.0, min_w=12)
snap = buffer.get_buffer_snapshot_by_uid(child_uid)