@lightningjs/renderer
Version:
Lightning 3 Renderer
34 lines (33 loc) • 1.15 kB
TypeScript
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;
}