diff options
author | senorblanco <senorblanco@chromium.org> | 2016-08-31 09:31:37 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-31 09:31:37 -0700 |
commit | 682580fb204b72925a48d1d6fe8c9c30fa53bb67 (patch) | |
tree | 9b52e8f1d7b8bea59a8f5aa3ab48d8ad19493d77 /src/gpu/GrTessellator.h | |
parent | 982e7c502f4499044a4bff8420cdddddce0ce357 (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.h | 12 |
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 |