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

Side by Side Diff: Source/core/layout/svg/SVGTextChunkBuilder.cpp

Issue 1156053002: Move SVGTextChunkBuilder out of SVGTextLayoutEngine (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 7 months 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. All rights reserved. 2 * Copyright (C) Research In Motion Limited 2010. 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
(...skipping 13 matching lines...) Expand all
24 #include "core/layout/svg/line/SVGInlineTextBox.h" 24 #include "core/layout/svg/line/SVGInlineTextBox.h"
25 #include "core/svg/SVGLengthContext.h" 25 #include "core/svg/SVGLengthContext.h"
26 #include "core/svg/SVGTextContentElement.h" 26 #include "core/svg/SVGTextContentElement.h"
27 27
28 namespace blink { 28 namespace blink {
29 29
30 SVGTextChunkBuilder::SVGTextChunkBuilder() 30 SVGTextChunkBuilder::SVGTextChunkBuilder()
31 { 31 {
32 } 32 }
33 33
34 AffineTransform SVGTextChunkBuilder::transformationForTextBox(SVGInlineTextBox* textBox) const
35 {
36 return m_textBoxTransformations.get(textBox);
37 }
38
39 void SVGTextChunkBuilder::buildTextChunks(Vector<SVGInlineTextBox*>& lineLayoutB oxes) 34 void SVGTextChunkBuilder::buildTextChunks(Vector<SVGInlineTextBox*>& lineLayoutB oxes)
40 { 35 {
41 if (lineLayoutBoxes.isEmpty()) 36 if (lineLayoutBoxes.isEmpty())
42 return; 37 return;
43 38
44 bool foundStart = false; 39 bool foundStart = false;
45 unsigned lastChunkStartPosition = 0; 40 unsigned lastChunkStartPosition = 0;
46 unsigned boxPosition = 0; 41 unsigned boxPosition = 0;
47 unsigned boxCount = lineLayoutBoxes.size(); 42 unsigned boxCount = lineLayoutBoxes.size();
48 for (; boxPosition < boxCount; ++boxPosition) { 43 for (; boxPosition < boxCount; ++boxPosition) {
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 for (unsigned i = 0; i < fragmentCount; ++i) { 241 for (unsigned i = 0; i < fragmentCount; ++i) {
247 SVGTextFragment& fragment = fragments[i]; 242 SVGTextFragment& fragment = fragments[i];
248 243
249 if (isVerticalText) 244 if (isVerticalText)
250 fragment.y += textAnchorShift; 245 fragment.y += textAnchorShift;
251 else 246 else
252 fragment.x += textAnchorShift; 247 fragment.x += textAnchorShift;
253 } 248 }
254 } 249 }
255 250
251 void SVGTextChunkBuilder::finalizeTransformMatrices(const Vector<SVGInlineTextBo x*>& boxes) const
252 {
253 for (SVGInlineTextBox* textBox : boxes) {
254 AffineTransform textBoxTransformation = m_textBoxTransformations.get(tex tBox);
255 if (textBoxTransformation.isIdentity())
256 continue;
257
258 for (SVGTextFragment& fragment : textBox->textFragments()) {
259 ASSERT(fragment.lengthAdjustTransform.isIdentity());
260 fragment.lengthAdjustTransform = textBoxTransformation;
261 }
262 }
263 }
264
256 } 265 }
OLDNEW
« no previous file with comments | « Source/core/layout/svg/SVGTextChunkBuilder.h ('k') | Source/core/layout/svg/SVGTextLayoutEngine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698