92 Commits

Author SHA1 Message Date
Brandon DeRosier
05cdbafd70 [Impeller] Add DlRuntimeEffect, pipe RuntimeStage through the DL (flutter/engine#36708) 2022-10-14 14:46:28 -07:00
Jason Simmons
0faaa9756f Apply path effects from a DlPaint to a DisplayListBuilder (flutter/engine#36669) 2022-10-10 22:29:19 +00:00
Jason Simmons
f763f1b96f Convert a dart:ui Paint to a DisplayList DlPaint (flutter/engine#36629) 2022-10-07 17:29:49 +00:00
gaaclarke
e41c775200 Removed instances of unnecessary values (flutter/engine#36221) 2022-09-26 21:28:04 +00:00
Brandon DeRosier
3dda74eed7 Implement local matrix filter (flutter/engine#36309) 2022-09-21 13:12:19 -07:00
Chris Bracken
b84473ce93 [lint] Update local variable names in display_list (flutter/engine#36097)
This updates local variable names to use clang `lower_case` style in the
display_list directory. This is one of several patches to update our
variable names to a consistent style before enabling enforcement in our
clang-tidy rules.

This is a formatting-only change with no intended semantic change.
2022-09-12 17:33:22 -07:00
Dan Field
08312a825e Lint and fix bugprone-use-after-move violations (flutter/engine#35978) 2022-09-09 02:41:03 +00:00
Callum Moffat
ce10462a1d Fix crash on ImageFilter.blur with very small sigma (flutter/engine#35890) 2022-09-09 00:14:57 +00:00
xiaomiao
56505ea5ef Add function restoreToCount to Canvas. (flutter/engine#35798) 2022-09-01 13:09:02 +00:00
Dan Field
fd9fdbf6b8 Support deferred GPU images in ImageShaders (flutter/engine#35323) 2022-08-18 23:12:11 +00:00
JsouLiang
924a207dde Use DlImageFilter for ImageFilterLayer (flutter/engine#34837) 2022-08-16 19:24:48 +00:00
Jim Graham
5f9579eae8 Display list multiplexer (flutter/engine#35421) 2022-08-16 05:34:52 +00:00
Jim Graham
6dc961e278 add missing break statements in makeWithLocalMatrix (flutter/engine#35346) 2022-08-11 18:26:16 +00:00
JsouLiang
35e4972207 optimize out unnecessary save restore pairs (flutter/engine#34967)
* drafting the solution to optimize out unnecessary save restore pairs

* remove unnecessary save/restore pairs

* delete the calculator change;

* fix some logic; Add some testcases

* Add test for set DlPaint

* update test cases

* Prune TranslateTriggersDeferredSave unittest
2022-08-11 15:48:40 +08:00
JsouLiang
073693e034 Create DlLocalMatrixImageFilter (flutter/engine#34878) 2022-08-11 07:44:51 +00:00
ColdPaleLight
2077ba5ed2 Make 'DlImageColorSource' work with 'DlImage's (flutter/engine#35258) 2022-08-10 05:47:06 +00:00
ColdPaleLight
0589683136 Change the time unit of 'DisplayListBuilderBenchmarks' to 'kMicrosecond' (flutter/engine#35228) 2022-08-08 17:32:05 +00:00
Jim Graham
e41e8bd0c7 add check to prevent using DLCanvasRecorder after Build (flutter/engine#35172) 2022-08-08 06:09:04 +00:00
Jim Graham
74e390f3d4 fix typos buider -> builder (flutter/engine#35104) 2022-08-02 22:58:03 +00:00
ColdPaleLight
cbda16b4b4 Create benchmarks for DisplayListBuilder (flutter/engine#34910) 2022-07-29 18:56:02 +00:00
Jason Simmons
eeaa43b4ba Roll Clang and Abseil (flutter/engine#34953) 2022-07-28 22:08:04 +00:00
Jim Graham
7af36e613b Fix the best guess results from DlComposeImageFilter with unbounded children (flutter/engine#34956) 2022-07-28 04:48:03 +00:00
ColdPaleLight
b204f9ddbe Make ui.Canvas.getDestinationClipBounds works with matrix (flutter/engine#34835) 2022-07-28 03:23:04 +00:00
Jim Graham
0f8e7ddf2a Rtree from displaylist (flutter/engine#34809) 2022-07-21 19:56:04 +00:00
Brandon DeRosier
b14c460a7a [Impeller] Copy user indices directly into buffer for DrawVertices (flutter/engine#34792) 2022-07-20 21:04:04 +00:00
Jim Graham
178d113afe move definition of DLOpFlags to matching .cc file (flutter/engine#34674) 2022-07-19 22:02:03 +00:00
Kaushik Iska
9103a4992e [impeller] Fix linkage issue when impeller_enable_vulkan = true (flutter/engine#34763) 2022-07-19 18:54:03 +00:00
Jim Graham
acc31da24e Remove canvas render test skia bug workarounds (flutter/engine#34513) 2022-07-13 19:46:05 +00:00
Jim Graham
f30c24ccb3 fix empty bounds for flat sets of drawPoints (flutter/engine#34430) 2022-07-01 21:09:04 +00:00
Jim Graham
8168381dad Reland "render BackdropFilter layers directly to DisplayListBuilder" (flutter/engine#34381) 2022-06-29 22:26:04 +00:00
Jim Graham
fda51f006d Revert "Reland "render BackdropFilter layers directly to DisplayListBuilder"" (flutter/engine#34367) 2022-06-29 18:42:06 +00:00
Jim Graham
8986613de1 Reland "render BackdropFilter layers directly to DisplayListBuilder" (flutter/engine#34337) 2022-06-27 23:44:03 +00:00
Jim Graham
33f417d7d8 Revert "render BackdropFilter layers directly to DisplayListBuilder (#34146)" (flutter/engine#34334)
This reverts commit 7dffa322971112332579563b5df97186010a06c2. Landing on red to fix the build.
2022-06-27 14:46:52 -07:00
Jim Graham
7dffa32297 render BackdropFilter layers directly to DisplayListBuilder (flutter/engine#34146) 2022-06-27 20:44:09 +00:00
Dan Field
3724bc6427 Implement toGpuImage, a synchronous, GPU-resident version of (flutter/engine#33736)
* Implement toGpuImage, a synchronous, GPU-resident version of
Picture.toImage.

This method kicks off asynchronous work on the raster task runner.
If it fails to rasterize, it will synchronously throw later when
the user attempts to draw to a canvas.

This supports several use cases:

- Quickly snapping off an expensive-to-rasterize image for reuse
  across multiple frames.
- Applying multi-pass filters to a render target.

This patch amends flutter_tester so that it can produce an image
object, but that image will always be a grey and white four square checkerboard.

Adds support for CanvasKit on Web, which basically already used
this method for its Picture.toImage implementation.

Throws an UnsupportedError for HTML on Web, since any implementation
there would almost certainly be slower than drawPicture.
2022-06-24 16:14:42 -07:00
ColdPaleLight
b2861bd9b7 Make DisplayList DispatchHelpers prevent against extra restore calls (flutter/engine#34247) 2022-06-23 20:15:05 +00:00
Dan Field
0586f7b588 Drop --enable-display-list flag, remove associated branched code (flutter/engine#34233) 2022-06-23 00:07:04 +00:00
Chris Bracken
53a9648da9 [lint] Merge impeller .clang-tidy into main config (flutter/engine#33692)
Merges most (but not all) of the impeller .clang-tidy rules into the
main .clang-tidy config. Merges:

readability-identifier-naming.PrivateMemberSuffix (_)
readability-identifier-naming.EnumConstantPrefix (k)
modernize-use-default-member-init.UseAssignment
Does not merge:

readability-identifier-naming.PublicMethodCase (CamelCase)
readability-identifier-naming.PrivateMethodCase (CamelCase)
These last two are not merged due to the non-trivial number of existing
field accessors that use field_name() methods to directly return
field_name_. While these are permitted by the C++ style guide, we may
want to move to a single, simple rule and name everything in CamelCase.
These can be enabled in a followup patch.

No new tests added, since this change is style-only.
2022-06-21 11:52:42 -07:00
JsouLiang
f5189d13e8 Add DlSamplingOptions & DlFilterMode (flutter/engine#34024) 2022-06-17 19:26:04 +00:00
Jim Graham
c4a10d6630 add currentTransform/Clip methods to DL and ui.Canvas (flutter/engine#33308) 2022-06-14 18:53:06 -07:00
Jim Graham
f8e874e945 add backdrop option to DisplayList::saveLayer (flutter/engine#33854) 2022-06-06 15:23:06 -07:00
Chris Bracken
56fbdd0232 [lint] Enforce k prefix for global constants (flutter/engine#33666)
Enforces that all global constants are prefixed with a 'k' as per the
style guide and updates the codebase into conformance where necessary.

This does not change any public API.

Additional testing provided by the addition of the lint rule.

Ref: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#begin-global-constant-names-with-prefix-k
2022-05-27 18:33:38 -07:00
JsouLiang
8a5b063ca0 Use DlPathEffect Object (flutter/engine#32159)
* Define the DlPathEffect Object

* Complete the DlPathEffect Object

* Add DlPathEffect Unittests

* Cut down only DLDashPathEffect

* Create Intervals by other mode

* Fix unittest issues

* Delete base_quals, check array equal first

* Change licenses file and deps

* Add effect_bounds for DlPathEffect; Delete invalid test cases;

* Change the intervals API; fix the DlUnknownPathEffect::effect_bounds bug; update test cases

* fix some suggests of comments

* Change SetPathEffect one line like the others

* Change the DisplayListStreamDispatcher::setBlendMode api

* Delete licenses

* change the display_list_dispatcher setPathEffect api

* Update Licenses

* fix conflict
2022-05-12 09:45:30 +08:00
David Worsham
88c5519cfa [fuchsia] Migrate unittests to CFv2 (flutter/engine#32878) 2022-05-06 18:54:05 -07:00
Jim Graham
48b5e26cf7 Do not create incomplete DlColorSource objects from Skia gradients (flutter/engine#33131) 2022-05-05 14:29:06 -07:00
Brandon DeRosier
cf5cd00b95 Roll Skia and update display list tests (flutter/engine#33021) 2022-04-29 21:16:29 -07:00
Jim Graham
5997dd3e9d use new DlObjects throughout the DisplayList code (flutter/engine#32896) 2022-04-29 13:59:06 -07:00
Jim Graham
0e92250c2a Display list test executables (flutter/engine#32973) 2022-04-27 17:04:07 -07:00
Jim Graham
29e74fa44c Render DisplayLists to leaf_builder by reference and handle opacity (flutter/engine#32880) 2022-04-22 19:34:04 -07:00
Jim Graham
1afb88d9e4 Reland: simplify the logic around computing subtree opacity inheritance (flutter/engine#32853) 2022-04-22 16:19:04 -07:00