Commit Graph

35 Commits

Author SHA1 Message Date
bsalomon
487f8d385b Consolidate special case shape transformation logic in GrShapeTest.
Enable all tests on all geometry types.

Add conversion of fill+miter-stroke->fill for rect geometries in GrShape.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2157013003

Review-Url: https://codereview.chromium.org/2157013003
2016-07-20 07:15:44 -07:00
bsalomon
0ae36a2ceb In GrShape detect that stroked axis-aligned lines are rrects.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2151313002

Review-Url: https://codereview.chromium.org/2151313002
2016-07-18 07:31:13 -07:00
bsalomon
0a0f67ecec 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
Review-Url: https://codereview.chromium.org/2108523002
2016-06-28 11:56:42 -07:00
bsalomon
635df95a9a Revert of Make lines a special case in GrShape (patchset #5 id:120001 of 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
2016-06-28 11:18:47 -07:00
bsalomon
c62318c748 Make lines a special case in GrShape
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2108523002

Review-Url: https://codereview.chromium.org/2108523002
2016-06-28 10:41:35 -07:00
bsalomon
425c27fab9 Add some more getters to GrShape.
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
2016-06-23 13:18:45 -07:00
bsalomon
ac5fcea9c3 Fix Rob's nits from https://codereview.chromium.org/2085913003
TBR=robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2087393003

Review-Url: https://codereview.chromium.org/2087393003
2016-06-23 12:23:07 -07:00
bsalomon
a4817afe50 Canonicalize path fill types for stroked paths in GrShape.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2085913003

Review-Url: https://codereview.chromium.org/2085913003
2016-06-23 11:48:26 -07:00
bsalomon
93f66bc3af Apply canonicalizations to path GrShapes.
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
2016-06-21 08:35:49 -07:00
bsalomon
1b28c1adc1 Some simplifications of GrShape reductions/canonicalizations
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2064113004

Review-Url: https://codereview.chromium.org/2064113004
2016-06-20 12:28:17 -07:00
bsalomon
fd32df716c Fix GrShape to preserve inverseness of rrects for strokes but not dashes.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2051263003

Review-Url: https://codereview.chromium.org/2051263003
2016-06-14 14:37:21 -07:00
bsalomon
398e3f4b9f Add control over whether lines are special cased in SkDashPath. Disable when called from GrShape.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2055253002

Review-Url: https://codereview.chromium.org/2055253002
2016-06-13 10:22:48 -07:00
bsalomon
cadb5a24c2 Make large array of GrShapes in test code heap allocated
TBR=mtklein@chormium.org
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2058343002

Review-Url: https://codereview.chromium.org/2058343002
2016-06-10 18:28:06 -07:00
bsalomon
7049396b65 Make GrShape capable of representing inverse filled rrects.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2056523002

Review-Url: https://codereview.chromium.org/2056523002
2016-06-10 08:05:14 -07:00
bsalomon
a058786ae3 Make SkDashPathEffect fail for stroke+fill style (in addition to fill style)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2048183002

Review-Url: https://codereview.chromium.org/2048183002
2016-06-09 06:03:38 -07:00
bsalomon
d67238421d Make GrShape use the original path when path effect fails.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2044793002

Review-Url: https://codereview.chromium.org/2044793002
2016-06-07 12:20:15 -07:00
bsalomon
06115ee430 Get segment masks from GrShape.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2046753002

Review-Url: https://codereview.chromium.org/2046753002
2016-06-07 06:28:51 -07:00
bsalomon
ee295645bd Make GrShape track the winding direction and starting point for rrect types.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2042813002

Review-Url: https://codereview.chromium.org/2042813002
2016-06-06 14:01:25 -07:00
bsalomon
9fb420393e Add bounds to GrShape
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
2016-05-13 09:23:38 -07:00
bsalomon
7c73a53894 Add isEmpty() query to GrShape and improve comments.
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
2016-05-11 15:15:56 -07:00
bsalomon
97fd2d42b9 Incorporate scale into GrStyle and GrShape
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
2016-05-09 13:02:01 -07:00
bsalomon
1a0b9ed7d8 Fix issue where GrStyle::applyToPath exited before applying stroke
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1954123002

Review-Url: https://codereview.chromium.org/1954123002
2016-05-06 11:07:04 -07:00
bsalomon
f0cf355b55 Stop banning stroke-and-fill for GrStyle and add tests
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1949943003

Review-Url: https://codereview.chromium.org/1949943003
2016-05-05 08:28:30 -07:00
bsalomon
06077565b1 Make cap only affect the keys of GrShapes that are possibly-open
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
2016-05-04 13:50:29 -07:00
bsalomon
9ad5d7c84b Add some more testing around hairline GrShapes
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1949903002

Review-Url: https://codereview.chromium.org/1949903002
2016-05-04 08:44:15 -07:00
bsalomon
fb08327e59 Expand GrStyle's interface.
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
2016-05-04 08:27:42 -07:00
bsalomon
5e410b4a68 Detect empty (r)rects in GrShape.
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
2016-04-28 09:30:46 -07:00
bsalomon
4eeccc9de7 Add tests for volatile paths to GrShapeTest
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1923403003

Review-Url: https://codereview.chromium.org/1923403003
2016-04-27 13:30:25 -07:00
bsalomon
409ed73237 Add tests for empty GrShapes.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1927673002

Review-Url: https://codereview.chromium.org/1927673002
2016-04-27 12:36:02 -07:00
bsalomon
72dc51c288 Add support for building GrShape from SkPath and more tests
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
2016-04-27 06:46:23 -07:00
bsalomon
47cc769118 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

Review URL: https://codereview.chromium.org/1822723003
2016-04-26 12:56:00 -07:00
bsalomon
82ecc5773f Revert of Add initial implementation of GrShape and GrStyle classes and 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
2016-04-26 08:41:47 -07:00
bsalomon
824e58fc6d 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

Review URL: https://codereview.chromium.org/1822723003
2016-04-26 06:53:45 -07:00
robertphillips
83af0a63b1 Revert of Add initial implementation of GrShape and GrStyle classes and 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
2016-04-26 05:07:23 -07:00
bsalomon
c885dacfe4 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

Review URL: https://codereview.chromium.org/1822723003
2016-04-25 13:37:22 -07:00