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, 2008, 2010 Apple Inc. All rights reserved. | 4 * Copyright (C) 2006, 2008, 2010 Apple Inc. All rights reserved. |
5 * Copyright (C) 2007-2008 Torch Mobile, Inc. | 5 * Copyright (C) 2007-2008 Torch Mobile, Inc. |
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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 SmallCapsVariant, | 53 SmallCapsVariant, |
54 EmphasisMarkVariant | 54 EmphasisMarkVariant |
55 }; | 55 }; |
56 | 56 |
57 class PLATFORM_EXPORT SimpleFontData : public FontData { | 57 class PLATFORM_EXPORT SimpleFontData : public FontData { |
58 public: | 58 public: |
59 // Used to create platform fonts. | 59 // Used to create platform fonts. |
60 static PassRefPtr<SimpleFontData> create( | 60 static PassRefPtr<SimpleFontData> create( |
61 const FontPlatformData& platformData, | 61 const FontPlatformData& platformData, |
62 PassRefPtr<CustomFontData> customData = nullptr, | 62 PassRefPtr<CustomFontData> customData = nullptr, |
63 bool isTextOrientationFallback = false) { | 63 bool isTextOrientationFallback = false, |
| 64 bool subpixelAscentDescent = false) { |
64 return adoptRef(new SimpleFontData(platformData, std::move(customData), | 65 return adoptRef(new SimpleFontData(platformData, std::move(customData), |
65 isTextOrientationFallback)); | 66 isTextOrientationFallback, |
| 67 subpixelAscentDescent)); |
66 } | 68 } |
67 | 69 |
68 ~SimpleFontData() override; | 70 ~SimpleFontData() override; |
69 | 71 |
70 const FontPlatformData& platformData() const { return m_platformData; } | 72 const FontPlatformData& platformData() const { return m_platformData; } |
71 const OpenTypeVerticalData* verticalData() const { | 73 const OpenTypeVerticalData* verticalData() const { |
72 return m_verticalData.get(); | 74 return m_verticalData.get(); |
73 } | 75 } |
74 | 76 |
75 PassRefPtr<SimpleFontData> smallCapsFontData(const FontDescription&) const; | 77 PassRefPtr<SimpleFontData> smallCapsFontData(const FontDescription&) const; |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 // Implemented by the platform. | 156 // Implemented by the platform. |
155 virtual bool fillGlyphPage(GlyphPage* pageToFill, | 157 virtual bool fillGlyphPage(GlyphPage* pageToFill, |
156 unsigned offset, | 158 unsigned offset, |
157 unsigned length, | 159 unsigned length, |
158 UChar* buffer, | 160 UChar* buffer, |
159 unsigned bufferLength) const; | 161 unsigned bufferLength) const; |
160 | 162 |
161 protected: | 163 protected: |
162 SimpleFontData(const FontPlatformData&, | 164 SimpleFontData(const FontPlatformData&, |
163 PassRefPtr<CustomFontData> customData, | 165 PassRefPtr<CustomFontData> customData, |
164 bool isTextOrientationFallback = false); | 166 bool isTextOrientationFallback = false, |
| 167 bool subpixelAscentDescent = false); |
165 | 168 |
166 SimpleFontData(PassRefPtr<CustomFontData> customData, | 169 SimpleFontData(PassRefPtr<CustomFontData> customData, |
167 float fontSize, | 170 float fontSize, |
168 bool syntheticBold, | 171 bool syntheticBold, |
169 bool syntheticItalic); | 172 bool syntheticItalic); |
170 | 173 |
171 private: | 174 private: |
172 void platformInit(); | 175 void platformInit(bool subpixelAscentDescent); |
173 void platformGlyphInit(); | 176 void platformGlyphInit(); |
174 | 177 |
175 PassRefPtr<SimpleFontData> createScaledFontData(const FontDescription&, | 178 PassRefPtr<SimpleFontData> createScaledFontData(const FontDescription&, |
176 float scaleFactor) const; | 179 float scaleFactor) const; |
177 | 180 |
178 FontMetrics m_fontMetrics; | 181 FontMetrics m_fontMetrics; |
179 float m_maxCharWidth; | 182 float m_maxCharWidth; |
180 float m_avgCharWidth; | 183 float m_avgCharWidth; |
181 | 184 |
182 FontPlatformData m_platformData; | 185 FontPlatformData m_platformData; |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 | 259 |
257 m_glyphToWidthMap.setMetricsForGlyph(glyph, width); | 260 m_glyphToWidthMap.setMetricsForGlyph(glyph, width); |
258 return width; | 261 return width; |
259 #endif | 262 #endif |
260 } | 263 } |
261 | 264 |
262 DEFINE_FONT_DATA_TYPE_CASTS(SimpleFontData, false); | 265 DEFINE_FONT_DATA_TYPE_CASTS(SimpleFontData, false); |
263 | 266 |
264 } // namespace blink | 267 } // namespace blink |
265 #endif // SimpleFontData_h | 268 #endif // SimpleFontData_h |
OLD | NEW |