sco.ui.surfaces
Methods and entrypoints for sco.ui.surfaces.
sco_ui_surfaces_v1
Section titled “sco_ui_surfaces_v1”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.