Merge pull request #182 from cgjones/issue-176

we don't cache built-in fonts
This commit is contained in:
sayrer 2011-07-04 21:17:35 -07:00
commit 5f70605dd8
2 changed files with 12 additions and 7 deletions

View File

@ -70,11 +70,14 @@ var Fonts = (function Fonts() {
return fonts[fontName];
},
setActive: function fonts_setActive(fontName, size) {
current = fonts[fontName];
charsCache = current.charsCache;
var sizes = current.sizes;
if (!(measureCache = sizes[size]))
measureCache = sizes[size] = Object.create(null);
// |current| can be null is fontName is a built-in font
// (e.g. "sans-serif")
if ((current = fonts[fontName])) {
charsCache = current.charsCache;
var sizes = current.sizes;
if (!(measureCache = sizes[size]))
measureCache = sizes[size] = Object.create(null);
}
ctx.font = (size * kScalePrecision) + 'px "' + fontName + '"';
},
charsToUnicode: function fonts_chars2Unicode(chars) {
@ -87,7 +90,7 @@ var Fonts = (function Fonts() {
return str;
// translate the string using the font's encoding
var encoding = current.properties.encoding;
var encoding = current ? current.properties.encoding : null;
if (!encoding)
return chars;

View File

@ -91,7 +91,9 @@ function displayPage(num) {
infoDisplay.innerHTML = "Time to load/compile/fonts/render: "+ (t1 - t0) + "/" + (t2 - t1) + "/" + (t3 - t2) + "/" + (t4 - t3) + " ms";
}
FontLoader.bind(fonts, displayPage);
// Always defer call to displayPage() to work around bug in
// Firefox error reporting from XHR callbacks.
FontLoader.bind(fonts, function () { setTimeout(displayPage, 0); });
}
function nextPage() {