OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkTypes.h" | 8 #include "SkTypes.h" |
9 #if defined(SK_BUILD_FOR_WIN32) | 9 #if defined(SK_BUILD_FOR_WIN32) |
10 | 10 |
(...skipping 1822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1833 } | 1833 } |
1834 } | 1834 } |
1835 | 1835 |
1836 if (perGlyphInfo & kHAdvance_PerGlyphInfo) { | 1836 if (perGlyphInfo & kHAdvance_PerGlyphInfo) { |
1837 if (info->fStyle & SkAdvancedTypefaceMetrics::kFixedPitch_Style) { | 1837 if (info->fStyle & SkAdvancedTypefaceMetrics::kFixedPitch_Style) { |
1838 appendRange(&info->fGlyphWidths, 0); | 1838 appendRange(&info->fGlyphWidths, 0); |
1839 info->fGlyphWidths->fAdvance.append(1, &min_width); | 1839 info->fGlyphWidths->fAdvance.append(1, &min_width); |
1840 finishRange(info->fGlyphWidths.get(), 0, | 1840 finishRange(info->fGlyphWidths.get(), 0, |
1841 SkAdvancedTypefaceMetrics::WidthRange::kDefault); | 1841 SkAdvancedTypefaceMetrics::WidthRange::kDefault); |
1842 } else { | 1842 } else { |
| 1843 std::function<bool(int gId, int16_t* data)> getWidthAdvanceFn = |
| 1844 [hdc](int gId, int16_t* advance) { |
| 1845 return getWidthAdvance(hdc, gId, advance); |
| 1846 }; |
1843 info->fGlyphWidths.reset( | 1847 info->fGlyphWidths.reset( |
1844 getAdvanceData(hdc, | 1848 getAdvanceData(glyphCount, |
1845 glyphCount, | |
1846 glyphIDs, | 1849 glyphIDs, |
1847 glyphIDsCount, | 1850 glyphIDsCount, |
1848 &getWidthAdvance)); | 1851 getWidthAdvanceFn)); |
1849 } | 1852 } |
1850 } | 1853 } |
1851 | 1854 |
1852 Error: | 1855 Error: |
1853 ReturnInfo: | 1856 ReturnInfo: |
1854 SelectObject(hdc, savefont); | 1857 SelectObject(hdc, savefont); |
1855 DeleteObject(designFont); | 1858 DeleteObject(designFont); |
1856 DeleteObject(font); | 1859 DeleteObject(font); |
1857 DeleteDC(hdc); | 1860 DeleteDC(hdc); |
1858 | 1861 |
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2514 | 2517 |
2515 private: | 2518 private: |
2516 SkTDArray<ENUMLOGFONTEX> fLogFontArray; | 2519 SkTDArray<ENUMLOGFONTEX> fLogFontArray; |
2517 }; | 2520 }; |
2518 | 2521 |
2519 /////////////////////////////////////////////////////////////////////////////// | 2522 /////////////////////////////////////////////////////////////////////////////// |
2520 | 2523 |
2521 SkFontMgr* SkFontMgr_New_GDI() { return new SkFontMgrGDI; } | 2524 SkFontMgr* SkFontMgr_New_GDI() { return new SkFontMgrGDI; } |
2522 | 2525 |
2523 #endif//defined(SK_BUILD_FOR_WIN32) | 2526 #endif//defined(SK_BUILD_FOR_WIN32) |
OLD | NEW |