Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Unified Diff: trunk/src/pdf/SkPDFFont.cpp

Issue 12739006: move most of SkFontHost to private (preceeding making it all private) (Closed) Base URL: http://skia.googlecode.com/svn/
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: trunk/src/pdf/SkPDFFont.cpp
===================================================================
--- trunk/src/pdf/SkPDFFont.cpp (revision 8138)
+++ trunk/src/pdf/SkPDFFont.cpp (working copy)
@@ -1,4 +1,3 @@
-
/*
* Copyright 2011 Google Inc.
*
@@ -6,7 +5,6 @@
* found in the LICENSE file.
*/
-
#include <ctype.h>
#include "SkData.h"
@@ -23,7 +21,7 @@
#include "SkRefCnt.h"
#include "SkScalar.h"
#include "SkStream.h"
-#include "SkTypeface.h"
+#include "SkTypefacePriv.h"
#include "SkTypes.h"
#include "SkUtils.h"
@@ -549,8 +547,8 @@
const SkTypeface* typeface,
const SkTDArray<uint32_t>& subset,
SkPDFStream** fontStream) {
- SkAutoTUnref<SkStream> fontData(
- SkFontHost::OpenStream(SkTypeface::UniqueID(typeface)));
+ int ttcIndex;
+ SkAutoTUnref<SkStream> fontData(typeface->openStream(&ttcIndex));
int fontSize = fontData->getLength();
@@ -714,7 +712,7 @@
SkDEBUGCODE(int indexFound;)
SkASSERT(index == -1 ||
- (Find(SkTypeface::UniqueID(fTypeface.get()),
+ (Find(fTypeface->uniqueID(),
fFirstGlyphID,
&indexFound) &&
index == indexFound));
@@ -763,7 +761,11 @@
// static
SkPDFFont* SkPDFFont::GetFontResource(SkTypeface* typeface, uint16_t glyphID) {
SkAutoMutexAcquire lock(CanonicalFontsMutex());
- const uint32_t fontID = SkTypeface::UniqueID(typeface);
+
+ SkAutoResolveDefaultTypeface autoResolve(typeface);
+ typeface = autoResolve.get();
+
+ const uint32_t fontID = typeface->uniqueID();
int relatedFontIndex;
if (Find(fontID, glyphID, &relatedFontIndex)) {
CanonicalFonts()[relatedFontIndex].fFont->ref();
@@ -800,7 +802,7 @@
info, SkAdvancedTypefaceMetrics::kHAdvance_PerGlyphInfo);
#endif
fontMetrics.reset(
- SkFontHost::GetAdvancedTypefaceMetrics(fontID, info, NULL, 0));
+ typeface->getAdvancedTypefaceMetrics(info, NULL, 0));
#if defined (SK_SFNTLY_SUBSETTER)
if (fontMetrics.get() &&
fontMetrics->fType != SkAdvancedTypefaceMetrics::kTrueType_Font) {
@@ -808,7 +810,7 @@
info = SkTBitOr<SkAdvancedTypefaceMetrics::PerGlyphInfo>(
info, SkAdvancedTypefaceMetrics::kHAdvance_PerGlyphInfo);
fontMetrics.reset(
- SkFontHost::GetAdvancedTypefaceMetrics(fontID, info, NULL, 0));
+ typeface->getAdvancedTypefaceMetrics(info, NULL, 0));
}
#endif
}
@@ -855,7 +857,7 @@
SkPDFFont::SkPDFFont(SkAdvancedTypefaceMetrics* info, SkTypeface* typeface,
SkPDFDict* relatedFontDescriptor)
: SkPDFDict("Font"),
- fTypeface(typeface),
+ fTypeface(ref_or_default(typeface)),
fFirstGlyphID(1),
fLastGlyphID(info ? info->fLastGlyphID : 0),
fFontInfo(info),
@@ -1099,8 +1101,8 @@
}
case SkAdvancedTypefaceMetrics::kCFF_Font:
case SkAdvancedTypefaceMetrics::kType1CID_Font: {
- SkAutoTUnref<SkStream> fontData(
- SkFontHost::OpenStream(SkTypeface::UniqueID(typeface())));
+ int ttcIndex;
+ SkAutoTUnref<SkStream> fontData(typeface()->openStream(&ttcIndex));
SkAutoTUnref<SkPDFStream> fontStream(
new SkPDFStream(fontData.get()));
addResource(fontStream.get());
@@ -1139,11 +1141,7 @@
uint32_t* glyphs = (glyphIDs.count() == 1) ? NULL : glyphIDs.begin();
uint32_t glyphsCount = glyphs ? glyphIDs.count() : 0;
SkAutoTUnref<SkAdvancedTypefaceMetrics> fontMetrics(
- SkFontHost::GetAdvancedTypefaceMetrics(
- SkTypeface::UniqueID(typeface()),
- info,
- glyphs,
- glyphsCount));
+ typeface()->getAdvancedTypefaceMetrics(info, glyphs, glyphsCount));
setFontInfo(fontMetrics.get());
addFontDescriptor(0, &glyphIDs);
} else {
@@ -1229,11 +1227,11 @@
SkAutoTUnref<SkPDFDict> descriptor(new SkPDFDict("FontDescriptor"));
setFontDescriptor(descriptor.get());
+ int ttcIndex;
size_t header SK_INIT_TO_AVOID_WARNING;
size_t data SK_INIT_TO_AVOID_WARNING;
size_t trailer SK_INIT_TO_AVOID_WARNING;
- SkAutoTUnref<SkStream> rawFontData(
- SkFontHost::OpenStream(SkTypeface::UniqueID(typeface())));
+ SkAutoTUnref<SkStream> rawFontData(typeface()->openStream(&ttcIndex));
SkStream* fontData = handleType1Stream(rawFontData.get(), &header, &data,
&trailer);
if (fontData == NULL) {

Powered by Google App Engine
This is Rietveld 408576698