@pmndrs/uikit
Version:
Build performant 3D user interfaces with Three.js and yoga.
41 lines (40 loc) • 1.8 kB
TypeScript
import { InstancedBufferAttribute, Object3D } from 'three';
import { InstancedGlyph } from './instanced-glyph.js';
import { Font } from '../font.js';
import { OrderInfo, WithReversePainterSortStableCache } from '../../order.js';
import { RootContext } from '../../context.js';
export declare class GlyphGroupManager {
private readonly root;
private readonly objectRef;
private map;
constructor(root: WithReversePainterSortStableCache & Pick<RootContext, 'requestFrame' | 'requestRender' | 'onFrameSet' | 'pixelSize'>, objectRef: {
current?: Object3D | null;
});
init(abortSignal: AbortSignal): void;
private traverse;
getGroup(majorIndex: number, depthTest: boolean, depthWrite: boolean, renderOrder: number, font: Font): InstancedGlyphGroup;
}
export declare class InstancedGlyphGroup {
private objectRef;
readonly root: WithReversePainterSortStableCache & Pick<RootContext, 'requestFrame' | 'requestRender' | 'pixelSize'>;
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(objectRef: {
current?: Object3D | null;
}, font: Font, root: WithReversePainterSortStableCache & Pick<RootContext, 'requestFrame' | 'requestRender' | 'pixelSize'>, orderInfo: OrderInfo, depthTest: boolean, depthWrite: boolean, renderOrder: number);
requestActivate(glyph: InstancedGlyph): void;
delete(glyph: InstancedGlyph): void;
onFrame(delta: number): void;
private resize;
destroy(): void;
}