| 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...) Expand 10 before | Expand all | Expand 10 after 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...) Expand all 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 |