Commit Graph

1100 Commits

Author SHA1 Message Date
Elliot Evans
fc5bbe0a6c Fix SIMD CanvasKit build to output to the expected directory.
the BUILD_DIR in compile.sh was not being set properly prior to this
change, resulting in build output in the `skia/out/canvaskit_wasm`
directory instead of the `skia/out/canvaskit_wasm_experimental_simd`
directory.

Change-Id: Idb599d4885a16c10848e4c90954e778f63065c45
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306299
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-07-29 15:04:22 +00:00
Julia Lavrova
3d404beb7c Reland "Attach whitespaces to the neighbor unresolved blocks"
This reverts commit 143646297e.

Reason for revert: Have to fix it and reland again

Original change's description:
> Revert "Attach whitespaces to the neighbor unresolved blocks"
>
> This reverts commit 131c5ad6f1.
>
> Reason for revert: Blocking the G3 roll
>
> Original change's description:
> > Attach whitespaces to the neighbor unresolved blocks
> >
> > Fix the situation when an unresolved {arabic} text is broken into
> > many small runs by resolved english spaces.
> >
> > Bug: skia:10487
> > Change-Id: I3a739501c0fb7e0fc845e68392e1d214df9302db
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304000
> > Commit-Queue: Julia Lavrova <jlavrova@google.com>
> > Reviewed-by: Ben Wagner <bungeman@google.com>
>
> TBR=bungeman@google.com,jlavrova@google.com
>
> Change-Id: Iaa338dd5fb5c9962df2ee32bafbc089da0e2b8a1
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:10487
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305797
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

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

Bug: skia:10487
Change-Id: If8a85254fd536f465d80766de0406053d90c96a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306062
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-07-28 17:19:21 +00:00
John Stiles
059ed6749d Update types in TextStyle to use member initialization syntax.
While doing a refactor, Clang issued some warnings about having copy-
constructors without assignment operators in some TextStyle classes.
Rewrote the code to minimize custom constructor/copy/assignment methods,
favoring C++11 member initialization syntax instead.

Change-Id: I4f0361ce38d4b0ada346b0ede4fcad4e2b686d67
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305959
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-07-27 20:53:15 +00:00
John Stiles
c88a6ac43d Add missing #includes for referenced types.
These missing includes were discovered when attempting a refactor.

Change-Id: I8aad5610de2337de6e55885b5868e606c1514eaf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305997
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-07-27 14:06:31 +00:00
Florin Malita
d1ae99438e [skottie] Add support for inline/data-uri fonts
BM can now export inline fonts, encoded as data-uris.

Extend our DataURIResourceProviderProxy helper to also intercept and
decode inline typefaces.

Change-Id: Iaf1be9db2fd32383af78bc351b1228fe6b3b64bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305685
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Florin Malita <fmalita@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-07-25 13:46:52 +00:00
Robert Phillips
143646297e Revert "Attach whitespaces to the neighbor unresolved blocks"
This reverts commit 131c5ad6f1.

Reason for revert: Blocking the G3 roll

Original change's description:
> Attach whitespaces to the neighbor unresolved blocks
> 
> Fix the situation when an unresolved {arabic} text is broken into
> many small runs by resolved english spaces.
> 
> Bug: skia:10487
> Change-Id: I3a739501c0fb7e0fc845e68392e1d214df9302db
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304000
> Commit-Queue: Julia Lavrova <jlavrova@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

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

Change-Id: Iaa338dd5fb5c9962df2ee32bafbc089da0e2b8a1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10487
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305797
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-07-24 19:48:22 +00:00
Julia Lavrova
131c5ad6f1 Attach whitespaces to the neighbor unresolved blocks
Fix the situation when an unresolved {arabic} text is broken into
many small runs by resolved english spaces.

Bug: skia:10487
Change-Id: I3a739501c0fb7e0fc845e68392e1d214df9302db
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304000
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-07-24 18:21:49 +00:00
Julia Lavrova
90787fefef Reland #3 "ICU API: only in SkParagraph, simplified."
This is the fix for google3 failure.
This reverts commit e36a466723.

Reason for revert: Trying to fix google3 build brake

Original change's description:
> Revert "Reland "ICU API: only in SkParagraph, simplified (relanding reverted).""
>
> This reverts commit 16fbc24772.
>
> Reason for revert: Checking to see if this is blocking the G3 roll
>
> Original change's description:
> > Reland "ICU API: only in SkParagraph, simplified (relanding reverted)."
> >
> > This reverts commit a30095d17c.
> >
> > Reason for revert: Fixing the build
> >
> > Original change's description:
> > > Revert "ICU API: only in SkParagraph, simplified (relanding reverted)."
> > >
> > > This reverts commit 7479eda3b6.
> > >
> > > Reason for revert: Breaking build
> > >
> > > Original change's description:
> > > > ICU API: only in SkParagraph, simplified (relanding reverted).
> > > >
> > > > Reverted commit: https://skia-review.googlesource.com/c/skia/+/296128/
> > > >
> > > > Change-Id: Iaf793bff94a6060579c7d6176d477e598c047be6
> > > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303261
> > > > Reviewed-by: Mike Reed <reed@google.com>
> > > > Commit-Queue: Julia Lavrova <jlavrova@google.com>
> > >
> > > TBR=reed@google.com,jlavrova@google.com
> > >
> > > Change-Id: Idd4c41e22aa59e24bdbd07f2fa5e9258c1bbb7a7
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303358
> > > Reviewed-by: Julia Lavrova <jlavrova@google.com>
> > > Commit-Queue: Julia Lavrova <jlavrova@google.com>
> >
> > TBR=reed@google.com,jlavrova@google.com
> >
> > Change-Id: Iea5da4535ea2e388e8e632e6c556b66c8781631a
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303377
> > Reviewed-by: Ben Wagner <bungeman@google.com>
> > Reviewed-by: Julia Lavrova <jlavrova@google.com>
> > Commit-Queue: Julia Lavrova <jlavrova@google.com>
>
> TBR=bungeman@google.com,reed@google.com,jlavrova@google.com
>
> Change-Id: I1edfecc56add670b251adf44892265088fd32c42
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304058
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

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

Change-Id: Ife73aa21539e870d69bda6b5892979646732d778
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304060
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-07-24 13:28:52 +00:00
Florin Malita
d140e767b8 ResourceProviderProxyBase should not drop loadFont (yet)
Although deprecated, loadFont is still in use - we should proxy it for
now.

Change-Id: Iccef76d4ba394d08fc61c7471def8dee470db695
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305516
Auto-Submit: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2020-07-23 18:26:50 +00:00
Elliot Evans
1ec3b1ab2e Fix CanvasKit SkSurface.requestAnimationFrame for web workers
Change-Id: I19d368d6f9f8a2bf4bed73a8f1843be907183096
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305539
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Elliot Evans <elliotevans@google.com>
2020-07-23 16:03:23 +00:00
Florin Malita
72db717348 [skottie] Add spread/choke support for glow styles
Spread/choke operates as a compression of the alpha channel towards the
low bits.

Change-Id: I82aec1321b60f7f75a79e8280e761d4629f6c923
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305183
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2020-07-22 23:20:02 +00:00
Kevin Lubick
ab47abfca3 [canvaskit] Publish 0.17.2
Change-Id: Ia6d3ec1a38498468bb6b30059f94ded0d68800a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/305196
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-22 17:15:02 +00:00
Harry Terkelsen
d2093b13c8 Set fCanUseDoLoops = false for WebGL 1.0
Change-Id: Ie55e876638246a444c32b169ed3830cd7b0fbab3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304861
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-07-22 01:27:56 +00:00
Brian Salomon
d007281c9a Fix clang 12 Wsuggest-override and Wsuggest-destructor-override
Change-Id: Ic44e24057b95bb014504f02a736fb4341afc8971
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304856
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-07-22 01:11:36 +00:00
Elliot Evans
683bbe01ff Modify CanvasKit to work in a Web Worker and add a demo of it in action.
In this CL:
- Modify modules/canvaskit/gpu.js to support the use of OffscreenCanvas.
- Add a CanvasKit demos.skia.org demo for CanvasKit in a Web Worker.

Change-Id: I8c26bd94f2aa5b3c09cf149b056b910b0e4cd602
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304320
Reviewed-by: Elliot Evans <elliotevans@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Nathaniel Nifong <nifong@google.com>
Commit-Queue: Elliot Evans <elliotevans@google.com>
2020-07-21 22:21:06 +00:00
Florin Malita
138518d92a [skottie] Cleanup post https://skia-review.googlesource.com/c/skia/+/303997
Follow up to address review comments.

Change-Id: Ia5f3f7a638524191538ac039a4d84c497a261c78
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304600
Auto-Submit: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
2020-07-21 19:35:08 +00:00
Kevin Lubick
ce4587d430 [canvaskit] Update to 0.17.1
These changes were supposed to land yesterday, but I forgot.

Change-Id: I46aca428482f9812c1b025f9735ebe2c0ac02bf1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304602
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-21 14:48:20 +00:00
Florin Malita
a524ea266d [skottie] More masking fixes
Assorted bugfixes for the non-analytical mask code path.

1) SkSG modulatePaint() should only override the blend mode when
   one is specified (!= kSrcOver).

2) Some modes (notably intersect) require touching pixels outside the
   mask draw geometry.  These modes must be applied as a layer.
   Introduce an explicit layer node in SkSG, and inject for masks which
   require it.

Also refactor Subtract to use more natural blend and pathops modes,
instead of always inverting geometry.

TBR=
Change-Id: I412168d1ff61eb8e59907babe8f0e091f6fffacf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303997
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2020-07-21 13:58:45 +00:00
Florin Malita
a09b05c27a [skottie] Add RenderFlag::kDisableTopLevelClipping
TBR=

Change-Id: If63d27eb13176697665f0d081542eae0f7afea9d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304476
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-07-21 13:15:45 +00:00
Robert Phillips
e36a466723 Revert "Reland "ICU API: only in SkParagraph, simplified (relanding reverted).""
This reverts commit 16fbc24772.

Reason for revert: Checking to see if this is blocking the G3 roll

Original change's description:
> Reland "ICU API: only in SkParagraph, simplified (relanding reverted)."
> 
> This reverts commit a30095d17c.
> 
> Reason for revert: Fixing the build
> 
> Original change's description:
> > Revert "ICU API: only in SkParagraph, simplified (relanding reverted)."
> >
> > This reverts commit 7479eda3b6.
> >
> > Reason for revert: Breaking build
> >
> > Original change's description:
> > > ICU API: only in SkParagraph, simplified (relanding reverted).
> > >
> > > Reverted commit: https://skia-review.googlesource.com/c/skia/+/296128/
> > >
> > > Change-Id: Iaf793bff94a6060579c7d6176d477e598c047be6
> > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303261
> > > Reviewed-by: Mike Reed <reed@google.com>
> > > Commit-Queue: Julia Lavrova <jlavrova@google.com>
> >
> > TBR=reed@google.com,jlavrova@google.com
> >
> > Change-Id: Idd4c41e22aa59e24bdbd07f2fa5e9258c1bbb7a7
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303358
> > Reviewed-by: Julia Lavrova <jlavrova@google.com>
> > Commit-Queue: Julia Lavrova <jlavrova@google.com>
> 
> TBR=reed@google.com,jlavrova@google.com
> 
> Change-Id: Iea5da4535ea2e388e8e632e6c556b66c8781631a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303377
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Reviewed-by: Julia Lavrova <jlavrova@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>

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

Change-Id: I1edfecc56add670b251adf44892265088fd32c42
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/304058
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-07-20 16:39:15 +00:00
Julia Lavrova
16fbc24772 Reland "ICU API: only in SkParagraph, simplified (relanding reverted)."
This reverts commit a30095d17c.

Reason for revert: Fixing the build

Original change's description:
> Revert "ICU API: only in SkParagraph, simplified (relanding reverted)."
>
> This reverts commit 7479eda3b6.
>
> Reason for revert: Breaking build
>
> Original change's description:
> > ICU API: only in SkParagraph, simplified (relanding reverted).
> >
> > Reverted commit: https://skia-review.googlesource.com/c/skia/+/296128/
> >
> > Change-Id: Iaf793bff94a6060579c7d6176d477e598c047be6
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303261
> > Reviewed-by: Mike Reed <reed@google.com>
> > Commit-Queue: Julia Lavrova <jlavrova@google.com>
>
> TBR=reed@google.com,jlavrova@google.com
>
> Change-Id: Idd4c41e22aa59e24bdbd07f2fa5e9258c1bbb7a7
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303358
> Reviewed-by: Julia Lavrova <jlavrova@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>

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

Change-Id: Iea5da4535ea2e388e8e632e6c556b66c8781631a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303377
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-07-20 15:26:31 +00:00
Kevin Lubick
a6ab4b4f80 [canvaskit] Make effect deserialization on for everything but npm.
Change-Id: I7a60c55940d6d4704aa6d2161b0b8e93c9799285
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303597
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-07-20 14:35:18 +00:00
Kevin Lubick
d9926908b5 [canvaskit] Enable some options on npm build
This also makes the effects deserialization available via compile flag.

Change-Id: Ib6692499a619205ac480a8823ce7de12c0a5a723
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303596
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-07-20 14:35:18 +00:00
Kevin Lubick
151d1aae27 [pathkit] Publish 0.7.0 to npm
Change-Id: I181e38e97888e9b319f62f1bbd6f4e832248d7dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303923
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-20 14:21:53 +00:00
Kevin Lubick
6249da8a83 [canvaskit] Publish 0.17.0 to npm
Change-Id: I764a1720a44440a9fb8de0c78ebec02808473876
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303922
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-20 14:10:45 +00:00
Kevin Lubick
3ba1777ceb [npm] Support npm publish flow
See go/npm-publish and b/160246223

Change-Id: I5a92a19ae6be814ca9a98679cfe39184f7cdb184
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303580
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2020-07-20 11:29:36 +00:00
Nathaniel Nifong
a237f9ec12 Run both puppeteer tests in a WebGL 1 and 2 configuration.
Change-Id: Iaaef7d1ac96eec1813d3b0340ecabcbec90e3923
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300982
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-17 20:36:37 +00:00
Nathaniel Nifong
d0c9d0cb7f Replace arcTo with three functions for it's overloads.
I found this to be about 15% faster on a benchmark designed to stress these functions.

https://github.com/flutter/flutter/issues/61305

Change-Id: I9dc2a8396e54c55464bb71562de0c07c853e829c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303024
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-07-17 19:08:03 +00:00
Florin Malita
f2d90659ff [skottie] Fix analytical mask fill type
Sksg::Merge needs to preserve the fill type of the first path appended
in the stack.

Theoretically, one could append multiple paths with different fill types
using sksg::Merge, but in practice Skottie should never do that (append
mode with invertible shape only used for the very first mask in a stack).

TBR=
Change-Id: Ie9ac9187cc1c8baaae2bef439313a7700407f04a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303582
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2020-07-17 18:35:23 +00:00
Nathaniel Nifong
2d7afd4824 fix heap-buffer-overflow by not returning string from reportBackendType
Change-Id: I2dbced29f9d43454e35e3ff9fbbb97d11fef29a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303623
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-07-17 16:42:30 +00:00
Elliot Evans
d511d9a086 Add Puppeteer perf for release and experimental_simd builds of CanvasKit against SKPs
Adds the command:
  make skps_release_and_SIMD
for perfing builds against a set of SKPs in ~/skps for release and
simd builds of CanvasKit. Also outputs a summary of the perf results
in a table format.

See the document "SIMD CanvasKit Build Performance Testing"
for more details:
https://docs.google.com/document/d/114kdSGPMnOSQCZ7pFgd3MGMn5mIW562RMoXVmD13e0M/edit#

Bug: skia:10453
Change-Id: I311629a1420301dda41f7ec57ce1403b05fd949b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301982
Reviewed-by: Elliot Evans <elliotevans@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-16 17:47:08 +00:00
Julia Lavrova
a30095d17c Revert "ICU API: only in SkParagraph, simplified (relanding reverted)."
This reverts commit 7479eda3b6.

Reason for revert: Breaking build

Original change's description:
> ICU API: only in SkParagraph, simplified (relanding reverted).
> 
> Reverted commit: https://skia-review.googlesource.com/c/skia/+/296128/
> 
> Change-Id: Iaf793bff94a6060579c7d6176d477e598c047be6
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303261
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>

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

Change-Id: Idd4c41e22aa59e24bdbd07f2fa5e9258c1bbb7a7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303358
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-07-16 16:35:12 +00:00
Julia Lavrova
7479eda3b6 ICU API: only in SkParagraph, simplified (relanding reverted).
Reverted commit: https://skia-review.googlesource.com/c/skia/+/296128/

Change-Id: Iaf793bff94a6060579c7d6176d477e598c047be6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303261
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-07-16 15:57:28 +00:00
Florin Malita
cd11a51a11 [skottie] Fix mask difference
Difference [1]:

  The mask is added to the masks above it in the stacking order. In
  areas where the mask does not overlap the masks above it, the mask
  operates as it would alone on the layer. In areas where the mask
  overlaps the masks above it, the influence of the mask is subtracted
  from the masks above it.

^ sure sounds like XOR

[1] https://helpx.adobe.com/after-effects/using/alpha-channels-masks-mattes.html#mask_modes

Bug: skia:10502
TBR=
Change-Id: I8aea937224cfadce54c4fc1d014b63d00efdbec4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303025
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2020-07-16 01:05:24 +00:00
Elliot Evans
72b8aea019 Fix experimental_simd CanvasKit build.
Although it appeared that the experimental_simd CanvasKit build was
working, the build was not producing actual wasm SIMD operations. This
CL fixes that issue by changing the build arguments.

This issue also fixes an incorrect type issue with the SkVx wasm SIMD
implementation.

Bug: skia:10453
Change-Id: If26f84b09e4d84df36be589245878c821972dffc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302669
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-07-15 20:39:42 +00:00
Julia Lavrova
70258c79be add SkParagraph to public headers and fix warnings
Change-Id: Icb62636e96f1fecb97c4f4c918d073ab611420f3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302900
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-07-15 17:56:43 +00:00
Florin Malita
cd241f1b6a [skottie] Improved pucker/bloat center heuristic
AE appears to use the center of the shape bounding box.

TBR=
Change-Id: I965175dcc28cc9a8903b959a42b108d72767ef28
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302639
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2020-07-15 17:38:33 +00:00
Kevin Lubick
79d88fe4d1 [canvaskit] Quick fix for older skp format
As a quick fix, this SKP was downloaded from https://fiddle.skia.org/c/cbb8dee39e9f1576cd97c2d504db8eee

I intend to land a bit of code that will programmatically
regenerate this (and potentially other SKPs that we test
against)

Change-Id: Iaea23c3ec9c42117e851bee5e6d423366ab7c669
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302837
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-15 12:30:50 +00:00
Mike Klein
67db194bdc Revert "Enable effects deserialization except for npm build"
This reverts commit 73923522fd.

Reason for revert: breaks Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-Puppeteer_RenderSKP perhaps?

Original change's description:
> Enable effects deserialization except for npm build
> 
> Enable skia picture effect deserialization in all flavours of build
> except for "npm" variant. If you don't have effect deserialzation enabled
> then when you try to deserialize a skp into SkPicture using canavskit
> it will simply ignore all the shaders/ effects.
> 
> On npm build effects are still being dropped if you use skia picture
> this is being done intentially to not increase the size of canvaskit wasm and
> js files.
> 
> https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!searchin/skia-discuss/gradient$20canvaskit%7Csort:date/skia-discuss/hiCxK-VkK4o/i9zO-tm7AQAJ
> 
> Change-Id: Iff27f829cd72d23cafaddeade5c37de412f9ce19
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301676
> Reviewed-by: Kevin Lubick <kjlubick@google.com>

TBR=kjlubick@google.com,sunilmur@amazon.com

Change-Id: Ic14bcdbe16761971d685fc088666d02af99b31fa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/302021
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-10 19:03:14 +00:00
Florin Malita
71dc916852 [skottie] Pucker & Bloat shape layer vector effect
Observed semantics:

  -- operates on cubic Bezier path representation
  -- moves vertices towards the shape center, and control points in the
     opposite direction, based on the specified amount
  -- the center is determined as the vertex average
  -- the amount is specified as a fraction of the transition to center
     (0 -> noop, 1 -> fully collapesed to center)
  -- negative and extranormal amount values are allowed
     (invert direction/extrapolate)

TBR=
Change-Id: I7da81a5fe5cffd0e50bd94e6b448565b0b04ed86
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301582
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2020-07-10 18:09:53 +00:00
Sunil Murthy
73923522fd Enable effects deserialization except for npm build
Enable skia picture effect deserialization in all flavours of build
except for "npm" variant. If you don't have effect deserialzation enabled
then when you try to deserialize a skp into SkPicture using canavskit
it will simply ignore all the shaders/ effects.

On npm build effects are still being dropped if you use skia picture
this is being done intentially to not increase the size of canvaskit wasm and
js files.

https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!searchin/skia-discuss/gradient$20canvaskit%7Csort:date/skia-discuss/hiCxK-VkK4o/i9zO-tm7AQAJ

Change-Id: Iff27f829cd72d23cafaddeade5c37de412f9ce19
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301676
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-10 17:14:20 +00:00
Florin Malita
082323b57d [skottie] Fill-over-stroke support for text
AE allows selecting the paint order when both fill & stroke are present.

The CL also fixes some text stroke issues: stroke width not parsed
correctly and not actually used on the paint.

Change-Id: Iec27bb65d09f689365e43b801d3844106780572b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301857
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-07-10 14:44:23 +00:00
Julia Lavrova
196515cbd7 Line metrics: correct text width
Bug: skia:10439
Change-Id: Ic9ac1b5305fb785aceb12eab9c24d488001a91c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301377
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-07-09 15:03:02 +00:00
Julia Lavrova
1d784c7939 TextStyle::matchOneAttribute compares backgrounds even if they don’t exist
Bug: skia:10432
Change-Id: I7e615de2dad82fc4a978574a4f2458e56a90e93f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301358
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-07-08 19:58:55 +00:00
Julia Lavrova
ce6f24d7fd Placeholders coming from flutter can have Inf sizes
Dealing with it for now; should not be allowed in the first place!

Change-Id: I52141d0543d60342c45813d35264c7ee49f1e972
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301298
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-07-08 17:55:17 +00:00
Florin Malita
cfbb56c6e1 [skottie] Auto-orient fixes
Two issues:

1) For static keyframes (start_value == end_value) AE yields horizontal
   orientation (0 tangent).  We technically have the same logic in
   Skottie, but our value deduplication logic interferes: the two
   consecutive equal values are consolidated, and the result ends up
   holding the spatial lerp info for the next frame => our hold frames
   auto-orient for the beginning of the next keyframe.

   Fix: skip value deduplication when spatial lerp is present.

2) The very last keyframe is always static and holds no spatial info.
   AE retains the orientation of the previous frame, but Skottie yields
   0 tangent.

   Fix: the easiest way to accomplish AE semantics is to detect when
   we're dealing with the last keyframe, and swap with the previous
   keyframe with an adjust weight of 1 (to select the end value).  This
   produces the same lerp result (because keyframed values are always
   contiguous) and also respects the orientation of the prev frame.

TBR=
Change-Id: Id661f7804533e95b747722457489a7ef759572a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301176
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-07-08 13:52:27 +00:00
Brian Osman
cd28fa6f6b Always use Skia's Vulkan headers when compiling particles module
Previously, doing an official build of Skia with Vulkan and particles
enabled would succeed in compiling all of skia.lib, then fail to find
Vulkan headers for two particle .cpp files (that reach GrVkVulkan.h
via SkSL headers).

Bug: skia:10469
Change-Id: Ia5bdb7df25e7259e43cef3e6ff9719a8c8452022
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/301002
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-07-07 20:44:34 +00:00
Florin Malita
c7b49bbb9b [skottie] Fix merge paths <-> paints interaction
Unlike other shape path effects, merge paths disables the rendering of
any preceding paints - it only extracts the merged geometry from the
stack.

Update the shape layer attacher logic to suppress paints under merge
paths.

TBR=
Change-Id: I414134839de9eaa4b0f828d8dc6d4721620242bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300897
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2020-07-07 17:28:47 +00:00
Nathaniel Nifong
6130d5079d Helper function for camera setup
Change-Id: I839fea29c2e56cfc2a4e4557da3197bf211513eb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/299654
Commit-Queue: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2020-07-07 00:30:03 +00:00
Julia Lavrova
a6d1e98b65 Revert "ICU API: only in SkParagraph, simplified."
This reverts commit 8d639e1a42.

Reason for revert: Build break

Original change's description:
> ICU API: only in SkParagraph, simplified.
> 
> Change-Id: I4f7fbb233217cb3b7a171c91720c9c2289e28a5f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/296128
> Commit-Queue: Julia Lavrova <jlavrova@google.com>
> Reviewed-by: Mike Reed <reed@google.com>

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

Change-Id: If41d7ebaa081837bf2615b24d9035f37cdb76081
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300712
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-07-06 19:59:15 +00:00