OLD | NEW |
1 /* | 1 /* |
2 * This file is part of the internal font implementation. | 2 * This file is part of the internal font implementation. |
3 * | 3 * |
4 * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. | 4 * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. |
5 * Copyright (c) 2010 Google Inc. All rights reserved. | 5 * Copyright (c) 2010 Google Inc. All rights reserved. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 89 matching lines...) Loading... |
100 WTF_LOG_ERROR("Instantiating SkTypeface from user font failed for font f
amily \"%s\".", [[nsFont familyName] UTF8String]); | 100 WTF_LOG_ERROR("Instantiating SkTypeface from user font failed for font f
amily \"%s\".", [[nsFont familyName] UTF8String]); |
101 return returnFont; | 101 return returnFont; |
102 } | 102 } |
103 | 103 |
104 void FontPlatformData::setupPaint(SkPaint* paint, float, const Font* font) const | 104 void FontPlatformData::setupPaint(SkPaint* paint, float, const Font* font) const |
105 { | 105 { |
106 bool shouldSmoothFonts = true; | 106 bool shouldSmoothFonts = true; |
107 bool shouldAntialias = true; | 107 bool shouldAntialias = true; |
108 | 108 |
109 if (font) { | 109 if (font) { |
110 switch (font->fontDescription().fontSmoothing()) { | 110 switch (font->getFontDescription().fontSmoothing()) { |
111 case Antialiased: | 111 case Antialiased: |
112 shouldSmoothFonts = false; | 112 shouldSmoothFonts = false; |
113 break; | 113 break; |
114 case SubpixelAntialiased: | 114 case SubpixelAntialiased: |
115 break; | 115 break; |
116 case NoSmoothing: | 116 case NoSmoothing: |
117 shouldAntialias = false; | 117 shouldAntialias = false; |
118 shouldSmoothFonts = false; | 118 shouldSmoothFonts = false; |
119 break; | 119 break; |
120 case AutoSmoothing: | 120 case AutoSmoothing: |
(...skipping 13 matching lines...) Loading... |
134 paint->setTextSize(SkFloatToScalar(ts)); | 134 paint->setTextSize(SkFloatToScalar(ts)); |
135 paint->setTypeface(typeface()); | 135 paint->setTypeface(typeface()); |
136 paint->setFakeBoldText(m_syntheticBold); | 136 paint->setFakeBoldText(m_syntheticBold); |
137 paint->setTextSkewX(m_syntheticItalic ? -SK_Scalar1 / 4 : 0); | 137 paint->setTextSkewX(m_syntheticItalic ? -SK_Scalar1 / 4 : 0); |
138 paint->setLCDRenderText(shouldSmoothFonts); | 138 paint->setLCDRenderText(shouldSmoothFonts); |
139 paint->setSubpixelText(true); | 139 paint->setSubpixelText(true); |
140 | 140 |
141 // When rendering using CoreGraphics, disable hinting when webkit-font-smoot
hing:antialiased or | 141 // When rendering using CoreGraphics, disable hinting when webkit-font-smoot
hing:antialiased or |
142 // text-rendering:geometricPrecision is used. | 142 // text-rendering:geometricPrecision is used. |
143 // See crbug.com/152304 | 143 // See crbug.com/152304 |
144 if (font && (font->fontDescription().fontSmoothing() == Antialiased || font-
>fontDescription().textRendering() == GeometricPrecision)) | 144 if (font && (font->getFontDescription().fontSmoothing() == Antialiased || fo
nt->getFontDescription().textRendering() == GeometricPrecision)) |
145 paint->setHinting(SkPaint::kNo_Hinting); | 145 paint->setHinting(SkPaint::kNo_Hinting); |
146 } | 146 } |
147 | 147 |
148 FontPlatformData::FontPlatformData(NSFont *nsFont, float size, bool syntheticBol
d, bool syntheticItalic, FontOrientation orientation) | 148 FontPlatformData::FontPlatformData(NSFont *nsFont, float size, bool syntheticBol
d, bool syntheticItalic, FontOrientation orientation) |
149 : m_textSize(size) | 149 : m_textSize(size) |
150 , m_syntheticBold(syntheticBold) | 150 , m_syntheticBold(syntheticBold) |
151 , m_syntheticItalic(syntheticItalic) | 151 , m_syntheticItalic(syntheticItalic) |
152 , m_orientation(orientation) | 152 , m_orientation(orientation) |
153 , m_isHashTableDeletedValue(false) | 153 , m_isHashTableDeletedValue(false) |
154 { | 154 { |
155 ASSERT_ARG(nsFont, nsFont); | 155 ASSERT_ARG(nsFont, nsFont); |
156 if (canLoadInProcess(nsFont)) { | 156 if (canLoadInProcess(nsFont)) { |
157 m_typeface = adoptRef(SkCreateTypefaceFromCTFont(toCTFontRef(nsFont))); | 157 m_typeface = adoptRef(SkCreateTypefaceFromCTFont(toCTFontRef(nsFont))); |
158 } else { | 158 } else { |
159 // In process loading fails for cases where third party font manager sof
tware | 159 // In process loading fails for cases where third party font manager sof
tware |
160 // registers fonts in non system locations such as /Library/Fonts | 160 // registers fonts in non system locations such as /Library/Fonts |
161 // and ~/Library Fonts, see crbug.com/72727 or crbug.com/108645. | 161 // and ~/Library Fonts, see crbug.com/72727 or crbug.com/108645. |
162 m_typeface = loadFromBrowserProcess(nsFont, size); | 162 m_typeface = loadFromBrowserProcess(nsFont, size); |
163 } | 163 } |
164 } | 164 } |
165 | 165 |
166 bool FontPlatformData::defaultUseSubpixelPositioning() | 166 bool FontPlatformData::defaultUseSubpixelPositioning() |
167 { | 167 { |
168 return FontDescription::subpixelPositioning(); | 168 return FontDescription::subpixelPositioning(); |
169 } | 169 } |
170 | 170 |
171 | 171 |
172 } // namespace blink | 172 } // namespace blink |
OLD | NEW |