Skip to main content

Interface: IwsdkSceneHost

Defined in: packages/iwsdk-uiextensions/src/scene-host.ts:96

The engine-agnostic surface an app needs to build a UI: spawn windows and regions from portable data, observe when panels become wireable, and reach the shared WindowManager.

Panels load asynchronously on every adapter (IWSDK fetches the config; uikit lays out over following frames), so app code must never assume a panel exists immediately after creating its window. onPanelReady is the portable answer - it replaces engine-specific discovery (ECS queries on IWSDK, polling anywhere else) and fires for panels that became ready before the listener was registered, so wiring order never matters.

Extends​

Properties​

PropertyModifierTypeDescriptionInherited fromDefined in
supportsStandalonePanelsreadonlybooleanWhether PanelHost.createPanel works on this host. When false the method is not available and throws; spawn a window instead, so the engine owns the panel lifecycle. IWSDK is false, three.js/XR Blocks is true.WindowHost.supportsStandalonePanelspackages/webxr-uiextensions/src/adapter.ts:150
worldreadonlyWorld--packages/iwsdk-uiextensions/src/scene-host.ts:97

Methods​

createPanel()​

createPanel(configJson: unknown): PanelHandle;

Defined in: packages/webxr-uiextensions/src/adapter.ts:105

Create a panel from compiled UIKitML JSON (the { element, classes } shape produced by the build plugin or by @realitycollective/uix-devtools' compilePanelSource).

Parameters​

ParameterType
configJsonunknown

Returns​

PanelHandle

Inherited from​

WindowHost.createPanel


createWindow()​

createWindow(options: CreateWindowOptions): IwsdkWindowHandle;

Defined in: packages/iwsdk-uiextensions/src/scene-host.ts:103

Spawn a managed window and get a handle back straight away. IWSDK loads the markup over later frames, so handle.panel is undefined at first and handle.onReady is how you wait for it without an ECS query.

Parameters​

ParameterType
optionsCreateWindowOptions

Returns​

IwsdkWindowHandle


onPanelReady()​

onPanelReady(listener: (event: PanelReadyEvent) => void): () => void;

Defined in: packages/webxr-uiextensions/src/adapter.ts:155

Subscribe to panel readiness. Late subscribers are replayed the windows that are already live. Returns an unsubscribe function.

Parameters​

ParameterType
listener(event: PanelReadyEvent) => void

Returns​

() => void

Inherited from​

WindowHost.onPanelReady


spawnRegion()​

spawnRegion(region: SceneRegion): void;

Defined in: packages/webxr-uiextensions/src/scene.ts:75

Parameters​

ParameterType
regionSceneRegion

Returns​

void

Inherited from​

SceneTarget.spawnRegion


spawnWindow()​

spawnWindow(window: SceneWindow): void;

Defined in: packages/webxr-uiextensions/src/scene.ts:76

Parameters​

ParameterType
windowSceneWindow

Returns​

void

Inherited from​

SceneTarget.spawnWindow