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

Side by Side Diff: Source/core/rendering/svg/SVGTextMetricsBuilder.h

Issue 182733010: Keep text position locally in SVGTextMetricsBuilder::measureTextRenderer (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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
« no previous file with comments | « no previous file | Source/core/rendering/svg/SVGTextMetricsBuilder.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 * 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
(...skipping 23 matching lines...) Expand all
34 struct MeasureTextData; 34 struct MeasureTextData;
35 35
36 class SVGTextMetricsBuilder { 36 class SVGTextMetricsBuilder {
37 WTF_MAKE_NONCOPYABLE(SVGTextMetricsBuilder); 37 WTF_MAKE_NONCOPYABLE(SVGTextMetricsBuilder);
38 public: 38 public:
39 SVGTextMetricsBuilder(); 39 SVGTextMetricsBuilder();
40 void measureTextRenderer(RenderSVGInlineText*); 40 void measureTextRenderer(RenderSVGInlineText*);
41 void buildMetricsAndLayoutAttributes(RenderSVGText*, RenderSVGInlineText* st opAtLeaf, SVGCharacterDataMap& allCharactersMap); 41 void buildMetricsAndLayoutAttributes(RenderSVGText*, RenderSVGInlineText* st opAtLeaf, SVGCharacterDataMap& allCharactersMap);
42 42
43 private: 43 private:
44 SVGTextMetrics computeMetricsForCurrentCharacter(); 44 SVGTextMetrics computeMetricsForCurrentCharacter(unsigned textPosition);
45 SVGTextMetrics computeMetricsForCurrentCharacterSimple(); 45 SVGTextMetrics computeMetricsForCurrentCharacterSimple(unsigned textPosition );
46 SVGTextMetrics computeMetricsForCurrentCharacterComplex(); 46 SVGTextMetrics computeMetricsForCurrentCharacterComplex(unsigned textPositio n);
47 bool currentCharacterStartsSurrogatePair() const; 47 bool currentCharacterStartsSurrogatePair(unsigned textPosition) const;
48 48
49 void initializeMeasurementWithTextRenderer(RenderSVGInlineText*); 49 void initializeMeasurementWithTextRenderer(RenderSVGInlineText*);
50 void walkTree(RenderObject*, RenderSVGInlineText* stopAtLeaf, MeasureTextDat a*); 50 void walkTree(RenderObject*, RenderSVGInlineText* stopAtLeaf, MeasureTextDat a*);
51 void measureTextRenderer(RenderSVGInlineText*, MeasureTextData*, bool proces sRenderer); 51 void measureTextRenderer(RenderSVGInlineText*, MeasureTextData*, bool proces sRenderer);
52 52
53 RenderSVGInlineText* m_text; 53 RenderSVGInlineText* m_text;
54 TextRun m_run; 54 TextRun m_run;
55 unsigned m_textPosition;
56 bool m_isComplexText; 55 bool m_isComplexText;
57 float m_totalWidth; 56 float m_totalWidth;
58 57
59 // Simple text only. 58 // Simple text only.
60 OwnPtr<WidthIterator> m_simpleWidthIterator; 59 OwnPtr<WidthIterator> m_simpleWidthIterator;
61 }; 60 };
62 61
63 } // namespace WebCore 62 } // namespace WebCore
64 63
65 #endif 64 #endif
OLDNEW
« no previous file with comments | « no previous file | Source/core/rendering/svg/SVGTextMetricsBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698