Skip to content

sco.ui.surfaces

Methods and entrypoints for sco.ui.surfaces.

Source: sco_ui_surfaces.h, implementation, layout pin; host tests: tests/test_surfaces.cpp. Renderer-neutral placement of sco.widgets panels, host-owned service 1.0: a 2D HUD rectangle, a camera-facing 3D billboard or a world-anchored 3D quad. The host keeps a validated registry (owner, kind, pose, panel id) and draws nothing; the product’s renderer reads it through sco/surfaces.h and projects each surface itself (UI: Surfaces documents the billboard and quad math). Payloads are size-prefixed sco_surface_desc (16 bytes) and sco_surface_pose (112 bytes); sizes must cover the 1.0 structs, larger tails are ignored. Limits: 32 surfaces per plugin, 256 in all, panel id 63 bytes, 3D extent 1000 m, max distance 1e7 m, coordinates 1e12 m, unit-vector tolerance 1e-3. Ids are host-assigned, nonzero and never reused while the host runs. Owner cleanup (unload, crash) rides sco.ui’s release hook, so the host publishes this service only while sco.ui runs. C is direct; C++ has scosdk/ui_surfaces.hpp. C# and Lua sco.ui.surfaces routes are unsupported.