UNPKG

@awayjs/scene

Version:
102 lines (101 loc) 4.24 kB
import { Font } from '../text/Font'; import { AssetBase } from '@awayjs/core'; import { DeviceFontManager } from './DeviceFontManager'; var DefaultFontManager = /** @class */ (function () { function DefaultFontManager() { } DefaultFontManager.defineFont_CFF = function (fontName, ns) { if (ns === void 0) { ns = AssetBase.DEFAULT_NAMESPACE; } this._embbedCFF_fonts || (this._embbedCFF_fonts = {}); this._embbedCFF_fonts[ns] || (this._embbedCFF_fonts[ns] = {}); var font = this._embbedCFF_fonts[ns][fontName]; if (font) { return font; } font = new Font(); font.name = fontName; this._embbedCFF_fonts[ns][fontName] = font; return font; }; DefaultFontManager.getFont_CFF = function (fontName, namespace) { if (namespace === void 0) { namespace = AssetBase.DEFAULT_NAMESPACE; } if (!fontName) { return DeviceFontManager.getDeviceFont(fontName); } var ns = namespace || AssetBase.DEFAULT_NAMESPACE; this._embbedCFF_fonts || (this._embbedCFF_fonts = {}); this._embbedCFF_fonts[ns] || (this._embbedCFF_fonts[ns] = {}); var font = this._embbedCFF_fonts[ns][fontName]; if (font) { return font; } for (var key in this._embbedCFF_fonts) { if (this._embbedCFF_fonts[key][fontName]) { return this._embbedCFF_fonts[key][fontName]; } } return DeviceFontManager.getDeviceFont(fontName); }; DefaultFontManager.defineFont = function (fontName, ns) { //console.log('[DefaultFontManager] - defineFont', fontName, 'deviceFont:', this.deviceFontsLoading); if (ns === void 0) { ns = AssetBase.DEFAULT_NAMESPACE; } this._registered_fonts || (this._registered_fonts = {}); this._registered_fonts[ns] || (this._registered_fonts[ns] = {}); if (this.deviceFontsLoading) { return DeviceFontManager.getDeviceFont(fontName); } var font = this._registered_fonts[ns][fontName]; if (font) { return font; } font = new Font(); font.name = fontName; if (this._namespaces.indexOf(ns) === -1) { this._namespaces.push(ns); } this._registered_fonts[ns][fontName] = font; return font; }; DefaultFontManager.registerFontForClassName = function (font, className) { this._registered_fonts_by_className[className] = font; }; DefaultFontManager.getFont = function (fontName, namespace) { if (namespace === void 0) { namespace = undefined; } // return null if no fontName supplied if (!fontName) return null; // hack for dynamic fonts: first check if reguested font-name is a classname that was registered if (this._registered_fonts_by_className[fontName]) { return this._registered_fonts_by_className[fontName]; } var ns = namespace || AssetBase.DEFAULT_NAMESPACE; this._registered_fonts || (this._registered_fonts = {}); this._registered_fonts[ns] || (this._registered_fonts[ns] = {}); var font = this._registered_fonts[ns][fontName]; if (font) { return font; } else if (this._namespaces.length > 0 && !namespace) { // lookup over all NS for (var _i = 0, _a = this._namespaces; _i < _a.length; _i++) { var ns_1 = _a[_i]; if (this._registered_fonts[ns_1][fontName]) { return this._registered_fonts[ns_1][fontName]; } } } return DeviceFontManager.getDeviceFont(fontName); }; DefaultFontManager.clearAll = function () { this.deviceFontsLoading = false; this._registered_fonts = {}; }; // set to true while loading fonts.swf DefaultFontManager.deviceFontsLoading = false; DefaultFontManager._registered_fonts = {}; DefaultFontManager._registered_fonts_by_className = {}; DefaultFontManager._namespaces = []; DefaultFontManager._embbedCFF_fonts = {}; return DefaultFontManager; }()); export { DefaultFontManager };