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

Side by Side Diff: Source/core/rendering/svg/SVGTextMetrics.cpp

Issue 656913006: Remove SVG fonts (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update tests for landing Created 6 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) Research In Motion Limited 2010-2012. All rights reserved. 2 * Copyright (C) Research In Motion Limited 2010-2012. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details. 12 * Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public License 14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to 15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA. 17 * Boston, MA 02110-1301, USA.
18 */ 18 */
19 19
20 #include "config.h" 20 #include "config.h"
21 21
22 #include "core/rendering/svg/SVGTextMetrics.h" 22 #include "core/rendering/svg/SVGTextMetrics.h"
23 23
24 #include "core/rendering/svg/RenderSVGInlineText.h" 24 #include "core/rendering/svg/RenderSVGInlineText.h"
25 #include "core/rendering/svg/SVGTextRunRenderingContext.h"
26 25
27 namespace blink { 26 namespace blink {
28 27
29 SVGTextMetrics::SVGTextMetrics() 28 SVGTextMetrics::SVGTextMetrics()
30 : m_width(0) 29 : m_width(0)
31 , m_height(0) 30 , m_height(0)
32 , m_length(0) 31 , m_length(0)
33 , m_glyph(0) 32 , m_glyph(0)
34 { 33 {
35 } 34 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 , textDirection 78 , textDirection
80 , isOverride(style->unicodeBidi()) /* directionalOverride */); 79 , isOverride(style->unicodeBidi()) /* directionalOverride */);
81 80
82 if (length) { 81 if (length) {
83 if (text->is8Bit()) 82 if (text->is8Bit())
84 run.setText(text->characters8() + position, length); 83 run.setText(text->characters8() + position, length);
85 else 84 else
86 run.setText(text->characters16() + position, length); 85 run.setText(text->characters16() + position, length);
87 } 86 }
88 87
89 if (textRunNeedsRenderingContext(style->font()))
90 run.setRenderingContext(SVGTextRunRenderingContext::create(text));
91
92 // We handle letter & word spacing ourselves. 88 // We handle letter & word spacing ourselves.
93 run.disableSpacing(); 89 run.disableSpacing();
94 90
95 // Propagate the maximum length of the characters buffer to the TextRun, eve n when we're only processing a substring. 91 // Propagate the maximum length of the characters buffer to the TextRun, eve n when we're only processing a substring.
96 run.setCharactersLength(text->textLength() - position); 92 run.setCharactersLength(text->textLength() - position);
97 ASSERT(run.charactersLength() >= run.length()); 93 ASSERT(run.charactersLength() >= run.length());
98 return run; 94 return run;
99 } 95 }
100 96
101 SVGTextMetrics SVGTextMetrics::measureCharacterRange(RenderSVGInlineText* text, unsigned position, unsigned length, TextDirection textDirection) 97 SVGTextMetrics SVGTextMetrics::measureCharacterRange(RenderSVGInlineText* text, unsigned position, unsigned length, TextDirection textDirection)
102 { 98 {
103 ASSERT(text); 99 ASSERT(text);
104 return SVGTextMetrics(text, constructTextRun(text, position, length, textDir ection)); 100 return SVGTextMetrics(text, constructTextRun(text, position, length, textDir ection));
105 } 101 }
106 102
107 SVGTextMetrics SVGTextMetrics::measureCharacterRange(RenderSVGInlineText* text, unsigned position, unsigned length) 103 SVGTextMetrics SVGTextMetrics::measureCharacterRange(RenderSVGInlineText* text, unsigned position, unsigned length)
108 { 104 {
109 ASSERT(text); 105 ASSERT(text);
110 return SVGTextMetrics(text, constructTextRun(text, position, length)); 106 return SVGTextMetrics(text, constructTextRun(text, position, length));
111 } 107 }
112 108
113 SVGTextMetrics::SVGTextMetrics(RenderSVGInlineText* text, unsigned position, uns igned length, float width, Glyph glyphNameGlyphId) 109 SVGTextMetrics::SVGTextMetrics(RenderSVGInlineText* text, unsigned position, uns igned length, float width, Glyph glyphNameGlyphId)
114 { 110 {
115 ASSERT(text); 111 ASSERT(text);
116 112
117 bool needsContext = textRunNeedsRenderingContext(text->style()->font());
118 float scalingFactor = text->scalingFactor(); 113 float scalingFactor = text->scalingFactor();
119 ASSERT(scalingFactor); 114 ASSERT(scalingFactor);
120 115
121 m_width = width / scalingFactor; 116 m_width = width / scalingFactor;
122 m_height = text->scaledFont().fontMetrics().floatHeight() / scalingFactor; 117 m_height = text->scaledFont().fontMetrics().floatHeight() / scalingFactor;
123 m_glyph = needsContext ? glyphNameGlyphId : 0; 118 m_glyph = 0;
124 119
125 m_length = length; 120 m_length = length;
126 } 121 }
127 122
128 } 123 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698