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 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 case Antialiased: | 121 case Antialiased: |
122 shouldSmoothFonts = false; | 122 shouldSmoothFonts = false; |
123 break; | 123 break; |
124 case SubpixelAntialiased: | 124 case SubpixelAntialiased: |
125 break; | 125 break; |
126 case NoSmoothing: | 126 case NoSmoothing: |
127 shouldAntialias = false; | 127 shouldAntialias = false; |
128 shouldSmoothFonts = false; | 128 shouldSmoothFonts = false; |
129 break; | 129 break; |
130 case AutoSmoothing: | 130 case AutoSmoothing: |
131 // For the AutoSmooth case, don't do anything! Keep the default settings
. | 131 // For the AutoSmooth case, don't do anything! Keep the default |
| 132 // settings. |
132 break; | 133 break; |
133 } | 134 } |
134 } | 135 } |
135 | 136 |
136 if (LayoutTestSupport::isRunningLayoutTest()) { | 137 if (LayoutTestSupport::isRunningLayoutTest()) { |
137 shouldSmoothFonts = false; | 138 shouldSmoothFonts = false; |
138 shouldAntialias = shouldAntialias && | 139 shouldAntialias = shouldAntialias && |
139 LayoutTestSupport::isFontAntialiasingEnabledForTest(); | 140 LayoutTestSupport::isFontAntialiasingEnabledForTest(); |
140 } | 141 } |
141 | 142 |
142 paint->setAntiAlias(shouldAntialias); | 143 paint->setAntiAlias(shouldAntialias); |
143 paint->setEmbeddedBitmapText(false); | 144 paint->setEmbeddedBitmapText(false); |
144 const float ts = m_textSize >= 0 ? m_textSize : 12; | 145 const float ts = m_textSize >= 0 ? m_textSize : 12; |
145 paint->setTextSize(SkFloatToScalar(ts)); | 146 paint->setTextSize(SkFloatToScalar(ts)); |
146 paint->setTypeface(m_typeface); | 147 paint->setTypeface(m_typeface); |
147 paint->setFakeBoldText(m_syntheticBold); | 148 paint->setFakeBoldText(m_syntheticBold); |
148 paint->setTextSkewX(m_syntheticItalic ? -SK_Scalar1 / 4 : 0); | 149 paint->setTextSkewX(m_syntheticItalic ? -SK_Scalar1 / 4 : 0); |
149 paint->setLCDRenderText(shouldSmoothFonts); | 150 paint->setLCDRenderText(shouldSmoothFonts); |
150 paint->setSubpixelText(true); | 151 paint->setSubpixelText(true); |
151 | 152 |
152 // When rendering using CoreGraphics, disable hinting when webkit-font-smoothi
ng:antialiased or | 153 // When rendering using CoreGraphics, disable hinting when |
153 // text-rendering:geometricPrecision is used. | 154 // webkit-font-smoothing:antialiased or text-rendering:geometricPrecision is |
154 // See crbug.com/152304 | 155 // used. See crbug.com/152304 |
155 if (font && | 156 if (font && |
156 (font->getFontDescription().fontSmoothing() == Antialiased || | 157 (font->getFontDescription().fontSmoothing() == Antialiased || |
157 font->getFontDescription().textRendering() == GeometricPrecision)) | 158 font->getFontDescription().textRendering() == GeometricPrecision)) |
158 paint->setHinting(SkPaint::kNo_Hinting); | 159 paint->setHinting(SkPaint::kNo_Hinting); |
159 } | 160 } |
160 | 161 |
161 FontPlatformData::FontPlatformData(NSFont* nsFont, | 162 FontPlatformData::FontPlatformData(NSFont* nsFont, |
162 float size, | 163 float size, |
163 bool syntheticBold, | 164 bool syntheticBold, |
164 bool syntheticItalic, | 165 bool syntheticItalic, |
165 FontOrientation orientation) | 166 FontOrientation orientation) |
166 : m_textSize(size), | 167 : m_textSize(size), |
167 m_syntheticBold(syntheticBold), | 168 m_syntheticBold(syntheticBold), |
168 m_syntheticItalic(syntheticItalic), | 169 m_syntheticItalic(syntheticItalic), |
169 m_orientation(orientation), | 170 m_orientation(orientation), |
170 m_isHashTableDeletedValue(false) { | 171 m_isHashTableDeletedValue(false) { |
171 DCHECK(nsFont); | 172 DCHECK(nsFont); |
172 if (canLoadInProcess(nsFont)) { | 173 if (canLoadInProcess(nsFont)) { |
173 m_typeface.reset(SkCreateTypefaceFromCTFont(toCTFontRef(nsFont))); | 174 m_typeface.reset(SkCreateTypefaceFromCTFont(toCTFontRef(nsFont))); |
174 } else { | 175 } else { |
175 // In process loading fails for cases where third party font manager softwar
e | 176 // In process loading fails for cases where third party font manager |
176 // registers fonts in non system locations such as /Library/Fonts | 177 // software registers fonts in non system locations such as /Library/Fonts |
177 // and ~/Library Fonts, see crbug.com/72727 or crbug.com/108645. | 178 // and ~/Library Fonts, see crbug.com/72727 or crbug.com/108645. |
178 m_typeface = loadFromBrowserProcess(nsFont, size); | 179 m_typeface = loadFromBrowserProcess(nsFont, size); |
179 } | 180 } |
180 } | 181 } |
181 | 182 |
182 } // namespace blink | 183 } // namespace blink |
OLD | NEW |