Back to Projects
TUIX v0.6Beta

Last Updated: 2026-08-14

Buffers API

The tuix.core.buffer package is the safe public surface for buffer lifecycle, hierarchy, z-index, layout overrides, grid placement, dirty marking, screen metrics, and snapshots.

MethodHow to use itWhy it exists
buffer.tuix_buffer_free(scene_name: bytes, uid: int) -> NoneDeallocates buffer storage for the given object UID.Reclaims pixel memory.
buffer.tuix_buffer_set_parent(scene_name: bytes, uid: int, parent_uid: int) -> intAttaches buffer UID into parent_uid child hierarchy.Builds nested container/layout trees.
buffer.tuix_buffer_get_parent(scene_name: bytes, uid: int) -> intReturns parent buffer UID, or 0 if root.Tree traversal and hierarchy inspection.
buffer.tuix_buffer_get_z_index(scene_name: bytes, uid: int) -> intReturns z-index layering order.Determines paint stacking order during compositing.
buffer.tuix_buffer_set_z_index(scene_name: bytes, uid: int, z_index: int) -> intSets z-index integer layer.Controls overlay and depth priority.
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) -> intConfigures flex/stack layout constraints for a child buffer in a container.Controls flexible resizing, alignment, and track placement.
buffer.tuix_buffer_get_layout_slot_by_uid(uid: int) -> dictReads configured layout slot parameters dictionary.Inspects layout constraints.
buffer.tuix_buffer_set_layout_rect_by_uid(uid: int, offset_left: int, offset_top: int, width: int, height: int) -> intSets absolute layout rectangle override in terminal cells.Bypasses proportional float calculations with exact cell geometry.
buffer.tuix_buffer_clear_layout_rect_by_uid(uid: int) -> intClears explicit layout rect override, returning buffer to proportional modifiers.Restores default layout behavior.
buffer.tuix_buffer_set_grid_placement_by_uid(uid: int, row: int, col: int, row_span: int = 1, col_span: int = 1) -> intPositions child buffer within a Grid parent.Sets grid cell indices and row/col spans.
buffer.tuix_buffer_get_screen_rect_by_uid(uid: int) -> tuple[int, int, int, int]Returns resolved screen rect tuple `(x, y, w, h)` in terminal cells.Retrieves exact rendered screen coordinates.
buffer.tuix_buffer_get_screen_metrics_by_uid(uid: int) -> dictReturns comprehensive screen metrics dict (screen_x, screen_y, width, height, visible, z_index, parent_uid).Diagnostics and bounding box inspection.
buffer.tuix_buffer_mark_redraw_by_uid(uid: int) -> NoneIncrements buffer redraw generation, marking it dirty for next render pass.Notifies compositor of content changes.
buffer.tuix_buffer_mark_children_geometry_dirty_by_uid(uid: int) -> NoneMarks all child buffers dirty for geometry recalculation.Triggers recursive layout recalculation on container resize.
buffer.tuix_buffer_get_snapshot_by_uid(uid: int) -> dictReturns thread-safe snapshot dictionary of buffer state and pixel metadata.Read-only diagnostics and testing.

Snapshot Keys

Buffer snapshots can include uid, pixels_owned, width, height, required_redraw, margin_left, margin_top, parent_uid, z_index, flat_index, children_count, children_capacity, layout_slot, and layout_rect.

Layout Example

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)