aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrTessellator.h
diff options
context:
space:
mode:
authorGravatar senorblanco <senorblanco@chromium.org>2016-08-31 09:31:37 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-08-31 09:31:37 -0700
commit682580fb204b72925a48d1d6fe8c9c30fa53bb67 (patch)
tree9b52e8f1d7b8bea59a8f5aa3ab48d8ad19493d77 /src/gpu/GrTessellator.h
parent982e7c502f4499044a4bff8420cdddddce0ce357 (diff)
Revert of Screenspace AA tessellated path rendering. (patchset #37 id:730001 of https://codereview.chromium.org/1152733009/ )
Reason for revert: Causing asserts in GLPrograms test on Mac. Original issue's description: > Screenspace AA tessellated GPU path rendering. > > This is an approach to antialiased concave path rendering > on the GPU without using MSAA. It uses GrTessellator to > extract boundary contours from the given path, then > inflates by half a pixel in screen space each direction, > then renders the result with zero alpha on the outer > contour and one alpha on in the inner contour. This > requires two passes through the tessellation code: one > to extract the boundaries, then one to tessellate the > result. > > This gives approximately a 3X improvement on the IE > chalkboard demo in non-MSAA mode, a 30-40% improvement > on MotionMark's "Fill Paths", and a ~3X improvement on > MotionMark's "canvas arcTo segments". > > It works best for large, simple paths, so there's currently > a limit of 10 verbs in the onCanDrawPath() check. This > dovetails nicely with the distance field path renderer's > support for small, detailed (and cached) paths. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1152733009 > > Committed: https://skia.googlesource.com/skia/+/9992bdef8ae97b3e5b109d278ccfab84c66bcbf0 TBR=bsalomon@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2299683002
Diffstat (limited to 'src/gpu/GrTessellator.h')
-rw-r--r--src/gpu/GrTessellator.h12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/gpu/GrTessellator.h b/src/gpu/GrTessellator.h
index dd92015cc2..7cc4311aa5 100644
--- a/src/gpu/GrTessellator.h
+++ b/src/gpu/GrTessellator.h
@@ -8,7 +8,6 @@
#ifndef GrTessellator_DEFINED
#define GrTessellator_DEFINED
-#include "GrColor.h"
#include "SkPoint.h"
class SkPath;
@@ -24,13 +23,9 @@ namespace GrTessellator {
class VertexAllocator {
public:
- VertexAllocator(size_t stride) : fStride(stride) {}
virtual ~VertexAllocator() {}
- virtual void* lock(int vertexCount) = 0;
+ virtual SkPoint* lock(int vertexCount) = 0;
virtual void unlock(int actualCount) = 0;
- size_t stride() const { return fStride; }
-private:
- size_t fStride;
};
struct WindingVertex {
@@ -45,9 +40,8 @@ struct WindingVertex {
int PathToVertices(const SkPath& path, SkScalar tolerance, const SkRect& clipBounds,
WindingVertex** verts);
-int PathToTriangles(const SkPath& path, SkScalar tolerance, const SkRect& clipBounds,
- VertexAllocator*, bool antialias, const GrColor& color,
- bool canTweakAlphaForCoverage, bool *isLinear);
+int PathToTriangles(const SkPath& path, SkScalar tolerance, const SkRect& clipBounds,
+ VertexAllocator*, bool *isLinear);
}
#endif