diff options
author | Hal Canary <halcanary@google.com> | 2017-05-04 14:23:55 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-05 13:53:40 +0000 |
commit | 209e4b1b70a5e9c2f504de15f038999ed9ee4ae5 (patch) | |
tree | 137e2b6ce3d37f25c0bd20caf1838676d0fc7c0f /src/ports/SkFontHost_win.cpp | |
parent | 452f92016ba3144f1e58466727074a859d39c072 (diff) |
Revert "Revert "SkTypeface::getAdvancedMetrics(): cleanup""
This reverts commit 59ad782b2b05b07aa6eb961aa4d62e934093cbd1.
- SkAdvancedTypefaceMetrics is a struct not a class
- SkTypeface::PerGlyphInfo is gone
- s/getAdvancedTypefaceMetrics/getAdvancedMetrics/g
- s/onGetAdvancedTypefaceMetrics/onGetAdvancedMetrics/g
- [on]getAdvancedMetrics now return unique_ptr rather than bare ptr.
- [on]getAdvancedMetrics no longer has parameters. (Only caller always
used same arguments.)
- SkAdvancedTypefaceMetrics uses C++11 in-class member initializers.
- SkAdvancedTypefaceMetrics no longer inherits from SkRefCnt
Change-Id: I91b56e60f7d9de7d46c426c6bd34ce124e0cf00e
Reviewed-on: https://skia-review.googlesource.com/15360
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
Diffstat (limited to 'src/ports/SkFontHost_win.cpp')
-rw-r--r-- | src/ports/SkFontHost_win.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/ports/SkFontHost_win.cpp b/src/ports/SkFontHost_win.cpp index 25c608878d..4a0aabede9 100644 --- a/src/ports/SkFontHost_win.cpp +++ b/src/ports/SkFontHost_win.cpp @@ -259,8 +259,7 @@ protected: SkScalerContext* onCreateScalerContext(const SkScalerContextEffects&, const SkDescriptor*) const override; void onFilterRec(SkScalerContextRec*) const override; - SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( - PerGlyphInfo, const uint32_t*, uint32_t) const override; + std::unique_ptr<SkAdvancedTypefaceMetrics> onGetAdvancedMetrics() const override; void onGetFontDescriptor(SkFontDescriptor*, bool*) const override; int onCharsToGlyphs(const void* chars, Encoding encoding, uint16_t glyphs[], int glyphCount) const override; @@ -1725,12 +1724,9 @@ void LogFontTypeface::onGetFontDescriptor(SkFontDescriptor* desc, *isLocalStream = this->fSerializeAsStream; } -SkAdvancedTypefaceMetrics* LogFontTypeface::onGetAdvancedTypefaceMetrics( - PerGlyphInfo perGlyphInfo, - const uint32_t* glyphIDs, - uint32_t glyphIDsCount) const { +std::unique_ptr<SkAdvancedTypefaceMetrics> LogFontTypeface::onGetAdvancedMetrics() const { LOGFONT lf = fLogFont; - SkAdvancedTypefaceMetrics* info = nullptr; + std::unique_ptr<SkAdvancedTypefaceMetrics> info(nullptr); HDC hdc = CreateCompatibleDC(nullptr); HFONT font = CreateFontIndirect(&lf); @@ -1760,7 +1756,7 @@ SkAdvancedTypefaceMetrics* LogFontTypeface::onGetAdvancedTypefaceMetrics( } glyphCount = calculateGlyphCount(hdc, fLogFont); - info = new SkAdvancedTypefaceMetrics; + info.reset(new SkAdvancedTypefaceMetrics); tchar_to_skstring(lf.lfFaceName, &info->fFontName); // If bit 1 is set, the font may not be embedded in a document. // If bit 1 is clear, the font can be embedded. @@ -1769,9 +1765,7 @@ SkAdvancedTypefaceMetrics* LogFontTypeface::onGetAdvancedTypefaceMetrics( info->fFlags |= SkAdvancedTypefaceMetrics::kNotEmbeddable_FontFlag; } - if (perGlyphInfo & kToUnicode_PerGlyphInfo) { - populate_glyph_to_unicode(hdc, glyphCount, &(info->fGlyphToUnicode)); - } + populate_glyph_to_unicode(hdc, glyphCount, &(info->fGlyphToUnicode)); if (glyphCount > 0 && (otm.otmTextMetrics.tmPitchAndFamily & TMPF_TRUETYPE)) { |