aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrTessellator.h
Commit message (Collapse)AuthorAge
* make most of SkColorPriv.h privateGravatar Cary Clark2017-09-15
| | | | | | | | | | | | | created new file src/core/SkColorData.h for internal consumption. Note that many of the functions there are unused as well. Bug: skia: 6898 R: reed@google.com Change-Id: I25bfd5a9c21f53558c4ca65a77eb5d322d897c6d Reviewed-on: https://skia-review.googlesource.com/46848 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Screenspace AA tessellated GPU path rendering.Gravatar senorblanco2016-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 NOTRY=true Review-Url: https://codereview.chromium.org/1152733009
* Revert of Screenspace AA tessellated path rendering. (patchset #37 id:730001 ↵Gravatar senorblanco2016-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Screenspace AA tessellated GPU path rendering.Gravatar senorblanco2016-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Review-Url: https://codereview.chromium.org/1152733009
* Style bikeshed - remove extraneous whitespaceGravatar halcanary2016-03-29
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002 Review URL: https://codereview.chromium.org/1842753002
* GrTessellator: abstract vertex allocation into caller.Gravatar senorblanco2016-03-10
| | | | | | | | | | | | This abstracts all vertex allocation out of GrTessellator via a VertexBuffer interface. This removes all GPU-related calls from GrTessellator. It also factors vertex drawing into GrTessellatingPathRenderer::drawVertices(), and makes tessellate() (now draw() also responsible for drawing. This means the cache hit case is clearer as an early-out, and storing into cache is done in draw() as well. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1776003002 Review URL: https://codereview.chromium.org/1776003002
* Broke GrTessellatingPathRenderer's tessellator out into a separate file.Gravatar ethannicholas2016-01-07
| | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1557083002 Committed: https://skia.googlesource.com/skia/+/8b05cb8a00bdb82e100f1ba74bf4de4a504cceea Review URL: https://codereview.chromium.org/1557083002
* Revert of Broke GrTessellatingPathRenderer's tessellator out into a separate ↵Gravatar caryclark2016-01-07
| | | | | | | | | | | | | | | | | | | | file. (patchset #8 id:240001 of https://codereview.chromium.org/1557083002/ ) Reason for revert: broke valgrind bot Original issue's description: > Broke GrTessellatingPathRenderer's tessellator out into a separate file. > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1557083002 > > Committed: https://skia.googlesource.com/skia/+/8b05cb8a00bdb82e100f1ba74bf4de4a504cceea TBR=bsalomon@google.com,joshualitt@chromium.org,senorblanco@chromium.org,ethannicholas@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1570503002
* Broke GrTessellatingPathRenderer's tessellator out into a separate file.Gravatar ethannicholas2016-01-06
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1557083002 Review URL: https://codereview.chromium.org/1557083002