Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(550)

Side by Side Diff: Source/platform/fonts/SimpleFontData.h

Issue 617103003: Replace ENABLE_OPENTYPE_VERTICAL implementation with HarfBuzz (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@removeOpenTypeVertical
Patch Set: Additional TestExpectations tweaking for Mac Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/platform/fonts/GlyphPageTreeNode.cpp ('k') | Source/platform/fonts/SimpleFontData.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 public: 54 public:
55 // Used to create platform fonts. 55 // Used to create platform fonts.
56 static PassRefPtr<SimpleFontData> create(const FontPlatformData& platformDat a, PassRefPtr<CustomFontData> customData = nullptr, bool isTextOrientationFallba ck = false) 56 static PassRefPtr<SimpleFontData> create(const FontPlatformData& platformDat a, PassRefPtr<CustomFontData> customData = nullptr, bool isTextOrientationFallba ck = false)
57 { 57 {
58 return adoptRef(new SimpleFontData(platformData, customData, isTextOrien tationFallback)); 58 return adoptRef(new SimpleFontData(platformData, customData, isTextOrien tationFallback));
59 } 59 }
60 60
61 virtual ~SimpleFontData(); 61 virtual ~SimpleFontData();
62 62
63 const FontPlatformData& platformData() const { return m_platformData; } 63 const FontPlatformData& platformData() const { return m_platformData; }
64 #if ENABLE(OPENTYPE_VERTICAL)
65 const OpenTypeVerticalData* verticalData() const { return m_verticalData.get (); } 64 const OpenTypeVerticalData* verticalData() const { return m_verticalData.get (); }
66 #endif
67 65
68 PassRefPtr<SimpleFontData> smallCapsFontData(const FontDescription&) const; 66 PassRefPtr<SimpleFontData> smallCapsFontData(const FontDescription&) const;
69 PassRefPtr<SimpleFontData> emphasisMarkFontData(const FontDescription&) cons t; 67 PassRefPtr<SimpleFontData> emphasisMarkFontData(const FontDescription&) cons t;
70 PassRefPtr<SimpleFontData> brokenIdeographFontData() const; 68 PassRefPtr<SimpleFontData> brokenIdeographFontData() const;
71 69
72 PassRefPtr<SimpleFontData> variantFontData(const FontDescription& descriptio n, FontDataVariant variant) const 70 PassRefPtr<SimpleFontData> variantFontData(const FontDescription& descriptio n, FontDataVariant variant) const
73 { 71 {
74 switch (variant) { 72 switch (variant) {
75 case SmallCapsVariant: 73 case SmallCapsVariant:
76 return smallCapsFontData(description); 74 return smallCapsFontData(description);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 161
164 FontPlatformData m_platformData; 162 FontPlatformData m_platformData;
165 163
166 mutable OwnPtr<GlyphMetricsMap<FloatRect> > m_glyphToBoundsMap; 164 mutable OwnPtr<GlyphMetricsMap<FloatRect> > m_glyphToBoundsMap;
167 mutable GlyphMetricsMap<float> m_glyphToWidthMap; 165 mutable GlyphMetricsMap<float> m_glyphToWidthMap;
168 166
169 bool m_treatAsFixedPitch; 167 bool m_treatAsFixedPitch;
170 168
171 bool m_isTextOrientationFallback; 169 bool m_isTextOrientationFallback;
172 bool m_isBrokenIdeographFallback; 170 bool m_isBrokenIdeographFallback;
173 #if ENABLE(OPENTYPE_VERTICAL)
174 RefPtr<OpenTypeVerticalData> m_verticalData; 171 RefPtr<OpenTypeVerticalData> m_verticalData;
175 #endif
176 bool m_hasVerticalGlyphs; 172 bool m_hasVerticalGlyphs;
177 173
178 Glyph m_spaceGlyph; 174 Glyph m_spaceGlyph;
179 float m_spaceWidth; 175 float m_spaceWidth;
180 Glyph m_zeroGlyph; 176 Glyph m_zeroGlyph;
181 177
182 Glyph m_zeroWidthSpaceGlyph; 178 Glyph m_zeroWidthSpaceGlyph;
183 179
184 GlyphData m_missingGlyphData; 180 GlyphData m_missingGlyphData;
185 181
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 224
229 ALWAYS_INLINE float SimpleFontData::widthForGlyph(Glyph glyph) const 225 ALWAYS_INLINE float SimpleFontData::widthForGlyph(Glyph glyph) const
230 { 226 {
231 if (isZeroWidthSpaceGlyph(glyph)) 227 if (isZeroWidthSpaceGlyph(glyph))
232 return 0; 228 return 0;
233 229
234 float width = m_glyphToWidthMap.metricsForGlyph(glyph); 230 float width = m_glyphToWidthMap.metricsForGlyph(glyph);
235 if (width != cGlyphSizeUnknown) 231 if (width != cGlyphSizeUnknown)
236 return width; 232 return width;
237 233
238 #if ENABLE(OPENTYPE_VERTICAL) 234 width = platformWidthForGlyph(glyph);
239 if (m_verticalData)
240 width = m_verticalData->advanceHeight(this, glyph);
241 else
242 #endif
243 width = platformWidthForGlyph(glyph);
244 235
245 m_glyphToWidthMap.setMetricsForGlyph(glyph, width); 236 m_glyphToWidthMap.setMetricsForGlyph(glyph, width);
246 return width; 237 return width;
247 } 238 }
248 239
249 DEFINE_FONT_DATA_TYPE_CASTS(SimpleFontData, false); 240 DEFINE_FONT_DATA_TYPE_CASTS(SimpleFontData, false);
250 241
251 } // namespace blink 242 } // namespace blink
252 #endif // SimpleFontData_h 243 #endif // SimpleFontData_h
OLDNEW
« no previous file with comments | « Source/platform/fonts/GlyphPageTreeNode.cpp ('k') | Source/platform/fonts/SimpleFontData.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698