UNPKG

@pmndrs/uikit

Version:

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

43 lines (42 loc) 1.83 kB
import { Matrix4 } from 'three'; import { InstancedGlyphGroup } from './instanced-glyph-group.js'; import { ColorRepresentation } from '../../utils.js'; import { ClippingRect } from '../../clipping.js'; import { Font, FontFamilyProperties, GlyphInfo } from '../font.js'; import { Signal } from '@preact/signals-core'; import { GlyphLayoutProperties } from '../layout.js'; import { TextAlignProperties, TextAppearanceProperties } from './instanced-text.js'; export type InstancedTextProperties = TextAlignProperties & TextAppearanceProperties & Omit<GlyphLayoutProperties, 'text' | 'font'> & FontFamilyProperties; export declare function computedGylphGroupDependencies(fontSignal: Signal<Font | undefined>): import("@preact/signals-core").ReadonlySignal<{ font: Font | undefined; }>; /** * renders an initially specified glyph */ export declare class InstancedGlyph { private readonly group; private baseMatrix; private color; private opacity; private clippingRect; index?: number; private hidden; private glyphInfo?; private x; private y; private fontSize; private pixelSize; constructor(group: InstancedGlyphGroup, baseMatrix: Matrix4 | undefined, color: ColorRepresentation, opacity: number, clippingRect: ClippingRect | undefined); getX(widthMultiplier: number): number; show(): void; hide(): void; activate(index: number): void; setIndex(index: number): void; updateClippingRect(clippingRect: ClippingRect | undefined): void; updateColor(color: ColorRepresentation): void; updateOpacity(opacity: number): void; updateGlyphAndTransformation(glyphInfo: GlyphInfo, x: number, y: number, fontSize: number, pixelSize: number): void; updateBaseMatrix(baseMatrix: Matrix4): void; private writeUV; private writeUpdatedMatrix; }