@awayjs/scene
Version:
AwayJS scene classes
102 lines (101 loc) • 4.24 kB
JavaScript
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 };