UNPKG

@awayjs/scene

Version:
89 lines 3.51 kB
import { AssetBase, Point } from '@awayjs/core'; import { AttributesBuffer, BitmapImage2D, Stage } from '@awayjs/stage'; import { GraphicsPath, Shape } from '@awayjs/graphics'; import { TesselatedFontChar } from './TesselatedFontChar'; import { IFontTable } from './IFontTable'; import { TextFormat } from './TextFormat'; import { TextField } from '../display/TextField'; /** * GraphicBase wraps a TriangleElements as a scene graph instantiation. A GraphicBase is owned by a Sprite object. * * * @see away.base.TriangleElements * @see away.entities.Sprite * * @class away.base.GraphicBase */ export declare class TesselatedFontTable extends AssetBase implements IFontTable { static assetType: string; static DEFAULT_SPACE: number; font: any; _font_chars_dic: StringMap<TesselatedFontChar>; _current_size: number; _size_multiply: number; private _font_chars; private _font_em_size; private _whitespace_width; private _ascent; private _descent; private _usesCurves; private _opentype_font; private _glyphIdxToChar; private _fntSizeLimit; private _fnt_channels; /** * Creates a new TesselatedFont object * If a opentype_font object is passed, the chars will get tessellated whenever requested. * If no opentype font object is passed, it is expected that tesselated chars */ constructor(opentype_font?: any); addFNTChannel(mat: BitmapImage2D): void; getGlyphCount(): number; generateFNTData(stage: Stage): void; generateFNTTextures(padding: number, fontSize: number, texSize: number): Shape[]; getRatio(size: number): number; hasChar(char_code: string): boolean; changeOpenTypeFont(newOpenTypeFont: any, tesselateAllOld?: boolean): void; initFontSize(font_size: number): void; getCharVertCnt(char_code: string): number; getCharWidth(char_code: string): number; get usesCurves(): boolean; getLineHeight(): number; getUnderLineHeight(): number; get assetType(): string; dispose(): void; get fntSizeLimit(): number; set fntSizeLimit(value: number); get ascent(): number; set ascent(value: number); get descent(): number; set descent(value: number); get_font_chars(): Array<TesselatedFontChar>; get_font_em_size(): number; set_whitespace_width(value: number): void; get_whitespace_width(): number; set_font_em_size(font_em_size: number): void; buildTextLineFromIndices(field: TextField, format: TextFormat, x: number, y: number, indices: number[], advance: number[]): Point; fillTextRun(tf: TextField, format: TextFormat, startWord: number, wordCnt: number): void; private _cacheKey; /** * Query shape from TextField cache * @param tf * @param format * @param channel - FNT channel, -1 for regular font * @private */ private _queryShape; /** * Fill text run but use FNT Texture. */ fillTextRunFNT(tf: TextField, format: TextFormat, startWord: number, wordCnt: number): void; private _emitCharFNT; createPointGlyph_9679(): TesselatedFontChar; private getCharOpenType; getChar(name: string | number, tesselation?: boolean): TesselatedFontChar; setChar(name: string, char_width: number, fills_data?: AttributesBuffer, stroke_data?: AttributesBuffer, uses_curves?: boolean, glyph_idx?: number, fill_data_path?: GraphicsPath): void; private roundTo; private _fillBuffer; } //# sourceMappingURL=TesselatedFontTable.d.ts.map