DirectWrite to use PostScript name for PDF.
authorbungeman <bungeman@google.com>
Tue, 17 Jun 2014 17:48:04 +0000 (10:48 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 17 Jun 2014 17:48:04 +0000 (10:48 -0700)
The PDF backend expects info->fFontName to be the PostScript name.
Prior to this change the '<family> <sytle>' name was used instead.

R=vandebo@chromium.org, halcanary@google.com, reed@google.com, thestig@chromium.org

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/324403010

src/ports/SkTypeface_win_dw.cpp

index 4937d3f..9eace8b 100644 (file)
@@ -365,23 +365,18 @@ SkAdvancedTypefaceMetrics* DWriteFontTypeface::onGetAdvancedTypefaceMetrics(
     info->fLastGlyphID = SkToU16(glyphCount - 1);
     info->fStyle = 0;
 
-
+    // SkAdvancedTypefaceMetrics::fFontName is in theory supposed to be
+    // the PostScript name of the font. However, due to the way it is currently
+    // used, it must actually be a family name.
     SkTScopedComPtr<IDWriteLocalizedStrings> familyNames;
-    SkTScopedComPtr<IDWriteLocalizedStrings> faceNames;
     hr = fDWriteFontFamily->GetFamilyNames(&familyNames);
-    hr = fDWriteFont->GetFaceNames(&faceNames);
 
     UINT32 familyNameLength;
     hr = familyNames->GetStringLength(0, &familyNameLength);
 
-    UINT32 faceNameLength;
-    hr = faceNames->GetStringLength(0, &faceNameLength);
-
-    UINT32 size = familyNameLength+1+faceNameLength+1;
+    UINT32 size = familyNameLength+1;
     SkSMallocWCHAR wFamilyName(size);
     hr = familyNames->GetString(0, wFamilyName.get(), size);
-    wFamilyName[familyNameLength] = L' ';
-    hr = faceNames->GetString(0, &wFamilyName[familyNameLength+1], size - faceNameLength + 1);
 
     hr = sk_wchar_to_skstring(wFamilyName.get(), &info->fFontName);