@awayjs/scene
Version:
AwayJS scene classes
89 lines • 3.51 kB
TypeScript
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