@pmndrs/uikit
Version:
Build performant 3D user interfaces with Three.js and yoga.
38 lines (37 loc) • 1.62 kB
TypeScript
import { InstancedBufferAttribute } from 'three';
import { InstancedGlyph } from './instanced-glyph.js';
import { Font } from '../font.js';
import { OrderInfo } from '../../order.js';
import { RootContext } from '../../context.js';
import type { Component } from '../../components/component.js';
export declare class GlyphGroupManager {
private readonly root;
private readonly object;
private map;
constructor(root: Omit<RootContext, 'glyphGroupManager' | 'panelGroupManager'>, object: Component);
init(abortSignal: AbortSignal): void;
private traverse;
getGroup({ majorIndex, minorIndex }: OrderInfo, depthTest: boolean, depthWrite: boolean, renderOrder: number, font: Font): InstancedGlyphGroup;
}
export declare class InstancedGlyphGroup {
private object;
readonly root: Omit<RootContext, 'glyphGroupManager' | 'panelGroupManager'>;
private orderInfo;
private renderOrder;
instanceMatrix: InstancedBufferAttribute;
instanceUV: InstancedBufferAttribute;
instanceRGBA: InstancedBufferAttribute;
instanceClipping: InstancedBufferAttribute;
private glyphs;
private requestedGlyphs;
private holeIndicies;
private mesh?;
private instanceMaterial;
private timeTillDecimate?;
constructor(object: Component, font: Font, root: Omit<RootContext, 'glyphGroupManager' | 'panelGroupManager'>, orderInfo: OrderInfo, depthTest: boolean, depthWrite: boolean, renderOrder: number);
requestActivate(glyph: InstancedGlyph): void;
delete(glyph: InstancedGlyph): void;
onFrame(delta: number): void;
private resize;
destroy(): void;
}