UNPKG

@pmndrs/uikit

Version:

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

36 lines (35 loc) 1.58 kB
import { Signal } from '@preact/signals-core'; import { Object3D, RenderItem } from 'three'; import { Properties } from './properties/index.js'; export type WithReversePainterSortStableCache = { reversePainterSortStableCache?: number; }; export declare const reversePainterSortStableCacheKey: unique symbol; export declare const orderInfoKey: unique symbol; export declare function reversePainterSortStable(a: RenderItem, b: RenderItem): number; export declare const ElementType: { readonly Panel: 0; readonly Image: 1; readonly Content: 2; readonly Custom: 3; readonly Text: 4; }; export type ElementType = (typeof ElementType)[keyof typeof ElementType]; export type OrderInfo = { majorIndex: number; minorIndex: number; elementType: ElementType; patchIndex: number; instancedGroupDependencies?: Signal<Record<string, any>> | Record<string, any>; }; export declare function compareOrderInfo(o1: OrderInfo | undefined, o2: OrderInfo | undefined): number; export type ZIndexProperties = { zIndex?: number; zIndexOffset?: number; }; export declare function setupOrderInfo(target: Signal<OrderInfo | undefined>, properties: Properties, zIndexKey: string, type: ElementType, instancedGroupDependencies: Signal<Record<string, any>> | Record<string, any> | undefined, basisOrderInfoSignal: Signal<OrderInfo | undefined | null>, abortSignal: AbortSignal): void; export declare function setupRenderOrder(target: Object3D, root: { peek(): WithReversePainterSortStableCache; }, orderInfo: { value: OrderInfo | undefined; }): void;