UNPKG

@lightningjs/renderer

Version:
34 lines (33 loc) 1.15 kB
import type { CoreTextNode } from '../CoreTextNode.js'; import type { FontMetrics, NormalizedFontMetrics, TextRenderer } from './TextRenderer.js'; import { EventEmitter } from '../../common/EventEmitter.js'; export declare enum FontState { Created = 0, Loading = 1, Loaded = 2, Failed = 3 } export interface CoreFontProps { family: string; metrics?: FontMetrics; } /** * EventEmiter only intended to communicated with FontManager */ export declare abstract class CoreFont extends EventEmitter { protected waitingNodes?: Record<number, CoreTextNode>; protected normalizedMetrics?: Record<number, NormalizedFontMetrics>; textRenderer: TextRenderer; state: FontState; family: string; metrics?: FontMetrics; constructor(textRenderer: TextRenderer, props: CoreFontProps); protected onLoaded(): void; waiting(node: CoreTextNode): void; stopWaiting(node: CoreTextNode): void; destroy(): void; abstract type: string; abstract load(): void; abstract measureText(text: string, letterSpacing: number): number; abstract getMetrics(fontSize: number): NormalizedFontMetrics; }