aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/degeneratesegments.cpp
diff options
context:
space:
mode:
authorGravatar schenney@chromium.org <schenney@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-01-04 21:05:51 +0000
committerGravatar schenney@chromium.org <schenney@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-01-04 21:05:51 +0000
commit6630d8d8ea7a897a18e3d950bab9fa40f065804a (patch)
treeca6f155b195359afd5691e1dde70c60010d0a822 /gm/degeneratesegments.cpp
parentc6f2e7da31d60e48a420b6de520361d966ea278d (diff)
Add the ability to iterate through a path without modification. This change is
required by WebKit SVG in order to correctly draw markers and endcaps. BUG=415 TEST=TestPath in the unit tests Review URL: http://codereview.appspot.com/5505097 git-svn-id: http://skia.googlecode.com/svn/trunk@2962 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm/degeneratesegments.cpp')
-rw-r--r--gm/degeneratesegments.cpp96
1 files changed, 48 insertions, 48 deletions
diff --git a/gm/degeneratesegments.cpp b/gm/degeneratesegments.cpp
index 99dd4add61..63d9dba651 100644
--- a/gm/degeneratesegments.cpp
+++ b/gm/degeneratesegments.cpp
@@ -31,8 +31,8 @@ protected:
typedef SkPoint (*AddSegmentFunc)(SkPath&, SkPoint&);
// We need to use explicit commands here, instead of addPath, because we
- // do not want the SkPath::Iter used in addPath to remove the degenerate
- // segments before we send th epath off for drawing.
+ // do not want the moveTo that is added at the beginning of a path to
+ // appear in the appended path.
static SkPoint AddMove(SkPath& path, SkPoint& startPt) {
SkPoint moveToPt = startPt + SkPoint::Make(0, 10*SK_Scalar1);
path.moveTo(moveToPt);
@@ -207,52 +207,52 @@ protected:
}
virtual void onDraw(SkCanvas* canvas) {
- static const AddSegmentFunc gSegmentFunctions[] = {
- AddMove,
- AddMoveClose,
- AddDegenLine,
- AddMoveDegenLine,
- AddMoveDegenLineClose,
- AddDegenQuad,
- AddMoveDegenQuad,
- AddMoveDegenQuadClose,
- AddDegenCubic,
- AddMoveDegenCubic,
- AddMoveDegenCubicClose,
- AddClose,
- AddLine,
- AddMoveLine,
- AddMoveLineClose,
- AddQuad,
- AddMoveQuad,
- AddMoveQuadClose,
- AddCubic,
- AddMoveCubic,
- AddMoveCubicClose
- };
- static const char* gSegmentNames[] = {
- "Move",
- "MoveClose",
- "DegenLine",
- "MoveDegenLine",
- "MoveDegenLineClose",
- "DegenQuad",
- "MoveDegenQuad",
- "MoveDegenQuadClose",
- "DegenCubic",
- "MoveDegenCubic",
- "MoveDegenCubicClose",
- "Close",
- "Line",
- "MoveLine",
- "MoveLineClose",
- "Quad",
- "MoveQuad",
- "MoveQuadClose",
- "Cubic",
- "MoveCubic",
- "MoveCubicClose"
- };
+ static const AddSegmentFunc gSegmentFunctions[] = {
+ AddMove,
+ AddMoveClose,
+ AddDegenLine,
+ AddMoveDegenLine,
+ AddMoveDegenLineClose,
+ AddDegenQuad,
+ AddMoveDegenQuad,
+ AddMoveDegenQuadClose,
+ AddDegenCubic,
+ AddMoveDegenCubic,
+ AddMoveDegenCubicClose,
+ AddClose,
+ AddLine,
+ AddMoveLine,
+ AddMoveLineClose,
+ AddQuad,
+ AddMoveQuad,
+ AddMoveQuadClose,
+ AddCubic,
+ AddMoveCubic,
+ AddMoveCubicClose
+ };
+ static const char* gSegmentNames[] = {
+ "Move",
+ "MoveClose",
+ "DegenLine",
+ "MoveDegenLine",
+ "MoveDegenLineClose",
+ "DegenQuad",
+ "MoveDegenQuad",
+ "MoveDegenQuadClose",
+ "DegenCubic",
+ "MoveDegenCubic",
+ "MoveDegenCubicClose",
+ "Close",
+ "Line",
+ "MoveLine",
+ "MoveLineClose",
+ "Quad",
+ "MoveQuad",
+ "MoveQuadClose",
+ "Cubic",
+ "MoveCubic",
+ "MoveCubicClose"
+ };
struct FillAndName {
SkPath::FillType fFill;