modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
50 lines (49 loc) • 2.09 kB
TypeScript
import type { Fonts } from 'modern-font';
import type { NormalizedFill, NormalizedText, TextContent, Text as TextProperties } from 'modern-idoc';
import type { MeasureResult } from 'modern-text';
import type { RectangleLike } from '../../../core';
import type { CanvasContext, TransformVertex } from '../../main';
import type { Texture2D } from '../../resources';
import type { Element2D } from './Element2D';
import { BoundingBox } from 'modern-path2d';
import { Text } from 'modern-text';
import { CoreObject } from '../../../core';
import { CanvasTexture } from '../../resources';
export type TextDrawMode = 'auto' | 'texture' | 'path';
export declare class Element2DText extends CoreObject {
parent: Element2D;
enabled: boolean;
content: NormalizedText['content'];
style: NormalizedText['style'];
effects: NormalizedText['effects'];
fill: NormalizedText['fill'];
outline: NormalizedText['outline'];
measureDom: HTMLElement;
fonts: Fonts;
drawMode: TextDrawMode;
readonly base: Text;
protected _autoDrawMode?: TextDrawMode;
protected _autoDrawThreshold: number;
protected _texture: CanvasTexture;
protected _textureMap: Map<string, {
texture: Texture2D | undefined;
box: RectangleLike;
}>;
constructor(parent: Element2D);
setProperties(properties?: TextProperties): this;
protected _updateProperty(key: string, value: any, oldValue: any): void;
update(): void;
protected _updateTextureMap(): void;
protected _updateTexture(key: string, fill: NormalizedFill | undefined, box: BoundingBox): Promise<void>;
protected _loadTexture(fill: NormalizedFill, box: any): Promise<Texture2D | undefined>;
setContent(content: TextContent): void;
getStringContent(): string;
measure(): MeasureResult;
isValid(): boolean;
protected _createTransformVertex(): TransformVertex | undefined;
useTextureDraw(): boolean;
protected _pathDraw(ctx: CanvasContext): void;
protected _textureDraw(ctx: CanvasContext): void;
draw(): void;
process(_delta: number): void;
}