merge
This commit is contained in:
commit
7b883a89db
11
fonts.js
11
fonts.js
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var isWorker = (typeof window == "undefined");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maximum file size of the font.
|
* Maximum file size of the font.
|
||||||
*/
|
*/
|
||||||
@ -37,8 +39,11 @@ var kDisableFonts = false;
|
|||||||
var Fonts = (function () {
|
var Fonts = (function () {
|
||||||
var kScalePrecision = 40;
|
var kScalePrecision = 40;
|
||||||
var fonts = Object.create(null);
|
var fonts = Object.create(null);
|
||||||
|
|
||||||
|
if (!isWorker) {
|
||||||
var ctx = document.createElement("canvas").getContext("2d");
|
var ctx = document.createElement("canvas").getContext("2d");
|
||||||
ctx.scale(1 / kScalePrecision, 1);
|
ctx.scale(1 / kScalePrecision, 1);
|
||||||
|
}
|
||||||
|
|
||||||
function Font(name, data, properties) {
|
function Font(name, data, properties) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
@ -120,8 +125,6 @@ var Fonts = (function () {
|
|||||||
|
|
||||||
var FontLoader = {
|
var FontLoader = {
|
||||||
bind: function(fonts, callback) {
|
bind: function(fonts, callback) {
|
||||||
var worker = (typeof window == "undefined");
|
|
||||||
|
|
||||||
function checkFontsLoaded() {
|
function checkFontsLoaded() {
|
||||||
for (var i = 0; i < fonts.length; i++) {
|
for (var i = 0; i < fonts.length; i++) {
|
||||||
var font = fonts[i];
|
var font = fonts[i];
|
||||||
@ -149,7 +152,7 @@ var FontLoader = {
|
|||||||
for (var j = 0; j < length; j++)
|
for (var j = 0; j < length; j++)
|
||||||
str += String.fromCharCode(data[j]);
|
str += String.fromCharCode(data[j]);
|
||||||
|
|
||||||
var rule = worker ? obj.bindWorker(str) : obj.bindDOM(str);
|
var rule = isWorker ? obj.bindWorker(str) : obj.bindDOM(str);
|
||||||
if (rule) {
|
if (rule) {
|
||||||
rules.push(rule);
|
rules.push(rule);
|
||||||
names.push(font.name);
|
names.push(font.name);
|
||||||
@ -157,7 +160,7 @@ var FontLoader = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!worker && rules.length) {
|
if (!isWorker && rules.length) {
|
||||||
FontLoader.prepareFontLoadEvent(rules, names);
|
FontLoader.prepareFontLoadEvent(rules, names);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,14 +59,15 @@ FontWorker.prototype = {
|
|||||||
"fonts": function(data) {
|
"fonts": function(data) {
|
||||||
// console.log("got processed fonts from worker", Object.keys(data));
|
// console.log("got processed fonts from worker", Object.keys(data));
|
||||||
for (name in data) {
|
for (name in data) {
|
||||||
// Update the
|
// Update the encoding property.
|
||||||
Fonts[name].properties = {
|
var font = Fonts.lookup(name);
|
||||||
|
font.properties = {
|
||||||
encoding: data[name].encoding
|
encoding: data[name].encoding
|
||||||
}
|
}
|
||||||
|
|
||||||
// Call `Font.prototype.bindDOM` to make the font get loaded on the page.
|
// Call `Font.prototype.bindDOM` to make the font get loaded on the page.
|
||||||
Font.prototype.bindDOM.call(
|
Font.prototype.bindDOM.call(
|
||||||
Fonts[name],
|
font,
|
||||||
data[name].str,
|
data[name].str,
|
||||||
// IsLoadedCallback.
|
// IsLoadedCallback.
|
||||||
this.$handleFontLoadedCallback
|
this.$handleFontLoadedCallback
|
||||||
@ -84,19 +85,9 @@ FontWorker.prototype = {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store only the data on Fonts that is needed later on, such that we
|
// Register the font but don't pass in any real data. The idea is to
|
||||||
// hold track on as lease memory as possible.
|
// store as less data as possible to reduce memory usage.
|
||||||
Fonts[font.name] = {
|
Fonts.registerFont(font.name, Object.create(null), Object.create(null));
|
||||||
name: font.name,
|
|
||||||
mimetype: font.mimetype,
|
|
||||||
// This is set later on the worker replay. For some fonts, the encoding
|
|
||||||
// is calculated during the conversion process happening on the worker
|
|
||||||
// and therefore is not available right now.
|
|
||||||
// properties: {
|
|
||||||
// encoding: font.properties.encoding
|
|
||||||
// },
|
|
||||||
cache: Object.create(null)
|
|
||||||
};
|
|
||||||
|
|
||||||
// Mark this font to be handled later.
|
// Mark this font to be handled later.
|
||||||
notLoaded.push(font);
|
notLoaded.push(font);
|
||||||
|
Loading…
Reference in New Issue
Block a user