Fix hairline pathrenderer for Nexus-10. Switches to using additional
geometry and passing in the coverage value instead.
BUG=
Committed: http://code.google.com/p/skia/source/detail?r=10640
Committed: http://code.google.com/p/skia/source/detail?r=10707
R=bsalomon@google.com, robertphillips@google.com
Review URL: https://codereview.chromium.org/22486003
git-svn-id: http://skia.googlecode.com/svn/trunk@10769 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrAAHairLinePathRenderer.h b/src/gpu/GrAAHairLinePathRenderer.h
index 064fc18..c8a3eae 100644
--- a/src/gpu/GrAAHairLinePathRenderer.h
+++ b/src/gpu/GrAAHairLinePathRenderer.h
@@ -21,7 +21,11 @@
const SkStrokeRec& stroke,
const GrDrawTarget* target,
bool antiAlias) const SK_OVERRIDE;
-
+
+ typedef SkTArray<SkPoint, true> PtArray;
+ typedef SkTArray<int, true> IntArray;
+ typedef SkTArray<float, true> FloatArray;
+
protected:
virtual bool onDrawPath(const SkPath& path,
const SkStrokeRec& stroke,
@@ -33,13 +37,23 @@
const GrIndexBuffer* fLinesIndexBuffer,
const GrIndexBuffer* fQuadsIndexBuffer);
- bool createGeom(const SkPath& path,
- GrDrawTarget* target,
- int* lineCnt,
- int* quadCnt,
- int* conicCnt,
- GrDrawTarget::AutoReleaseGeometry* arg,
- SkRect* devBounds );
+ bool createLineGeom(const SkPath& path,
+ GrDrawTarget* target,
+ const PtArray& lines,
+ int lineCnt,
+ GrDrawTarget::AutoReleaseGeometry* arg,
+ SkRect* devBounds);
+
+ bool createBezierGeom(const SkPath& path,
+ GrDrawTarget* target,
+ const PtArray& quads,
+ int quadCnt,
+ const PtArray& conics,
+ int conicCnt,
+ const IntArray& qSubdivs,
+ const FloatArray& cWeights,
+ GrDrawTarget::AutoReleaseGeometry* arg,
+ SkRect* devBounds);
const GrIndexBuffer* fLinesIndexBuffer;
const GrIndexBuffer* fQuadsIndexBuffer;