Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
| 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 #undef GetGlyphIndices | 9 #undef GetGlyphIndices |
| 10 | 10 |
| (...skipping 856 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 867 fTypeface->fDWriteFontFace->GetMetrics(&dwfm); | 867 fTypeface->fDWriteFontFace->GetMetrics(&dwfm); |
| 868 | 868 |
| 869 SkScalar upem = SkIntToScalar(dwfm.designUnitsPerEm); | 869 SkScalar upem = SkIntToScalar(dwfm.designUnitsPerEm); |
| 870 if (mx) { | 870 if (mx) { |
| 871 mx->fTop = -fRec.fTextSize * SkIntToScalar(dwfm.ascent) / upem; | 871 mx->fTop = -fRec.fTextSize * SkIntToScalar(dwfm.ascent) / upem; |
| 872 mx->fAscent = mx->fTop; | 872 mx->fAscent = mx->fTop; |
| 873 mx->fDescent = fRec.fTextSize * SkIntToScalar(dwfm.descent) / upem; | 873 mx->fDescent = fRec.fTextSize * SkIntToScalar(dwfm.descent) / upem; |
| 874 mx->fBottom = mx->fDescent; | 874 mx->fBottom = mx->fDescent; |
| 875 mx->fLeading = fRec.fTextSize * SkIntToScalar(dwfm.lineGap) / upem; | 875 mx->fLeading = fRec.fTextSize * SkIntToScalar(dwfm.lineGap) / upem; |
| 876 mx->fXHeight = fRec.fTextSize * SkIntToScalar(dwfm.xHeight) / upem; | 876 mx->fXHeight = fRec.fTextSize * SkIntToScalar(dwfm.xHeight) / upem; |
| 877 mx->fUnderlineThickness = fRec.fTextSize * SkIntToScalar(dwfm.underlineP osition) / upem; | |
| 878 mx->fUnderlinePosition = fRec.fTextSize * SkIntToScalar(dwfm.underlineTh ickness) / upem; | |
| 879 | |
| 880 if(!mx->fUnderlineThickness) | |
|
bungeman-skia
2014/02/19 15:39:17
Here and below: I don't believe that DirectWrite s
h.joshi
2014/02/19 17:12:03
Okey, Added these checks below as "face->underline
| |
| 881 mx->unsetFontMetricsFlag(SkPaint::FontMetrics::kUnderlineThinknessIs Valid_FontMetricFlag); | |
| 882 else | |
| 883 mx->setFontMetricsFlag(SkPaint::FontMetrics::kUnderlineThinknessIsVa lid_FontMetricFlag); | |
| 884 | |
| 885 if(!mx->fUnderlinePosition) | |
| 886 mx->unsetFontMetricsFlag(SkPaint::FontMetrics::kUnderlinePositionIsV alid_FontMetricsflag); | |
| 887 else | |
| 888 mx->setFontMetricsFlag(SkPaint::FontMetrics::kUnderlinePositionIsVal id_FontMetricsflag); | |
| 877 } | 889 } |
| 878 | 890 |
| 879 if (my) { | 891 if (my) { |
| 880 my->fTop = -fRec.fTextSize * SkIntToScalar(dwfm.ascent) / upem; | 892 my->fTop = -fRec.fTextSize * SkIntToScalar(dwfm.ascent) / upem; |
| 881 my->fAscent = my->fTop; | 893 my->fAscent = my->fTop; |
| 882 my->fDescent = fRec.fTextSize * SkIntToScalar(dwfm.descent) / upem; | 894 my->fDescent = fRec.fTextSize * SkIntToScalar(dwfm.descent) / upem; |
| 883 my->fBottom = my->fDescent; | 895 my->fBottom = my->fDescent; |
| 884 my->fLeading = fRec.fTextSize * SkIntToScalar(dwfm.lineGap) / upem; | 896 my->fLeading = fRec.fTextSize * SkIntToScalar(dwfm.lineGap) / upem; |
| 885 my->fXHeight = fRec.fTextSize * SkIntToScalar(dwfm.xHeight) / upem; | 897 my->fXHeight = fRec.fTextSize * SkIntToScalar(dwfm.xHeight) / upem; |
| 898 my->fUnderlineThickness = fRec.fTextSize * SkIntToScalar(dwfm.underlineP osition) / upem; | |
| 899 my->fUnderlinePosition = fRec.fTextSize * SkIntToScalar(dwfm.underlineTh ickness) / upem; | |
| 900 | |
| 901 if(!my->fUnderlineThickness) | |
| 902 my->unsetFontMetricsFlag(SkPaint::FontMetrics::kUnderlineThinknessIs Valid_FontMetricFlag); | |
| 903 else | |
| 904 my->setFontMetricsFlag(SkPaint::FontMetrics::kUnderlineThinknessIsVa lid_FontMetricFlag); | |
| 905 | |
| 906 if(!my->fUnderlinePosition) | |
| 907 my->unsetFontMetricsFlag(SkPaint::FontMetrics::kUnderlinePositionIsV alid_FontMetricsflag); | |
| 908 else | |
| 909 my->setFontMetricsFlag(SkPaint::FontMetrics::kUnderlinePositionIsVal id_FontMetricsflag); | |
| 886 } | 910 } |
| 887 } | 911 } |
| 888 | 912 |
| 889 /////////////////////////////////////////////////////////////////////////////// | 913 /////////////////////////////////////////////////////////////////////////////// |
| 890 | 914 |
| 891 #include "SkColorPriv.h" | 915 #include "SkColorPriv.h" |
| 892 | 916 |
| 893 static void bilevel_to_bw(const uint8_t* SK_RESTRICT src, const SkGlyph& glyph) { | 917 static void bilevel_to_bw(const uint8_t* SK_RESTRICT src, const SkGlyph& glyph) { |
| 894 const int width = glyph.fWidth; | 918 const int width = glyph.fWidth; |
| 895 const size_t dstRB = (width + 7) >> 3; | 919 const size_t dstRB = (width + 7) >> 3; |
| (...skipping 1016 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1912 SK_TRACEHR(hr, "Could not get GetUserDefaultLocaleName."); | 1936 SK_TRACEHR(hr, "Could not get GetUserDefaultLocaleName."); |
| 1913 } else { | 1937 } else { |
| 1914 localeNameLen = getUserDefaultLocaleNameProc(localeNameStorage, LOCALE_N AME_MAX_LENGTH); | 1938 localeNameLen = getUserDefaultLocaleNameProc(localeNameStorage, LOCALE_N AME_MAX_LENGTH); |
| 1915 if (localeNameLen) { | 1939 if (localeNameLen) { |
| 1916 localeName = localeNameStorage; | 1940 localeName = localeNameStorage; |
| 1917 }; | 1941 }; |
| 1918 } | 1942 } |
| 1919 | 1943 |
| 1920 return SkNEW_ARGS(SkFontMgr_DirectWrite, (sysFontCollection.get(), localeNam e, localeNameLen)); | 1944 return SkNEW_ARGS(SkFontMgr_DirectWrite, (sysFontCollection.get(), localeNam e, localeNameLen)); |
| 1921 } | 1945 } |
| OLD | NEW |