29 Commits

Author SHA1 Message Date
Zachary Anderson
0a2e28d797
Revert tracing changes (#9296)
* Revert "[fuchsia] Fix alignment of Fuchsia/non-Fuchsia tracing (#9289)"

This reverts commit f80ac5f571479053b134e60bca77603269b2ce2a.

* Revert "Align fuchsia and non-fuchsia tracing (#9199)"

This reverts commit 78265484623037c6544dfd5380367bca29fa27b0.
2019-06-12 10:25:49 -07:00
liyuqian
b622d43c39
Make flow layers' attributes immutable (#9176)
For https://github.com/flutter/flutter/issues/33807

We still need to make layers' children immutable for full immutability.
That will require us to change the SceneBuilder API to build the layer
bottom up instead of top down (post-order traversal instead of pre-order
traversal).
2019-06-10 13:09:37 -07:00
Dan Field
7826548462
Align fuchsia and non-fuchsia tracing (#9199) 2019-06-05 15:14:27 -07:00
liyuqian
d79eb2857d
Generate layer unique id for raster cache key (#8637)
The raw pointer isn't a reliable id as the allocator can reuse an
address that's just been released for another layer.

This will fix Fuchsia bug FL-216.

This problem was not affecting non-Fuchsia Flutter probably because
non-Fuchsia Flutter purges the raster cache key much more frequently so
we won't see a key collision. In Fuchsia, as the key has to wait for the
Vulkan surface to render asynchronously, this suddenly becomes an issue.
2019-04-18 14:14:06 -07:00
liyuqian
edef8bb8b3
Reland elevation test (#8633)
Reland "Add a unit test for PhysicalShapeLayer (#8616)"

This reverts commit 91b71070f55ffc38c432babc7d9bb68ac2720d8d.

The only change is the namespace.
2019-04-18 10:56:24 -07:00
Chinmay Garde
91b71070f5
Revert "Add a unit test for PhysicalShapeLayer (#8616)" (#8627)
This reverts commit 8b667b0178f135411ad72d7e5b3304cc46ff7dcf.
2019-04-17 17:47:58 -07:00
liyuqian
8b667b0178
Add a unit test for PhysicalShapeLayer (#8616)
An unnecessary PrerollContext copy is also removed. The added unit test will catch the error if we forget to subtract the elevation after the copy removal.

This change has been tested with the framework (`flutter test --local-engine=host_debug_unopt`).
2019-04-17 17:34:11 -07:00
liyuqian
8ff631f3df
Rename flow namespace to flutter (#8615)
This follows our namespace change from shell to flutter: https://github.com/flutter/engine/pull/8520.
2019-04-17 14:38:45 -07:00
Michael Klimushyn
0e27e0fc38
Pipe Z bounds from ViewportMetrics to Flow (#8583)
This is the first step in making Flutter aware of and responsive to Z
bound overflow. On its own this patch shouldn't result in any changes in
behavior. This will need to be followed up with a patch in Fuchsia's
Flutter runner to set the Z bounds after this lands, and another patch
in the engine actually implementing the desired overflow behavior.

This Z bound info is routed through the engine itself to make sure the
bounds in flow are truly consistent from the Fuchsia runner. However
these values should eventually be exposed to the framework as well.
2019-04-17 09:56:46 -07:00
Dan Field
fdad56f5fb
Anti-Aliasing for shape layers (#8157) 2019-03-13 14:26:42 -07:00
liyuqian
56d8634c51
Improve shadow doc in PhysicalShapeLayer (#8114)
The old x is confusing as it often refers to x-axis in 2D graphics.
Replace it with t which has a nice interpretation of tangent.
2019-03-11 14:30:07 -07:00
Dan Field
b30f9897b9
Improve elevation bounds for physical shape layers (#8044)
* improve elevation bounds calculation and add diagram
2019-03-05 16:32:22 -08:00
liyuqian
eaae8a67bc
Retained rendering in Fuchsia PhysicalShapeLayer (#6558)
For flutter/flutter#23535

When this lands/rolls into Fuchsia, a manual roll with https://fuchsia-review.googlesource.com/c/topaz/+/241557 is needed.
2019-02-04 13:31:10 -08:00
liyuqian
2972c71f3a Fix typos in Fuchsia (#7563) 2019-01-23 13:27:51 -08:00
Amir Hardon
5646e86a6f
Use the internal_nodes_canvas for all leaf node operations. (#6804)
This also renames the PaintContext's canvas to lead_nodes_canvas so that it
is more explicit on the call sites which canvas is being used.
2018-11-09 12:10:29 -08:00
Michael Goderbauer
70a1106b50
Unify copyright lines (#6757) 2018-11-07 12:24:35 -08:00
Amir Hardon
9e1f546a85
Add an overlay surface on top of embedded UIViews. (#6726)
The overlay surfaces are going to be the same IOSSurface implementation
with the platform views controller set to null (so these are surfaces
that don't support embedding platform views to them).

  * Adds a FlutterOverlayView which is a UIView that's showing an
    overlay surface.
  * Creates an overlay surface for each embedded UIView (done in
    FlutterPlatformViewsController).
  * Changes CompositeEmbeddedView to return a new canvas.
  * Makes the PlatformViewLayer replace the PaintContext's canvas with
    the canvas for the overlay view.
  * Changed canvas in PaintContext to be a pointer so it can be changed.

TBD in following PRs:
  * Copy the current canvas state when replacing a canvas in PaintContext.
  * Make FlutterOverlayView work with a GL backend (currently it only
    works with software rendering)
2018-11-01 17:45:16 -07:00
liyuqian
b3e866e8a4
Call drawPath without clip if possible (#5952)
It turns out that Skia is much slower at drawing paint inside a clipped
path than directly drawing that path. (Average frame time of 22ms vs
18ms in flutter_galary transition test.)
2018-08-07 14:47:32 -07:00
liyuqian
ecbb2b28d4
Call drawPaint instead of drawPath if there's clip (#5937)
If we want to avoid the bleeding edge artifact (flutter/flutter#18057 (comment)) using saveLayer, we have to call drawPaint instead of drawPath as anti-aliased drawPath will always have such artifacts.

This is discovered when I try to add golden tests for such bleeding artifacts using our new Clip enum. Here's the updated golden files: flutter/goldens@cb1fa8a?short_path=57b30ce#diff-57b30cea9b10b7ca689009854e12d70e
2018-08-03 17:00:00 -07:00
Chinmay Garde
9f8285ac6c
Remove all dependencies on Garnet. (#5869) 2018-07-26 12:49:34 -07:00
liyuqian
f50e218d99
Rename clip mode to clip behavior (#5853)
* Rename clip mode to clip behavior

So we're consistent across flutter/flutter and flutter/engine

* Clang format
2018-07-25 09:57:10 -07:00
liyuqian
e1cf837a20
Add ClipMode to ClipPath/ClipRRect and PhysicalShape layers (#5647)
For flutter/flutter#18057
2018-07-13 12:38:16 -07:00
liyuqian
d174c4ff01
Remove unnecessary saveLayer (#5420)
saveLayer is slow so we should avoid it as much as possible. If
there are artifacts without saveLayer, then we should report that
to Skia for the fix instead of slowing the performance with
saveLayer.

This PQ makes average rasterizer time drop from 25ms to 18ms in
flutter_gallery transitions perf test on a Nexus 5X.

This partially fixes flutter/flutter#13736 .
We probably still need some work in the opacity layer to squize
all the performance improvements.
2018-05-30 12:50:12 -07:00
Jonah Williams
bb2d177d5e
Allow shadows to be colored when physical layer is drawn by engine (#4812)
* pass shadow_color from dart:ui to physical layer

* default shadow color to SK_ColorBLACK

* add doc comments to pushPhysicalShape
2018-03-19 14:16:17 -07:00
Jim Van Verth
ae3f7ea9d4 Update to latest SkShadowUtils::DrawShadow() (#4705) 2018-02-27 12:42:23 -05:00
amirh
5b0c2ed615
Explicitly check if the shape layer is an oval. (#4577)
isRRect returns false for RRects that are oval.

Fixes flutter/flutter#14186
2018-01-22 12:15:24 -08:00
amirh
05fe72d068
Revive always using SkPath for physical models (#4537) 2018-01-11 15:11:00 -08:00
amirh
b7d99da3e2
Revert "Delete the SkPath/SkRRect code duplication in for physical model layers. (#4519)" (#4527)
This reverts commit d8740c70a58ada74aff5b773e2bec9d622c42a97.
2018-01-08 19:25:56 -08:00
amirh
d8740c70a5
Delete the SkPath/SkRRect code duplication in for physical model layers. (#4519) 2018-01-08 16:13:15 -08:00