Commit Graph

186 Commits

Author SHA1 Message Date
Brian Osman
cbfa34a58c Convert internal SkSL to use .eval()
Also update RELEASE_NOTES to describe new syntax.

Change-Id: I2666551b98f80b61ae3a48c92a9e306cdc7242b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/444735
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-09-03 15:54:54 +00:00
Brian Osman
293497e77f Convert internal sample() calls to shade/filter/blend
Bug: skia:12302
Change-Id: I8cf958acf9214d0de903a4097647afd74f2a659e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/441541
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-08-24 21:03:44 +00:00
Kevin Lubick
391429f78b [canvaskit] Expose AsWinding
Bug: skia:11858
Change-Id: Iedbc2333779f2fac5029779bae44da48d8dd7b8f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/430956
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-07-22 16:36:33 +00:00
Kevin Lubick
7fc705bdd7 [canvaskit] Fix red_line.skp test
Change-Id: I7c9610faf56af21fff17d1bfd96297770defb951
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/430857
Auto-Submit: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-07-21 14:06:36 +00:00
Mike Reed
5caab8eea6 FilterQuality is now removed from CanvasKit
(it had already been abandoned by Skia)

MakeMatrixTransform now takes FilterOptions | CubicResampler
(just like drawAtlas) so that it can have a single entry-point
that picks either variant of SamplingOptions.

Proposal : migrate this pattern (one name, 2 parameter types)
to methods like drawImage, drawImageRect, etc.

Change-Id: I309fbd8be94e642a57ab3016dad7252537ded7d3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/429496
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-07-20 14:19:46 +00:00
Mike Reed
ee8b8e1984 Supporess skp test for now
Not a critical test, but its data file is out of date.

Change-Id: I41a1a94b2235e5b853e1516af7129f1cc0c0c785
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/430217
Reviewed-by: Mike Reed <reed@google.com>
2021-07-20 00:12:58 +00:00
Jim Van Verth
94fda947eb Reland "Fix directional shadows."
This is a reland of 6789b82401

Original change's description:
> Fix directional shadows.
>
> The xy offset calculation for drawShadow was not quite correct. Rather
> than normalizing the light vector and using the xy values of that as the
> base offset value, we should scale the light vector by 1/z.
>
> See https://github.com/flutter/engine/pull/27124#issuecomment-880182653
> for more detail.
>
> Bug: skia:10781
> Change-Id: Ib69a313cb96a532f8d89644e3d69f666a184e897
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/428880
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>

Bug: skia:10781
Change-Id: Ib58d374aa03d0144512e5ded6ccd572c74783607
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/428978
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-07-16 16:49:52 +00:00
Julia Lavrova
2eafe9c17d Fixing canvaskit test after fixing line metrics
Change-Id: I8ad525bd8cc44e194811b2c1760ea4ce430bf2a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/427486
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-07-13 19:24:50 +00:00
Mike Reed
bccbec3147 Remove drawImageAtCurrentFrame
Unused by flutter
Would need variants for sampling options
Easy for clients to achieve this with other APIs

Change-Id: Ia8b29f5183f5b729b62ef35e87897d5312b38da5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/427197
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-07-12 20:08:40 +00:00
Kevin Lubick
83fd9695c5 [canvaskit] Add getGlyphIDs to Typeface API
Bug: skia:12113
Change-Id: Ice0986370a76b7051de50deb6c6ace644eb4e6f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/422016
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-06-25 18:52:06 +00:00
Kevin Lubick
7027be602b [canvaskit] Add Typeface.MakeFreeTypeFaceFromData
This will replace needing to call FontMgr.RefDefault()
just to call MakeTypefaceFromData().

Change-Id: I72a8c3be62267f6c54c48a5309ef9351acb16768
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/421916
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-06-25 18:52:06 +00:00
Brian Osman
f62632c7c3 Remove SkShaders::Lerp
It's entirely unused, and trivial for clients to create with SkSL.

Change-Id: I197986232d3706f5af3a197f0fb8e744e1009e5f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/419796
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-06-18 16:40:08 +00:00
Kevin Lubick
78297af33a [canvaskit] Remove *Builders in favor of Malloc.
Change-Id: Ie785281d0759575ff4f7ece379dceeb065765405
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/414521
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2021-06-03 17:43:58 +00:00
Kevin Lubick
82186e944e [canvaskit] Remove 2d arrays from path commands
Change-Id: I6fbd91f4073ab5eca319bd6b44c72bb9904375bc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/414238
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2021-06-03 17:43:42 +00:00
Kevin Lubick
7b6a92818d [canvaskit] Add Surface.makeFromTexture
This includes a helper Surface.makeFromTextureSource that will
make the gl calls with some sensible defaults.

Change-Id: I31bb2f3118b4749e77fb1fc2cb013d35ccb7cfce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/413336
Reviewed-by: Brian Osman <brianosman@google.com>
2021-06-03 12:29:07 +00:00
Kevin Lubick
72fb3fcdf0 [canvaskit] Use copy1darray to send arrays to JSSpan
This approach is 5 to 20x faster than the existing version,
mostly by minimizing the number of back-and-forths, especially
in the vanilla JS Array case.

Change-Id: Icb4212f781b80ef743f3deb1c17ea6af80ea828b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/414517
Reviewed-by: Mike Reed <reed@google.com>
2021-06-02 14:18:59 +00:00
Kevin Lubick
dc5530e5b3 [canvaskit] Retry loading assets for tests
This cuts down on some flakiness I saw locally.

Change-Id: I8659b2cabacb99f3839a4b44daec852061184d55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412663
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
2021-05-27 12:31:06 +00:00
Kevin Lubick
6017b4833f [canvaskit] Remove two previously deprecated APIs
Change-Id: I952f688fe4292344d1d4a57a29179eaddb35360b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410856
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-05-20 18:44:50 +00:00
Mike Reed
bdfd776161 Optimize reading from a JS array
Grants read-access to a JS array, either ...
- direct peek into the (malloc'd buffer)
- quick copy (the src was a typed_array)
- slow copy (had to perform a per-element lookup)

Change-Id: Id389f244039d35aefd84e0d95d598cbe15cd28c4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409397
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2021-05-18 15:25:37 +00:00
Kevin Lubick
5b38536d76 [canvaskit] Add tests for getGlyphIntercepts
Change-Id: I115dafccb74bdf5a61f7ed25bf97fc1cec682c1d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409403
Reviewed-by: Mike Reed <reed@google.com>
2021-05-17 19:24:07 +00:00
Kevin Lubick
4755b0b525 [canvaskit] Add TextHeightBehavior
Bug: skia:11881
Change-Id: I220f5ad43de95324172ee5b6d3d5a975a3f8a166
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399836
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2021-04-22 18:21:44 +00:00
weiyuhuang
04c82165b1 [canvaskit] Add halfLeading to TextStyle and StrutStyle
- Add halfLeading (introduced in https://skia-review.googlesource.com/c/skia/+/394969) to canvaskit bindings

- Fix wrong initial value of fDescent

Change-Id: I01d522cd5a3761f32426038dce2ab82f24c9c529
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/398276
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2021-04-20 20:21:56 +00:00
Kevin Lubick
e058608626 [canvaskit] Fix transform() call in test
This started to fail in Chrome 90.

Change-Id: I77e96f155b6ab83d206b3d258b971fef2f7d3a62
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/398677
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-04-20 18:12:13 +00:00
Kevin Lubick
6e927095e1 [canvaskit] Remove isNode and saveAsPicture
This should fix https://github.com/flutter/flutter/issues/80221

Change-Id: I25e0ad58bcaad95b43cc94476af0e241e17ac244
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397289
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-04-16 20:55:54 +00:00
Mike Reed
9983b1efd9 Expose drawGlyphs to CK
Precursor for https://skia-review.googlesource.com/c/skia/+/392837

Change-Id: I94cf555d3185e4e2689888a3ae2acf6f57a0fb65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396496
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-04-14 19:15:50 +00:00
Brian Osman
9be7683222 Support integer uniforms in CanvasKit runtime effects
These were added to SkRuntimeEffects, but we need to do a bit of fixup
in the CK bindings. Note that 'getUniformFloatCount' is now poorly
named, but the idea still stands: it's how many total scalar values are
required.

Bug: skia:11803
Change-Id: If464156d8e6240736e324ef833e57ba7d53f55a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/394476
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-04-09 12:42:17 +00:00
Kevin Lubick
4a84c34383 [canvaskit] Expose Strut RectHeightStyle
Bug: skia:11845
Change-Id: Ic0c0812a906bc9c71194ae8a118e04b22194dc69
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/393976
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-04-08 17:52:35 +00:00
Mike Reed
b09aaa2df4 Change filtering in drawPatch to linear.
This is mostly just to work around bug in raster backend.

Bug: skia:11822
Change-Id: I7c5af9dca36dac3eee4948f2a127fee6d314cf55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391916
Auto-Submit: Mike Reed <reed@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-04-01 17:41:13 +00:00
Mike Reed
6e7d2b3b72 Add drawPatch to canvaskit
Change-Id: I66214398f020ab6e824c5509babe5107f6b46d7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388837
Auto-Submit: Mike Reed <reed@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-03-31 15:28:21 +00:00
Mike Reed
5514431d0e Extend drawAtlas with optional sampling parameter
Change-Id: Id26f0d9ca5381da807b072c8b59745f2afd8df60
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/386860
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Yegor Jbanov <yjbanov@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-03-25 18:04:32 +00:00
Florin Malita
baab5aff09 [skottie/wasm] Plumb text properties in WASM bindings
Only text string + size for now, we can surface more if needed.

Change-Id: I4b40c1bb5e27ea5fc4ed20a1214c4eeb04bf1ca8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/382279
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-03-10 18:34:04 +00:00
Kevin Lubick
3b760b6fa8 [canvaskit] Add full build to npm release.
Also rename //modules/canvaskit/canvaskit to //modules/canvaskit/npm_build
to make it more clear the purpose of that folder (what we ship to
npm and stage our builds for local testing).

Bug: skia:11203
Change-Id: I4299ded97d14f4155c36798d60e88a660ce6fe6a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/372392
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-02-23 14:40:43 +00:00
Kevin Lubick
3dbca47568 [canvaskit] Remove Font.measureText and Font.getWidths
This had been previously deprecated.

Bug: skia:10717
Change-Id: Ic57ed835c13cfa7812099a3ef20ed7ff5aa62f7f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371339
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2021-02-23 14:27:50 +00:00
Kevin Lubick
58605b0466 [canvaskit] Remove ShapedText API.
The Paragraph API is what should be used.

Bug: skia:10717
Change-Id: I135aff09bffae0718045b5c744f8e774e2ee1bce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371338
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2021-02-23 14:27:50 +00:00
Florin Malita
4f14135f5e [skottie/ck] Expose logs in JS API
Plumb a JS logger object, and forward errors/warnings to its methods:

  onError(err_str, json_node_str)
  onWarning(wrn_str, json_node_str)

Change-Id: I796aeb313c4a693accafe04edf80178b227ab118
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370937
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2021-02-17 17:57:16 +00:00
Jorge Betancourt
1352d0e47d [canvaskit] perform audio asset lookup by layer id
Change-Id: Iac56d11a76be8d90df1159631a02f1713ece1bd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368938
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
2021-02-11 17:11:00 +00:00
Jorge Betancourt
0e604ca7b0 [canvaskit] add audio asset support to skottie-bindings
Change-Id: If4c36f0261a18ed068cd745a4c454c127d0e96bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/360916
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
2021-02-10 17:19:12 +00:00
Brian Osman
f2f3d52ad5 Add CanvasKit bindings for SkRuntimeEffect's uniform data
Written to use the exact same names and semantics as particles.

Cq-Include-Trybots: luci.skia.skia.primary:Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit,Test-Debian10-EMCC-GCE-GPU-AVX2-wasm-Release-All-CanvasKit
Change-Id: I4031efbce06527a519f1ce8c261f79231554e1ef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365701
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-02-04 17:43:28 +00:00
Kevin Lubick
70b6729a05 [canvaskit] Add error callback for runtime effect constructor
It would otherwise be difficult/tedious/not-backwards-compatible
to return the RuntimeEffect AND the error message.

Change-Id: I9bdbafb653398ccbb72e6e762ec4b6af294f9110
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365483
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2021-02-03 17:35:23 +00:00
Kevin Lubick
5feaeb24d0 [canvaskit] Fix particles.setPosition and add test.
Change-Id: I49043df9e8fdf9ac7f5b25164a1c577f3c569b94
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365478
Reviewed-by: Brian Osman <brianosman@google.com>
2021-02-03 15:52:23 +00:00
Brian Osman
c81378624f Update all example particle data to new single-code-chunk format
Change-Id: Ic53dc7ecab1b44761fe06e6b528864d24cc5fa58
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/363940
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-02-02 18:07:53 +00:00
Kevin Lubick
e9e8e5d771 [canvaskit] Replace Postan value array with Float32Array.
Change-Id: Ie0e8a9271ef1b68551473fb9a1bcc9442f063efe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362477
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2021-02-02 15:22:07 +00:00
Kevin Lubick
d62738d094 [canvaskit] Remove deprecated PathMeasure
This will make cleaning up the PosTan value easier.

Change-Id: I13aa12f94c560bf8539aa2edb1f9e13779635692
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362458
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2021-02-02 15:22:07 +00:00
Kevin Lubick
f6040ef2a7 [canvaskit] Remove value_array for vector3
Also removes the size value_objects, which appear unused.

Change-Id: Iecfc05b6c285b981415121943b7b43e2216516cd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362339
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2021-02-02 15:22:07 +00:00
Kevin Lubick
ed96264ad7 [canvaskit] Replace Point value_array with Float32Array
Using value_array (and value_object), while convenient,
adds a measurable overhead. This removes the Point value_object
and replaces it as a return value with Float32Array
(similar to rects). For inputs of a single point, I just
split it into x and y. For inputs with two points, I used
a _scratchFourFloats (formerly _scratchRect) bit of memory.

Two subtle decisions here:
 - Why not use scratch memory for a single point? The cost of
   having one extra param is a small/negligible price to pay
   for less complex code.
 - Why not accept Malloc objects? Again, simplicity. Accommodating
   Malloc would make the code harder to read and require more
   checks. I don't know if anyone wants to have malloced points;
   if they do, we can probably accommodate that.

Change-Id: I1b1c29f62e01c2f1c8c1218f58e3bad642214322
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362097
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2021-02-02 15:22:07 +00:00
Kevin Lubick
6de1e52d0b [canvaskit] Properly downsample 4x4 matrices.
Also address feedback from Tuesday.

Change-Id: I4497e4112c758a071c834045d20a009397184254
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/356837
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2021-01-21 18:14:04 +00:00
Kevin Lubick
cbaea295f5 [canvaskit] Expose getShadowLocalBounds
Bug: skia:11146
Change-Id: Ib08a96c8d0ca0f4ca2b489b3793e45f642cb231f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/353034
Reviewed-by: Yegor Jbanov <yjbanov@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-01-13 20:24:26 +00:00
Brian Salomon
4878b3e33c Remove Improved Perlin Noise
Is not used by a major client and can be implemented using runtime
effects for users who want this noise.

Bug: skia:10536
Change-Id: Iaa06e6e1406b808c7f8dc0f76621fecf2becabf5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/352057
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-01-11 15:27:26 +00:00
Kevin Lubick
5779a86072 [canvaskit] Add docs and example for flags
Change-Id: I9ad8a591b9f9dc5c454bfa30405244e49ad6b593
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350816
Reviewed-by: Yegor Jbanov <yjbanov@google.com>
2021-01-07 16:38:58 +00:00
Kevin Lubick
2d6334988b [canvaskit] Modify drawImageNine API to handle Filter quality
Bug: skia:11099
Change-Id: Ia019bd5107d5646d6e314876610ecdeb37004e36
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/345277
Reviewed-by: Mike Reed <reed@google.com>
2020-12-17 14:58:58 +00:00