OLD | NEW |
---|---|
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 #ifdef SK_BUILD_FOR_MAC | 10 #ifdef SK_BUILD_FOR_MAC |
(...skipping 1814 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1825 memcpy(dstData, CFDataGetBytePtr(srcData) + offset, length); | 1825 memcpy(dstData, CFDataGetBytePtr(srcData) + offset, length); |
1826 } | 1826 } |
1827 return length; | 1827 return length; |
1828 } | 1828 } |
1829 | 1829 |
1830 SkScalerContext* SkTypeface_Mac::onCreateScalerContext(const SkDescriptor* desc) const { | 1830 SkScalerContext* SkTypeface_Mac::onCreateScalerContext(const SkDescriptor* desc) const { |
1831 return new SkScalerContext_Mac(const_cast<SkTypeface_Mac*>(this), desc); | 1831 return new SkScalerContext_Mac(const_cast<SkTypeface_Mac*>(this), desc); |
1832 } | 1832 } |
1833 | 1833 |
1834 void SkTypeface_Mac::onFilterRec(SkScalerContextRec* rec) const { | 1834 void SkTypeface_Mac::onFilterRec(SkScalerContextRec* rec) const { |
1835 unsigned flagsWeDontSupport = SkScalerContext::kDevKernText_Flag | | 1835 if (rec->fFlags & SkScalerContext::kLCD_BGROrder_Flag || |
1836 SkScalerContext::kAutohinting_Flag; | 1836 rec->fFlags & SkScalerContext::kLCD_Vertical_Flag) |
1837 { | |
1838 rec->fMaskFormat = SkMask::kA8_Format; | |
1839 rec->setHinting(SkPaint::kNormal_Hinting); | |
reed1
2013/05/06 18:02:12
why do we explicitly set hinting in this case?
bungeman-skia
2013/05/06 18:16:10
Added comment. The issue is that LCD no-hinting me
| |
1840 } | |
1841 | |
1842 unsigned flagsWeDontSupport = SkScalerContext::kDevKernText_Flag | | |
1843 SkScalerContext::kAutohinting_Flag | | |
1844 SkScalerContext::kLCD_BGROrder_Flag | | |
1845 SkScalerContext::kLCD_Vertical_Flag; | |
1837 | 1846 |
1838 rec->fFlags &= ~flagsWeDontSupport; | 1847 rec->fFlags &= ~flagsWeDontSupport; |
1839 | 1848 |
1840 bool lcdSupport = supports_LCD(); | 1849 bool lcdSupport = supports_LCD(); |
1841 | 1850 |
1842 // Only two levels of hinting are supported. | 1851 // Only two levels of hinting are supported. |
1843 // kNo_Hinting means avoid CoreGraphics outline dilation. | 1852 // kNo_Hinting means avoid CoreGraphics outline dilation. |
1844 // kNormal_Hinting means CoreGraphics outline dilation is allowed. | 1853 // kNormal_Hinting means CoreGraphics outline dilation is allowed. |
1845 // If there is no lcd support, hinting (dilation) cannot be supported. | 1854 // If there is no lcd support, hinting (dilation) cannot be supported. |
1846 SkPaint::Hinting hinting = rec->getHinting(); | 1855 SkPaint::Hinting hinting = rec->getHinting(); |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2208 return NULL; | 2217 return NULL; |
2209 } | 2218 } |
2210 return create_from_dataProvider(pr); | 2219 return create_from_dataProvider(pr); |
2211 } | 2220 } |
2212 }; | 2221 }; |
2213 | 2222 |
2214 SkFontMgr* SkFontMgr::Factory() { | 2223 SkFontMgr* SkFontMgr::Factory() { |
2215 return SkNEW(SkFontMgr_Mac); | 2224 return SkNEW(SkFontMgr_Mac); |
2216 } | 2225 } |
2217 #endif | 2226 #endif |
OLD | NEW |