Commit Graph

987 Commits

Author SHA1 Message Date
Chris Dalton
7ca48cc1b2 Map the 's' key in CanvasKit viewer to force animation
We force animation in order to measure fps.

HINT: Launch chrome with --disable-frame-rate-limit and
--disable-gpu-vsync in order to measure frame rates above 60.
Change-Id: I08fae8fc2eb65930f81110999a64eed9df9c704f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292994
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-06-01 20:38:39 +00:00
Mike Reed
e37d578796 Revert "gms for SkParagraph"
This reverts commit 7351f8c560.

Reason for revert: breaking...
   flutter android docker
   win shared

Original change's description:
> gms for SkParagraph
> 
> Change-Id: If84de6242a1048ff9f29264ac6afe060ce3856eb
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291696
> Commit-Queue: Ben Wagner <bungeman@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Julia Lavrova <jlavrova@google.com>

TBR=djsollen@google.com,bungeman@google.com,scroggo@google.com,fmalita@google.com,reed@google.com,jlavrova@google.com

Change-Id: I97df26b3406b0814de378393391e66ef65d84429
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/293347
Reviewed-by: Mike Reed <reed@google.com>
2020-06-01 20:14:44 +00:00
Florin Malita
28cdc972f6 [skottie] Pull SkottieProperty.h from Skotti.h
Forward declaration for PropertyObserver should work, but some G3
builds/configs are barfing...

TBR=

Change-Id: I47fc8d24d4e706df470c010c8fce13f07d726fd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/293340
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-06-01 20:05:36 +00:00
Mike Reed
7351f8c560 gms for SkParagraph
Change-Id: If84de6242a1048ff9f29264ac6afe060ce3856eb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291696
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2020-06-01 19:46:40 +00:00
Nathaniel Nifong
3392ebe974 Additional tests covering parts of path interface
Change-Id: I28fa842a56c3ff6464b6f4175baee1e6f1d99994
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292970
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-06-01 18:37:03 +00:00
Kevin Lubick
6aa3869f76 [canvaskit] Use scratch arrays for colors and matrices
At startup, we allocate a few scratch arrays and then use those
instead of having to malloc and free a bunch of arrays during
runtime.

The benchmark that was added is a bit noisy (probably because
of the garbage collection going on from the created Float32Arrays),
but a few percent faster.

We also don't set the paragraph background/foreground colors to
transparent because we check them being falsey before sending them
over the wire. I noticed that if foreground was transparent black,
no text shows up at all, which was unexpected.

Change-Id: I9f3a590a122d7de222cb5f58ea40e86b2d261c96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292685
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-06-01 15:47:07 +00:00
Ethan Nicholas
7c969f26bc Revert "Omit dead SkSL functions"
This reverts commit 97fe0cbed2.

Reason for revert: ASAN failures

Original change's description:
> Omit dead SkSL functions
> 
> Now that SkSL inlines functions, dead functions are very common. This
> change causes them to be omitted from the final output.
> 
> Change-Id: Ie466a3f748812eff1a368498365c89d73ab0b7be
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292684
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

TBR=bsalomon@google.com,brianosman@google.com,ethannicholas@google.com

Change-Id: Id20c5be67dd574d30d6f978ba610e43aa5018416
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/293241
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-06-01 15:00:00 +00:00
Ethan Nicholas
97fe0cbed2 Omit dead SkSL functions
Now that SkSL inlines functions, dead functions are very common. This
change causes them to be omitted from the final output.

Change-Id: Ie466a3f748812eff1a368498365c89d73ab0b7be
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292684
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-06-01 14:27:38 +00:00
Bryce Thomas
9331ca0704 CanvasKit: implement client-supplied dirty rect support for software surface.
Surface clients can now specify a dirty rect that will constrain HTML canvas
repaints to a particular region.

Bug: NONE
Change-Id: Ia77d6e864c061297bfc82cfa09030523052ee0e1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/293056
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-06-01 12:05:08 +00:00
Ben Wagner
5b8dd73546 Hide ICU C++ API from Skia users.
Parts of third_party need the C++ API so hide it from Skia users as
needed to prevent re-introduction.

This also avoids the ICU version renaming / name mangling when building
our own test version of ICU. This makes life in an editor and debugger
much easier.

Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292854
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: Id636fbf9e750fe72a4ace8a59fb9acac839a07c4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292967
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-05-29 21:43:19 +00:00
Ben Wagner
2837f24a16 Revert "Hide ICU C++ API from Skia users."
This reverts commit 5ef0d2f6c0.

Reason for revert: Sharing a build with flutter is crazy pants.

Original change's description:
> Hide ICU C++ API from Skia users.
> 
> Parts of third_party need the C++ API so hide it from Skia users as
> needed to prevent re-introduction.
> 
> This also avoids the ICU version renaming / name mangling when building
> our own test version of ICU. This makes life in an editor and debugger
> much easier.
> 
> Change-Id: I8fb1903e2b31e9dd04efa22173a03115d629c232
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292854
> Reviewed-by: Julia Lavrova <jlavrova@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>

TBR=bungeman@google.com,reed@google.com,jlavrova@google.com

Change-Id: If238225b20a6b73064e3b16c5e0bdc89760e522d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292966
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-05-29 19:08:04 +00:00
Ben Wagner
def1df3f11 Create CTTypesetter without Options.
Calling the 'AndOptions' version with nullptr for the options on 10.13
is reported to crash. Since the options are unused, use the version of
the call without them.

Bug: skia:10282
Change-Id: I6674b0230f403744c9dd471245eeb3a78c2a4417
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292727
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-29 18:57:26 +00:00
Ben Wagner
5ef0d2f6c0 Hide ICU C++ API from Skia users.
Parts of third_party need the C++ API so hide it from Skia users as
needed to prevent re-introduction.

This also avoids the ICU version renaming / name mangling when building
our own test version of ICU. This makes life in an editor and debugger
much easier.

Change-Id: I8fb1903e2b31e9dd04efa22173a03115d629c232
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292854
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-29 18:04:46 +00:00
Chris Dalton
0d0758e42a Wire up mouse and keyboard events in CanvasKit viewer
Change-Id: I10b57f18edb516b48be3ba16f98a540370ec689f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292793
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-05-29 17:24:30 +00:00
Chris Dalton
a3908ef970 Merge PathText samples into one, with different modes
Change-Id: I640cd522c1c83f7534c86ebfd6a6f3904fb90206
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292734
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-05-29 16:35:25 +00:00
Nathaniel Nifong
59d299ba3f Record code coverage in canvaskit tests, increase coverage
Fix a bug with paragraph text direction that an incorrect unit test wasn't detecting.

Change-Id: I73418ea8a90da097078d93ddf8692a55488f672f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292366
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-05-29 15:53:35 +00:00
Ben Wagner
19ef693adc Remove last unistr.h include.
No longer used, but managed to avoid previous capture by being included
in quotes instead of brackets. Do some iwyu while at it.

Change-Id: I838474132995ca130c93f94beaab606828504309
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292733
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-29 15:04:49 +00:00
Nathaniel Nifong
07821def6c Performance test of color conversion
Change-Id: I77261450d67746da0ba94f02a23615b7c9a634e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292563
Reviewed-by: Elliot Evans <elliotevans@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-05-29 15:04:48 +00:00
Ben Wagner
b985b4b67f Remove use of ICU C++ API from SkParagraph.
This is mostly about consolidating and removing use of
icu::UnicodeString. It was used mostly as an intermediary for
conversion, and the new conversions should make one fewer copy of the
data.

Change-Id: I1d0e5f0dc21c47ed7c80f456b9129c4c9a36b09a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292718
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-28 22:07:40 +00:00
Chris Dalton
3e7d511de3 Add svg parsing to CanvasKit viewer.html
Also enables ccpr and makes flags parsing more robust.

Change-Id: Ia98467403de87423a63167681b2ee635b0fa593a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292690
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-05-28 20:39:43 +00:00
Kevin Lubick
cf11892ab2 [canvaskit] Do not automatically free things provided by Malloc.
If ever CanvasKit accepts an array as a parameter, if the array
provided was produced by Malloc, CanvasKit will use the pointer
of that array and not free it after.

Change-Id: I4806a48e5e030edd787944f652984ea3516b3022
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292561
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-05-28 19:45:52 +00:00
Ben Wagner
4ca7a812f8 Remove use of brkiter from SkParagraph.
Most of the lines here are the result of running iwyu to get the right
includes after removing all the offending includes. A few constants need
to be had from the C api instead of the C++ API to make this work. The
SkParagraphTest and SkParagraphImpl are still using C++ API with
icu::UnicodeString, which will be cleaned up later.

Change-Id: I0f7f630d55bc600eaa8700c8b48758ee6af2c3fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292676
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-28 18:24:44 +00:00
Chris Dalton
f3242c44cf Add an skp loader to CanvasKit viewer
The new loader works by checking for a "slide" flag, and if it ends in
".skp", then we treat the slide name as a URL and try to pull it in with
an HTTP request and parse it as an SkPicture.

It is the user's responsibility to copy or link skps into their
canvaskit server directory.

Change-Id: Iaafa84300d36d2d5a0bb29c47761ec67076c0f50
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292204
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2020-05-28 17:29:28 +00:00
Chris Dalton
e6778f330d Add an msaa flag to CanvasKit viewer
Adds a simple system for the user to supply flags via the location hash.

  e.g., "http://.../viewer.html#msaa:8"

Implements the msaa flag by rendering to a multisampled offscreen
framebuffer, then blitting it to the main canvas framebuffer.

Change-Id: I7f2b8b769e491f2169fd6b967a72a8ea9c8ffb8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292199
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-05-28 16:22:18 +00:00
Ben Wagner
af6de9f841 Condition SkLoadICU on SK_USING_THIRD_PARTY_ICU.
This is how SkShaper_harfbuzz currently avoids using SkLoadICU when it
may not exist.

Change-Id: I4ff9a6dc4297db97481cce1de53da9921d47a4ad
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292566
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Weston Tracey <westont@google.com>
2020-05-28 16:11:42 +00:00
Ben Wagner
c087221875 Pre-allocate space for single run fRunsInVisualOrder.
Most lines have one run in them, so avoid extra allocations in this
case. As a side effect, mark TextLine as moveable but not mem-movable.

The TextLine class used to be used as a mem-movable class, but the
addition of an SkSTArray made it non-mem-movable. Correct this and make
TextLine moveable and document its non-copyable nature. This avoids
ASAN use after free issues.

Change-Id: Icf45a464004e9f270ec46e1c2ddcf29fd356c90a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292441
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-28 14:58:38 +00:00
Ben Wagner
bbc6f0a82d Initialize ICU before use in SkParagraph.
ICU needs to be initialized, at least in the Windows build where the
data isn't statically linked. This should be done internally, and not as
an external requirement.

Change-Id: I796b67c6f0a84c75d1557631ff38cf58d1b6a236
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292440
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2020-05-28 14:12:40 +00:00
Ben Wagner
ebebf6e2b5 Move SkParagraph bits into skparagraph directory.
This makes it more obvious that these files really are part of
SkParagraph and integrate with the Skia test framework and are not part
of core Skia. This is more like how Skottie is setup and helps prevent
misunderstandings about where additional files like this should go and
how the build should be structured.

Change-Id: Iaac060c97cffd2b0c29833c7b0403521d91bdb6a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292439
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-28 13:59:18 +00:00
Mike Reed
5aefbb3725 Revert "prealloc space for a simple fRunsInVisualOrder"
This reverts commit be997df079.

Reason for revert: not sure SkSTArray is movable

Original change's description:
> prealloc space for a simple fRunsInVisualOrder
>
> Change-Id: I38e5ffbecdf5ca6870ccaccf43be149675a1d638
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291972
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Mike Reed <reed@google.com>

TBR=bungeman@google.com,herb@google.com,reed@google.com,jlavrova@google.com

Change-Id: Icddabe180d83ab0054ba5a5eebbe09e1fd5a15b4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292556
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-05-28 10:45:20 +00:00
Chris Dalton
062d2d9a5d Bump default GrResourceCache size to 256MB
Consider rendering an SkPicture to a 1080p, 4x msaa render target:

  1920 * 1080 * (4 color bytes + 1 stencil byte) * 4 samples = 40Mb!

But SkCanvas::drawPicture calls saveLayer, which allocates a duplicate
render target:

  40Mb * 2 = 80Mb!!

So with the original 96MB, a quite conservative msaa render target
almost blows out the entire resource cache just on the backing. This
CL bumps up the default cache size to 256MB.

Change-Id: I756c62f4ee6b9c62b1a3e535f31e15a1ecc3d63f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/292265
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-05-27 20:38:08 +00:00
Mike Reed
be997df079 prealloc space for a simple fRunsInVisualOrder
Change-Id: I38e5ffbecdf5ca6870ccaccf43be149675a1d638
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291972
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-05-27 15:38:57 +00:00
Mike Reed
934b9996ee try drawing underline with rect instead of line/path
Change-Id: Ide265f9e5c36a5903a4726fb4fcc8d94a92678a7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291577
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-05-26 21:59:46 +00:00
Nathaniel Nifong
b1ebbb19bc Wide color gamut support and working example.
Fixes release-cpu build issue, un-revert cl 289733

Color space arguments accepted at surface creation, paint, gradient, and other call sites.
Works correctly only when chrome happens to be rendering itself in the same color space
the canvaskit user has chosen, there's not yet end to end color management of
canvases supported in browsers.

readPixels not yet working due to possible chrome bug.

Reviewed-on: https://skia-review.googlesource.com/c/skia/+/289733
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Change-Id: I65ce1c643dac57e14b8476f598c96b12b7e040ce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291896
2020-05-26 20:13:33 +00:00
Elliot
42ee37f1a0 [canvaskit] add a gm for testing all blendmodes
Bug: skia:10264
Change-Id: I0b903798e5ebbd379df69268f2c78f381262c856
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291176
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-05-26 16:52:22 +00:00
Mike Reed
c8653569d9 Avoid malloc calls for these two temp arrays on the stack.
TODO: fRunsInVisualOrder is a long-lived array, but appears to..
- never resize after the constructor
- very often be size==1
Can we preallocate storage for it in the TextLine itself? (e.g. StSTArray or other trick)

Change-Id: I817b46a24e01ddf999bdd81a607aaf35b3c0674b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291776
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-05-26 16:37:49 +00:00
Nathaniel Nifong
7abf8606e8 Clean up promises in example.html and extra.html
Change-Id: I8b8500b4cda3d9b190bd8553ac5a68aef7b9007d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291338
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-05-26 16:28:29 +00:00
Mike Reed
45852a5942 use floats (and multiplies) for littleRound
Change-Id: I69878b4a0fd918f8e767d1a1a5f0bc273260937e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291838
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-05-26 15:16:12 +00:00
Elliot
06266f79ed [canvaskit] add a gm for testing particles
Bug: skia:10264
Change-Id: If005e49e9ea28936764346a126b7216f4e5289f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291199
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-05-26 13:40:41 +00:00
Bryce Thomas
19ffa683a1 Add make-continuous-headless target (headless option) to Makefile.
One immediate use-case for this is running tests when SSH'd into a
remote machine.  In theory, X11 forwarding could be used to forward the
remote Chrome UI.  In practice, Chrome is difficult to forward
correctly, and the options for doing so are empirically quite slow.  In
testing, forwarding from Ubuntu to Mac required passing
--use-gl=swiftshader to Chromium, and rendering was slow enough to
timeout tests.

Bug: NONE
Change-Id: Ibfaa406a73d293ea212d7983d487ea0de9722da5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291196
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-05-26 12:10:51 +00:00
Florin Malita
e01c229a07 SkMatrix::Rotate()
Change-Id: I66794fffcb2e368277aedfe39e4f390292e1df39
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291777
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-05-25 17:58:54 +00:00
Florin Malita
6a414b277b [skottie] Layer auto-orient support
AE layers can be tagged for auto-orient - i.e. they observe an
additional rotation component dependent on the position property
animation (position derivative/tangent).

Augment Vec2KeyframeAnimator to optionally track orientation, for both
temporal/linear and spatial (motion-path) keyframes.  Update
TransformAdapter2D to use this orientation when attached to layer
transforms.

Change-Id: I616e45a07b088e9e566b4f88450e95f9315b727c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291716
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2020-05-25 16:19:23 +00:00
Florin Malita
da90c37659 [skottie] Cleanup KeyframeAnimatorBuilder
Instead of plumbing the target value through bindImpl as an opaque
void*, store explicitly in builders.

More typesafe/elegant/flexible/etc.

TBR=
Change-Id: Ie28787072a6be3b0bfcd528b68431f9fb3fa3a71
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291576
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-05-22 03:44:46 +00:00
Chris Dalton
38e33df982 Disable WebGL antialias in CanvasKit
We were accidentally turning on MSAA via the "antialias" context attrib,
then feeding the render target into Ganesh and saying it was non-MSAA.

This will cause rendering artifacts in Ganesh if MSAA is unknowingly
enabled when we try to do coverage-based AA.

Also, the WebGL spec does not give us control over the exact sample
count or even guarantee that "antialias" means MSAA, so I think it's
best to leave that flag disabled by default. If a client wants MSAA,
they can create their own offscreen surface and blit it into the main
canvas.

Change-Id: I45f1596bfe9258963cff4b5d0a3921c5ba43145f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291029
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-05-21 22:19:05 +00:00
Nathaniel Nifong
67e21a1925 Revert "Wide color gamut support and working example."
breaks CPU-backed canvaskit build

This reverts commit 3d52abc846.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Wide color gamut support and working example.
> 
> Color space arguments accepted at surface creation, paint, gradient, and other call sites.
> Works correctly only when chrome happens to be rendering itself in the same color space
> the canvaskit user has chosen, there's not yet end to end color management of
> canvases supported in browsers.
> 
> readPixels not yet working due to possible chrome bug.
> 
> Change-Id: I3dea5b16c60a3871cd2a54f86716f4a438a90135
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/289733
> Commit-Queue: Nathaniel Nifong <nifong@google.com>
> Reviewed-by: Kevin Lubick <kjlubick@google.com>

TBR=kjlubick@google.com,brianosman@google.com,nifong@google.com

Change-Id: I2e03155c2512eec6730ecccda19df78174146008
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291339
Reviewed-by: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-05-21 20:22:08 +00:00
Nathaniel Nifong
3d52abc846 Wide color gamut support and working example.
Color space arguments accepted at surface creation, paint, gradient, and other call sites.
Works correctly only when chrome happens to be rendering itself in the same color space
the canvaskit user has chosen, there's not yet end to end color management of
canvases supported in browsers.

readPixels not yet working due to possible chrome bug.

Change-Id: I3dea5b16c60a3871cd2a54f86716f4a438a90135
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/289733
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-05-21 19:26:11 +00:00
Mike Reed
1f60733fb3 Revert "Revert "move onto new factories for SkMatrix""
This reverts commit c80ee456ad.

fix: update flutter's gn file to add guard

Change-Id: Iac5171c8475d9a862d06255dab1c6f38f10de2f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291361
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-05-21 16:58:39 +00:00
Mike Reed
c80ee456ad Revert "move onto new factories for SkMatrix"
This reverts commit 046c2b7d90.

Reason for revert: need to update/guard flutter

Original change's description:
> move onto new factories for SkMatrix
> 
> Just rename, no functional changes expected.
> 
> Change-Id: Id77ab1cf6b1cab35087a7c56000750912cf47383
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290831
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Florin Malita <fmalita@chromium.org>

TBR=fmalita@chromium.org,reed@google.com

Change-Id: Ic74f177128913374b8c60b4df88f04cf72fbacb3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291359
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-05-21 16:05:20 +00:00
Ben Wagner
c7e35b2bfc Remove OneLineShaper::increment.
This private method is never used.

Change-Id: Ibd71b76d9d76698a8b8d19e5275959df2cf45e45
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291320
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-21 15:09:14 +00:00
Ben Wagner
fa00ae42ce Iterate over unresolved instead of cycling.
This makes it much clearer which code is actually adding to and removing
from the unresolved queue. This also makes fillGaps much more
performant since it no longer needs to make a full copy of the
unresolved blocks.

Change-Id: I62a5eb32118fec6745b7079f537ccbd07b018c12
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291318
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2020-05-21 15:07:19 +00:00
Mike Reed
046c2b7d90 move onto new factories for SkMatrix
Just rename, no functional changes expected.

Change-Id: Id77ab1cf6b1cab35087a7c56000750912cf47383
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290831
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2020-05-21 15:04:09 +00:00