aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrShape.h
Commit message (Collapse)AuthorAge
* Sever fOriginalPath connection whenever a GrShape becomes a simple typeGravatar Brian Osman2017-10-04
| | | | | | | | | | | | | | When drawing a round-rect, for example, we may end up in drawPath with a temporary path that was created with the rrect added. We ended up putting a genID listener on that (stack allocated) path, so we would evict cache entries immediately. This restores the old behavior, where cache entries for paths derived from simple types are never invalidated. Bug: skia:7087 Change-Id: I3eed9c3a289241bfe1e42036be3362f592256693 Reviewed-on: https://skia-review.googlesource.com/54460 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Invalidate path VBs when paths are destroyedGravatar Brian Osman2017-09-26
| | | | | | | | | | | | | | | | | | | For this to work, we need access to the "original" path, before any style was applied. To that end, add an original path to GrShape (and unit tests of that functionality). Then add a version of addGenIDChangeListener to GrShape, that propagates to the original path, and use that in tessellating path renderer. Includes unit tests of caching behavior in the PR, all of which failed without this change. Bug: skia: Change-Id: I98bb505f521e8ff07184f5c3fbd3c5fd1a22d3d5 Reviewed-on: https://skia-review.googlesource.com/50300 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Add methods for converting GrShape to filled styleGravatar Brian Salomon2017-09-01
| | | | | | | | Bug: skia: Change-Id: I6726428d1358909972adec8d63686b637ef5bb5e Reviewed-on: https://skia-review.googlesource.com/40222 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Revert "Add a GrShape::Type value for an inverted empty path""Gravatar Brian Salomon2017-08-31
| | | | | | | | | | This reverts commit 07f5b71f996ec387408ac7c85952b63bf893ec88. Bug: skia: Change-Id: I14cc34ab563028a4a24de2112575ab4516f1c7c7 Reviewed-on: https://skia-review.googlesource.com/41441 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Add a GrShape::Type value for an inverted empty path"Gravatar Brian Salomon2017-08-31
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d5a3f7f9673a152928332a38e53a5fc55f590f40. Reason for revert: GMs changed Original change's description: > Add a GrShape::Type value for an inverted empty path > > Change-Id: Ib34a608db07a2ff1d7bdfbd96867fa5ff0ac9782 > Reviewed-on: https://skia-review.googlesource.com/41540 > Reviewed-by: Robert Phillips <robertphillips@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,robertphillips@google.com Change-Id: I320dcda62bdb08163fe274325a38f59dd51b3927 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/41640 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add a GrShape::Type value for an inverted empty pathGravatar Brian Salomon2017-08-31
| | | | | | | Change-Id: Ib34a608db07a2ff1d7bdfbd96867fa5ff0ac9782 Reviewed-on: https://skia-review.googlesource.com/41540 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Make GrShape compute keys for short paths from path data instead of using ↵Gravatar bsalomon2016-09-21
| | | | | | | | the gen id. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357643002 Review-Url: https://codereview.chromium.org/2357643002
* Make lines a special case in GrShapeGravatar bsalomon2016-06-28
| | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2108523002 Committed: https://skia.googlesource.com/skia/+/c62318c748a1907649bd75382c4f4fd10533f2b3 Review-Url: https://codereview.chromium.org/2108523002
* Revert of Make lines a special case in GrShape (patchset #5 id:120001 of ↵Gravatar bsalomon2016-06-28
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2108523002/ ) Reason for revert: Assertion failures Original issue's description: > Make lines a special case in GrShape > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2108523002 > > Committed: https://skia.googlesource.com/skia/+/c62318c748a1907649bd75382c4f4fd10533f2b3 TBR=robertphillips@google.com,egdaniel@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/2109613003
* Make lines a special case in GrShapeGravatar bsalomon2016-06-28
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2108523002 Review-Url: https://codereview.chromium.org/2108523002
* Use a union inside GrShape to hold geometryGravatar bsalomon2016-06-27
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2094023002 Review-Url: https://codereview.chromium.org/2094023002
* Add some more getters to GrShape.Gravatar bsalomon2016-06-23
| | | | | | | | These will be used to deploy GrShape in GrPathRenderer subclasses. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2070643002 Review-Url: https://codereview.chromium.org/2070643002
* Canonicalize path fill types for stroked paths in GrShape.Gravatar bsalomon2016-06-23
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2085913003 Review-Url: https://codereview.chromium.org/2085913003
* Apply canonicalizations to path GrShapes.Gravatar bsalomon2016-06-21
| | | | | | | | | | | | | | | | The following canonicalizations of path-backed GrShapes are added: *convex shapes are stored with even/odd (or inv even/odd) fill. *filled paths are closed. *dashed paths ignore inverseness of the fill This will improve the results of queries about the geometry that will be added in a future change. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2067283003 Review-Url: https://codereview.chromium.org/2067283003
* Some simplifications of GrShape reductions/canonicalizationsGravatar bsalomon2016-06-20
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2064113004 Review-Url: https://codereview.chromium.org/2064113004
* Fix GrShape to preserve inverseness of rrects for strokes but not dashes.Gravatar bsalomon2016-06-14
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2051263003 Review-Url: https://codereview.chromium.org/2051263003
* Add control over whether lines are special cased in SkDashPath. Disable when ↵Gravatar bsalomon2016-06-13
| | | | | | | | called from GrShape. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2055253002 Review-Url: https://codereview.chromium.org/2055253002
* Make GrShape capable of representing inverse filled rrects.Gravatar bsalomon2016-06-10
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2056523002 Review-Url: https://codereview.chromium.org/2056523002
* Get segment masks from GrShape.Gravatar bsalomon2016-06-07
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2046753002 Review-Url: https://codereview.chromium.org/2046753002
* Make GrShape track the winding direction and starting point for rrect types.Gravatar bsalomon2016-06-06
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2042813002 Review-Url: https://codereview.chromium.org/2042813002
* Add bounds to GrShapeGravatar bsalomon2016-05-13
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1970003003 Review-Url: https://codereview.chromium.org/1970003003
* Add isEmpty() query to GrShape and improve comments.Gravatar bsalomon2016-05-11
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1971613004 Review-Url: https://codereview.chromium.org/1971613004
* Incorporate scale into GrStyle and GrShapeGravatar bsalomon2016-05-09
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1952383003 Review-Url: https://codereview.chromium.org/1952383003
* Make cap only affect the keys of GrShapes that are possibly-openGravatar bsalomon2016-05-04
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1949193002 Review-Url: https://codereview.chromium.org/1949193002
* Expand GrStyle's interface.Gravatar bsalomon2016-05-04
| | | | | | | | | | | | | | | Adds some basic getters on GrStyle as well as static const instances for fill and hairline. Adds the ability to apply a GrStyle to a SkPath to produce an output SkPath. Moves style key functions from GrShape to GrStyle. Also fixes some issues with SkPath creation when applying style to GrShapes. Adds tests that GrShape produces the correct SkPath when its GrStyle is applied. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1951613002 Review-Url: https://codereview.chromium.org/1951613002
* Detect empty (r)rects in GrShape.Gravatar bsalomon2016-04-28
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1929643002 Review-Url: https://codereview.chromium.org/1929643002
* Add support for building GrShape from SkPath and more testsGravatar bsalomon2016-04-27
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1922713002 Review URL: https://codereview.chromium.org/1922713002
* Add initial implementation of GrShape and GrStyle classes and testsGravatar bsalomon2016-04-26
| | | | | | | | | | | | | The initial intent is to use GrShape to simplify the mask blur code paths. However, I also want to use this to explore a more unified drawing code flow for different geometry types. The goal is to have a single representation for geometries+styling that attempts to always keep the geometry in the simplest form (e.g. preferring rrects to paths). It also allows for converting styling information into modified geometry and for computing consistent keys. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1822723003 Committed: https://skia.googlesource.com/skia/+/c885dacfe4625af8b0e2e5c6e8a8ae8dc2d620a8 Committed: https://skia.googlesource.com/skia/+/824e58fc6df8fc149d9675f577f7deeaba698b09 Review URL: https://codereview.chromium.org/1822723003
* Revert of Add initial implementation of GrShape and GrStyle classes and ↵Gravatar bsalomon2016-04-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | tests (patchset #11 id:280001 of https://codereview.chromium.org/1822723003/ ) Reason for revert: test failing Original issue's description: > Add initial implementation of GrShape and GrStyle classes and tests > > The initial intent is to use GrShape to simplify the mask blur code paths. However, I also want to use this to explore a more unified drawing code flow for different geometry types. The goal is to have a single representation for geometries+styling that attempts to always keep the geometry in the simplest form (e.g. preferring rrects to paths). It also allows for converting styling information into modified geometry and for computing consistent keys. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1822723003 > > Committed: https://skia.googlesource.com/skia/+/c885dacfe4625af8b0e2e5c6e8a8ae8dc2d620a8 > > Committed: https://skia.googlesource.com/skia/+/824e58fc6df8fc149d9675f577f7deeaba698b09 TBR=robertphillips@google.com,egdaniel@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/1919243002
* Add initial implementation of GrShape and GrStyle classes and testsGravatar bsalomon2016-04-26
| | | | | | | | | | | The initial intent is to use GrShape to simplify the mask blur code paths. However, I also want to use this to explore a more unified drawing code flow for different geometry types. The goal is to have a single representation for geometries+styling that attempts to always keep the geometry in the simplest form (e.g. preferring rrects to paths). It also allows for converting styling information into modified geometry and for computing consistent keys. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1822723003 Committed: https://skia.googlesource.com/skia/+/c885dacfe4625af8b0e2e5c6e8a8ae8dc2d620a8 Review URL: https://codereview.chromium.org/1822723003
* Revert of Add initial implementation of GrShape and GrStyle classes and ↵Gravatar robertphillips2016-04-26
| | | | | | | | | | | | | | | | | | | | | | | | | | tests (patchset #10 id:260001 of https://codereview.chromium.org/1822723003/ ) Reason for revert: From what I can tell, this compiles on 2015 but not 2013. Original issue's description: > Add initial implementation of GrShape and GrStyle classes and tests > > The initial intent is to use GrShape to simplify the mask blur code paths. However, I also want to use this to explore a more unified drawing code flow for different geometry types. The goal is to have a single representation for geometries+styling that attempts to always keep the geometry in the simplest form (e.g. preferring rrects to paths). It also allows for converting styling information into modified geometry and for computing consistent keys. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1822723003 > > Committed: https://skia.googlesource.com/skia/+/c885dacfe4625af8b0e2e5c6e8a8ae8dc2d620a8 TBR=egdaniel@google.com,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/1918203002
* Add initial implementation of GrShape and GrStyle classes and testsGravatar bsalomon2016-04-25
The initial intent is to use GrShape to simplify the mask blur code paths. However, I also want to use this to explore a more unified drawing code flow for different geometry types. The goal is to have a single representation for geometries+styling that attempts to always keep the geometry in the simplest form (e.g. preferring rrects to paths). It also allows for converting styling information into modified geometry and for computing consistent keys. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1822723003 Review URL: https://codereview.chromium.org/1822723003