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

Side by Side Diff: src/pathops/SkPathWriter.cpp

Issue 1037953004: add conics to path ops (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: turn off pathops specific debuggging Created 5 years, 8 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
« no previous file with comments | « src/pathops/SkPathWriter.h ('k') | src/pathops/SkReduceOrder.h » ('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 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 #include "SkPathOpsPoint.h" 7 #include "SkPathOpsPoint.h"
8 #include "SkPathWriter.h" 8 #include "SkPathWriter.h"
9 9
10 // wrap path to keep track of whether the contour is initialized and non-empty 10 // wrap path to keep track of whether the contour is initialized and non-empty
(...skipping 17 matching lines...) Expand all
28 if (callClose) { 28 if (callClose) {
29 #if DEBUG_PATH_CONSTRUCTION 29 #if DEBUG_PATH_CONSTRUCTION
30 SkDebugf("path.close();\n"); 30 SkDebugf("path.close();\n");
31 #endif 31 #endif
32 fPathPtr->close(); 32 fPathPtr->close();
33 fCloses++; 33 fCloses++;
34 } 34 }
35 init(); 35 init();
36 } 36 }
37 37
38 void SkPathWriter::conicTo(const SkPoint& pt1, const SkPoint& pt2, SkScalar weig ht) {
39 lineTo();
40 if (fEmpty && AlmostEqualUlps(fDefer[0], pt1) && AlmostEqualUlps(pt1, pt2)) {
41 deferredLine(pt2);
42 return;
43 }
44 moveTo();
45 fDefer[1] = pt2;
46 nudge();
47 fDefer[0] = fDefer[1];
48 #if DEBUG_PATH_CONSTRUCTION
49 SkDebugf("path.conicTo(%1.9g,%1.9g, %1.9g,%1.9g, %1.9g);\n",
50 pt1.fX, pt1.fY, fDefer[1].fX, fDefer[1].fY, weight);
51 #endif
52 fPathPtr->conicTo(pt1.fX, pt1.fY, fDefer[1].fX, fDefer[1].fY, weight);
53 fEmpty = false;
54 }
55
38 void SkPathWriter::cubicTo(const SkPoint& pt1, const SkPoint& pt2, const SkPoint & pt3) { 56 void SkPathWriter::cubicTo(const SkPoint& pt1, const SkPoint& pt2, const SkPoint & pt3) {
39 lineTo(); 57 lineTo();
40 if (fEmpty && AlmostEqualUlps(fDefer[0], pt1) && AlmostEqualUlps(pt1, pt2) 58 if (fEmpty && AlmostEqualUlps(fDefer[0], pt1) && AlmostEqualUlps(pt1, pt2)
41 && AlmostEqualUlps(pt2, pt3)) { 59 && AlmostEqualUlps(pt2, pt3)) {
42 deferredLine(pt3); 60 deferredLine(pt3);
43 return; 61 return;
44 } 62 }
45 moveTo(); 63 moveTo();
46 fDefer[1] = pt3; 64 fDefer[1] = pt3;
47 nudge(); 65 nudge();
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 return; 175 return;
158 } 176 }
159 fFirstPt = fDefer[0]; 177 fFirstPt = fDefer[0];
160 #if DEBUG_PATH_CONSTRUCTION 178 #if DEBUG_PATH_CONSTRUCTION
161 SkDebugf("path.moveTo(%1.9g,%1.9g);\n", fDefer[0].fX, fDefer[0].fY); 179 SkDebugf("path.moveTo(%1.9g,%1.9g);\n", fDefer[0].fX, fDefer[0].fY);
162 #endif 180 #endif
163 fPathPtr->moveTo(fDefer[0].fX, fDefer[0].fY); 181 fPathPtr->moveTo(fDefer[0].fX, fDefer[0].fY);
164 fMoved = false; 182 fMoved = false;
165 fMoves++; 183 fMoves++;
166 } 184 }
OLDNEW
« no previous file with comments | « src/pathops/SkPathWriter.h ('k') | src/pathops/SkReduceOrder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698