UNPKG

@pmndrs/uikit

Version:

Build performant 3D user interfaces with Three.js and yoga.

23 lines (22 loc) 1.15 kB
import { ReadonlySignal, Signal } from '@preact/signals-core'; import { PanelGroupManager } from './panel/instanced-panel-group.js'; import { WithReversePainterSortStableCache } from './order.js'; import { Matrix4, Vector2Tuple } from 'three'; import { GlyphGroupManager } from './text/render/instanced-glyph-group.js'; import { Component } from './components/component.js'; import { Properties } from './properties/index.js'; export type RenderContext = { requestFrame: () => void; }; export type RootContext = WithReversePainterSortStableCache & { requestCalculateLayout: () => void; requestRender: () => void; component: Component; glyphGroupManager: GlyphGroupManager; panelGroupManager: PanelGroupManager; onFrameSet: Set<(delta: number) => void>; onUpdateMatrixWorldSet: Set<() => void>; isUpdateRunning: boolean; } & Partial<RenderContext>; export declare function buildRootContext(component: Component, renderContext: RenderContext | undefined): ReadonlySignal<RootContext>; export declare function buildRootMatrix(properties: Properties, size: Signal<Vector2Tuple | undefined>): Matrix4 | undefined;