 Chromium Code Reviews
 Chromium Code Reviews Issue 1158803002:
  Added GrAAFlatteningConvexPathRenderer  (Closed) 
  Base URL: https://skia.googlesource.com/skia.git@master
    
  
    Issue 1158803002:
  Added GrAAFlatteningConvexPathRenderer  (Closed) 
  Base URL: https://skia.googlesource.com/skia.git@master| Index: src/gpu/GrAAConvexTessellator.h | 
| diff --git a/src/gpu/GrAAConvexTessellator.h b/src/gpu/GrAAConvexTessellator.h | 
| index 707995fadd4b80e3e85cdbf73be61fdfb29a220c..ac74a72b60ea083917ba3386297560732fc26fdc 100644 | 
| --- a/src/gpu/GrAAConvexTessellator.h | 
| +++ b/src/gpu/GrAAConvexTessellator.h | 
| @@ -48,7 +48,7 @@ public: | 
| int index(int index) const { return fIndices[index]; } | 
| SkScalar depth(int index) const {return fDepths[index]; } | 
| -#if GR_AA_CONVEX_TESSELLATOR_VIZ | 
| +#if GR_AA__CONVEX_TESSELLATOR_VIZ | 
| 
bsalomon
2015/05/29 15:07:56
why the extra underscore?
 
ethannicholas
2015/06/02 20:20:41
Screwed up a search and repla... errr.... I mean..
 | 
| void draw(SkCanvas* canvas) const; | 
| #endif | 
| @@ -140,7 +140,7 @@ private: | 
| int index(int index) const { return fPts[index].fIndex; } | 
| int origEdgeID(int index) const { return fPts[index].fOrigEdgeId; } | 
| - #if GR_AA_CONVEX_TESSELLATOR_VIZ | 
| + #if GR_AA__CONVEX_TESSELLATOR_VIZ | 
| 
bsalomon
2015/05/29 15:07:56
and here?
 | 
| void draw(SkCanvas* canvas, const GrAAConvexTessellator& tess) const; | 
| #endif | 
| @@ -165,7 +165,7 @@ private: | 
| // Movable points are those that can be slid along their bisector. | 
| // Basically, a point is immovable if it is part of the original | 
| // polygon or it results from the fusing of two bisectors. | 
| - int addPt(const SkPoint& pt, SkScalar depth, bool movable); | 
| + int addPt(const SkPoint& pt, SkScalar depth, bool movable, bool isCurve); | 
| void popLastPt(); | 
| void popFirstPtShuffle(); | 
| @@ -185,6 +185,14 @@ private: | 
| int edgeIdx, SkScalar desiredDepth, | 
| SkPoint* result) const; | 
| + void lineTo(const SkMatrix& m, SkPoint p, bool isCurve); | 
| + | 
| + void quadTo(const SkMatrix& m, SkPoint* pts); | 
| 
bsalomon
2015/05/29 15:07:56
pts[2] (and similar for below two funcs)?
 | 
| + | 
| + void cubicTo(const SkMatrix& m, SkPoint* pts); | 
| + | 
| + void conicTo(const SkMatrix& m, SkPoint* pts, SkScalar w); | 
| + | 
| void terminate(const Ring& lastRing); | 
| // return false on failure/degenerate path | 
| @@ -217,13 +225,18 @@ private: | 
| // The inward facing bisector at each point in the original polygon. Only | 
| // needed for exterior ring creation and then handed off to the initial ring. | 
| SkTDArray<SkVector> fBisectors; | 
| + | 
| + // Tracks whether a given point is interior to a curve. Such points are | 
| + // assumed to have shallow curvature. | 
| + SkTDArray<bool> fIsCurve; | 
| + | 
| SkPoint::Side fSide; // winding of the original polygon | 
| // The triangulation of the points | 
| SkTDArray<int> fIndices; | 
| Ring fInitialRing; | 
| -#if GR_AA_CONVEX_TESSELLATOR_VIZ | 
| +#if GR_AA__CONVEX_TESSELLATOR_VIZ | 
| 
bsalomon
2015/05/29 15:07:56
and here
 | 
| // When visualizing save all the rings | 
| SkTDArray<Ring*> fRings; | 
| #else | 
| @@ -233,6 +246,8 @@ private: | 
| SkScalar fTargetDepth; | 
| + SkTDArray<SkPoint> fPointBuffer; | 
| + | 
| // If some goes wrong with the inset computation the tessellator will | 
| // truncate the creation of the inset polygon. In this case the depth | 
| // check will complain. |