Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit cb392b8

Browse files
authored
Merge branch 'main' into tc_scale_3
2 parents 6f6f252 + 2c82dd7 commit cb392b8

File tree

18 files changed

+147
-100
lines changed

18 files changed

+147
-100
lines changed

DEPS

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ vars = {
1818
'llvm_git': 'https://llvm.googlesource.com',
1919
# OCMock is for testing only so there is no google clone
2020
'ocmock_git': 'https://github.com/erikdoe/ocmock.git',
21-
'skia_revision': 'aad8fbb17d690501ba33a811caac135ef7bddd02',
21+
'skia_revision': 'd0991c6af2d68261bb47794edd7f98359f420572',
2222

2323
# WARNING: DO NOT EDIT canvaskit_cipd_instance MANUALLY
2424
# See `lib/web_ui/README.md` for how to roll CanvasKit to a new version.
@@ -53,7 +53,7 @@ vars = {
5353
# Dart is: https://github.com/dart-lang/sdk/blob/main/DEPS
5454
# You can use //tools/dart/create_updated_flutter_deps.py to produce
5555
# updated revision list of existing dependencies.
56-
'dart_revision': '3778952664e024fbb7f35605bee405561c35f4da',
56+
'dart_revision': 'f9d33db519278928591938953cc325a062cd5359',
5757

5858
# WARNING: DO NOT EDIT MANUALLY
5959
# The lines between blank lines above and below are generated by a script. See create_updated_flutter_deps.py
@@ -407,7 +407,7 @@ deps = {
407407
Var('dart_git') + '/leak_tracker.git@c75b0a71bb1b92abf2c692459a7cb2df5f2af083',
408408

409409
'src/third_party/dart/third_party/pkg/linter':
410-
Var('dart_git') + '/linter.git@770c3c5858a112cdb9e8d65e11ba659322700c68',
410+
Var('dart_git') + '/linter.git@e8c878360595c1d268d93f54c09bc843815a42d7',
411411

412412
'src/third_party/dart/third_party/pkg/logging':
413413
Var('dart_git') + '/logging.git@f2fe2ac2a61a269b2e0ce65be330f7af1bc67428',
@@ -889,7 +889,7 @@ deps = {
889889
'packages': [
890890
{
891891
'package': 'fuchsia/sdk/core/mac-amd64',
892-
'version': 'raXixVs2pKxD9ZasBuNMwbtodIy1Ca6edQ5fxI2ehWUC'
892+
'version': 'bb8HXP6JZ60Unjk-WW7NnWpF4jfFZ-BUn9KZJQsyhHMC'
893893
}
894894
],
895895
'condition': 'host_os == "mac" and not download_fuchsia_sdk',
@@ -899,7 +899,7 @@ deps = {
899899
'packages': [
900900
{
901901
'package': 'fuchsia/sdk/core/linux-amd64',
902-
'version': '4fmJ_PQoaE2L9vdx0eX2Tm7JhhRIeEDiROwucvp-MSMC'
902+
'version': 'cgcxIe8D4wb8hQWCV34gOpkrhylRd-ZTpPHWu8KqG5EC'
903903
}
904904
],
905905
'condition': 'host_os == "linux" and not download_fuchsia_sdk',

ci/licenses_golden/excluded_files

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -451,8 +451,6 @@
451451
../../../fuchsia/sdk/linux/arch/x64/sysroot/dist/lib/ld.so.1
452452
../../../fuchsia/sdk/linux/dart/fidl/meta.json
453453
../../../fuchsia/sdk/linux/dart/fuchsia/meta.json
454-
../../../fuchsia/sdk/linux/dart/fuchsia_services/meta.json
455-
../../../fuchsia/sdk/linux/dart/fuchsia_vfs/meta.json
456454
../../../fuchsia/sdk/linux/dart/sl4f/meta.json
457455
../../../fuchsia/sdk/linux/dart/zircon/meta.json
458456
../../../fuchsia/sdk/linux/data/config/symbol_index/meta.json

ci/licenses_golden/licenses_fuchsia

Lines changed: 2 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Signature: 869820427b3df810a57db645de904496
1+
Signature: 3e81dec4f04fe135d77159f875eff05b
22

33
====================================================================================================
44
LIBRARY: fuchsia_sdk
@@ -1150,14 +1150,6 @@ ORIGIN: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/table.dart + ../../../fuchs
11501150
ORIGIN: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/types.dart + ../../../fuchsia/sdk/linux/LICENSE
11511151
ORIGIN: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/unknown_data.dart + ../../../fuchsia/sdk/linux/LICENSE
11521152
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia/lib/src/fakes/fuchsia_fakes.dart + ../../../fuchsia/sdk/linux/LICENSE
1153-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/services.dart + ../../../fuchsia/sdk/linux/LICENSE
1154-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/service_provider_impl.dart + ../../../fuchsia/sdk/linux/LICENSE
1155-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/internal/_error_node.dart + ../../../fuchsia/sdk/linux/LICENSE
1156-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/pseudo_dir.dart + ../../../fuchsia/sdk/linux/LICENSE
1157-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/pseudo_file.dart + ../../../fuchsia/sdk/linux/LICENSE
1158-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/service.dart + ../../../fuchsia/sdk/linux/LICENSE
1159-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/vnode.dart + ../../../fuchsia/sdk/linux/LICENSE
1160-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/vfs.dart + ../../../fuchsia/sdk/linux/LICENSE
11611153
ORIGIN: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/channel.dart + ../../../fuchsia/sdk/linux/LICENSE
11621154
ORIGIN: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/channel_reader.dart + ../../../fuchsia/sdk/linux/LICENSE
11631155
ORIGIN: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/constants.dart + ../../../fuchsia/sdk/linux/LICENSE
@@ -1393,14 +1385,6 @@ FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/table.dart
13931385
FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/types.dart
13941386
FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/unknown_data.dart
13951387
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia/lib/src/fakes/fuchsia_fakes.dart
1396-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/services.dart
1397-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/service_provider_impl.dart
1398-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/internal/_error_node.dart
1399-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/pseudo_dir.dart
1400-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/pseudo_file.dart
1401-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/service.dart
1402-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/vnode.dart
1403-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/vfs.dart
14041388
FILE: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/channel.dart
14051389
FILE: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/channel_reader.dart
14061390
FILE: ../../../fuchsia/sdk/linux/dart/zircon/lib/src/constants.dart
@@ -2089,12 +2073,6 @@ ORIGIN: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/sche
20892073
ORIGIN: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/utc.h + ../../../fuchsia/sdk/linux/LICENSE
20902074
ORIGIN: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/bits.dart + ../../../fuchsia/sdk/linux/LICENSE
20912075
ORIGIN: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/union.dart + ../../../fuchsia/sdk/linux/LICENSE
2092-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/incoming.dart + ../../../fuchsia/sdk/linux/LICENSE
2093-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/outgoing.dart + ../../../fuchsia/sdk/linux/LICENSE
2094-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/composed_pseudo_dir.dart + ../../../fuchsia/sdk/linux/LICENSE
2095-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/internal/_flags.dart + ../../../fuchsia/sdk/linux/LICENSE
2096-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/pseudo_vmo_file.dart + ../../../fuchsia/sdk/linux/LICENSE
2097-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/vmo_file.dart + ../../../fuchsia/sdk/linux/LICENSE
20982076
ORIGIN: ../../../fuchsia/sdk/linux/dart/sl4f/lib/sl4f.dart + ../../../fuchsia/sdk/linux/LICENSE
20992077
ORIGIN: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/audio.dart + ../../../fuchsia/sdk/linux/LICENSE
21002078
ORIGIN: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/device_log.dart + ../../../fuchsia/sdk/linux/LICENSE
@@ -2391,12 +2369,6 @@ FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/syscalls/schedu
23912369
FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/utc.h
23922370
FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/bits.dart
23932371
FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/union.dart
2394-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/incoming.dart
2395-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/outgoing.dart
2396-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/composed_pseudo_dir.dart
2397-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/internal/_flags.dart
2398-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/pseudo_vmo_file.dart
2399-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/vmo_file.dart
24002372
FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/sl4f.dart
24012373
FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/audio.dart
24022374
FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/device_log.dart
@@ -3055,49 +3027,12 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30553027
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30563028
====================================================================================================
30573029

3058-
====================================================================================================
3059-
LIBRARY: fuchsia_sdk
3060-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/component_context.dart + ../../../LICENSE
3061-
TYPE: LicenseType.bsd
3062-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/component_context.dart
3063-
----------------------------------------------------------------------------------------------------
3064-
Copyright 2021 The Chromium Authors. All rights reserved.
3065-
3066-
Redistribution and use in source and binary forms, with or without
3067-
modification, are permitted provided that the following conditions are
3068-
met:
3069-
3070-
* Redistributions of source code must retain the above copyright
3071-
notice, this list of conditions and the following disclaimer.
3072-
* Redistributions in binary form must reproduce the above
3073-
copyright notice, this list of conditions and the following disclaimer
3074-
in the documentation and/or other materials provided with the
3075-
distribution.
3076-
* Neither the name of Google Inc. nor the names of its
3077-
contributors may be used to endorse or promote products derived from
3078-
this software without specific prior written permission.
3079-
3080-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
3081-
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3082-
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
3083-
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
3084-
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
3085-
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
3086-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3087-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3088-
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3089-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3090-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3091-
====================================================================================================
3092-
30933030
====================================================================================================
30943031
LIBRARY: fuchsia_sdk
30953032
ORIGIN: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/availability.h + ../../../fuchsia/sdk/linux/LICENSE
30963033
ORIGIN: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/availability.h + ../../../fuchsia/sdk/linux/LICENSE
30973034
ORIGIN: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/codegen_common.dart + ../../../fuchsia/sdk/linux/LICENSE
30983035
ORIGIN: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/wire_format.dart + ../../../fuchsia/sdk/linux/LICENSE
3099-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/dart_vm.dart + ../../../fuchsia/sdk/linux/LICENSE
3100-
ORIGIN: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/remote_dir.dart + ../../../fuchsia/sdk/linux/LICENSE
31013036
ORIGIN: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/camera_metrics.dart + ../../../fuchsia/sdk/linux/LICENSE
31023037
ORIGIN: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/flatland_latency.dart + ../../../fuchsia/sdk/linux/LICENSE
31033038
ORIGIN: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/virtual_camera.dart + ../../../fuchsia/sdk/linux/LICENSE
@@ -3227,8 +3162,6 @@ FILE: ../../../fuchsia/sdk/linux/arch/arm64/sysroot/include/zircon/availability.
32273162
FILE: ../../../fuchsia/sdk/linux/arch/x64/sysroot/include/zircon/availability.h
32283163
FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/codegen_common.dart
32293164
FILE: ../../../fuchsia/sdk/linux/dart/fidl/lib/src/wire_format.dart
3230-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_services/lib/src/dart_vm.dart
3231-
FILE: ../../../fuchsia/sdk/linux/dart/fuchsia_vfs/lib/src/remote_dir.dart
32323165
FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/camera_metrics.dart
32333166
FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/trace_processing/metrics/flatland_latency.dart
32343167
FILE: ../../../fuchsia/sdk/linux/dart/sl4f/lib/src/virtual_camera.dart
@@ -4458,4 +4391,4 @@ permissive licensing, and of not having licensing issues being an
44584391
obstacle to adoption, that text has been removed.
44594392
====================================================================================================
44604393

4461-
Total license count: 15
4394+
Total license count: 14

ci/licenses_golden/licenses_skia

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Signature: 67abad62d2448056ba909f1b3a1d22cc
1+
Signature: 2e06f34c1d31b6a90cc91901cab95622
22

33
====================================================================================================
44
LIBRARY: etc1

ci/licenses_golden/licenses_third_party

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Signature: 9f86222aa6db876fc3b9024e8952cb82
1+
Signature: ffefec138c66941aafdebc4b00959b14
22

33
====================================================================================================
44
LIBRARY: angle
@@ -41951,6 +41951,7 @@ ORIGIN: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/date_patch_patch.da
4195141951
ORIGIN: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_interop_patch.dart + ../../../third_party/dart/LICENSE
4195241952
ORIGIN: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_interop_unsafe_patch.dart + ../../../third_party/dart/LICENSE
4195341953
ORIGIN: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_string.dart + ../../../third_party/dart/LICENSE
41954+
ORIGIN: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_typed_array.dart + ../../../third_party/dart/LICENSE
4195441955
ORIGIN: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_types.dart + ../../../third_party/dart/LICENSE
4195541956
ORIGIN: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/record_patch.dart + ../../../third_party/dart/LICENSE
4195641957
ORIGIN: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/string_buffer_create.dart + ../../../third_party/dart/LICENSE
@@ -41987,6 +41988,7 @@ FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/date_patch_patch.dart
4198741988
FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_interop_patch.dart
4198841989
FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_interop_unsafe_patch.dart
4198941990
FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_string.dart
41991+
FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_typed_array.dart
4199041992
FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/js_types.dart
4199141993
FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/record_patch.dart
4199241994
FILE: ../../../third_party/dart/sdk/lib/_internal/wasm/lib/string_buffer_create.dart

display_list/utils/dl_matrix_clip_tracker.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class Data3x3 : public DisplayListMatrixClipTracker::Data {
9292
SkMatrix matrix_;
9393
};
9494

95-
static bool is_3x3(const SkM44& m) {
95+
bool DisplayListMatrixClipTracker::is_3x3(const SkM44& m) {
9696
// clang-format off
9797
return ( m.rc(0, 2) == 0 &&
9898
m.rc(1, 2) == 0 &&

display_list/utils/dl_matrix_clip_tracker.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ class DisplayListMatrixClipTracker {
2727
DisplayListMatrixClipTracker(const SkRect& cull_rect, const SkMatrix& matrix);
2828
DisplayListMatrixClipTracker(const SkRect& cull_rect, const SkM44& matrix);
2929

30+
static bool is_3x3(const SkM44& m44);
31+
3032
SkRect base_device_cull_rect() const { return saved_[0]->device_cull_rect(); }
3133

3234
bool using_4x4_matrix() const { return current_->is_4x4(); }

flow/diff_context.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ void DiffContext::PushTransform(const SkMatrix& transform) {
5757
clip_tracker_.transform(transform);
5858
}
5959

60+
void DiffContext::PushTransform(const SkM44& transform) {
61+
clip_tracker_.transform(transform);
62+
}
63+
6064
void DiffContext::MakeCurrentTransformIntegral() {
6165
// TODO(knopp): This is duplicated from LayerStack. Maybe should be part of
6266
// clip tracker?

flow/diff_context.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "display_list/utils/dl_matrix_clip_tracker.h"
1313
#include "flutter/flow/paint_region.h"
1414
#include "flutter/fml/macros.h"
15+
#include "third_party/skia/include/core/SkM44.h"
1516
#include "third_party/skia/include/core/SkMatrix.h"
1617
#include "third_party/skia/include/core/SkRect.h"
1718

@@ -70,6 +71,7 @@ class DiffContext {
7071

7172
// Pushes additional transform for current subtree
7273
void PushTransform(const SkMatrix& transform);
74+
void PushTransform(const SkM44& transform);
7375

7476
// Pushes cull rect for current subtree
7577
bool PushCullRect(const SkRect& clip);

flow/layers/layer_state_stack.cc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -577,9 +577,13 @@ void MutatorContext::transform(const SkMatrix& matrix) {
577577
}
578578

579579
void MutatorContext::transform(const SkM44& m44) {
580-
layer_state_stack_->maybe_save_layer_for_transform(save_needed_);
581-
save_needed_ = false;
582-
layer_state_stack_->push_transform(m44);
580+
if (DisplayListMatrixClipTracker::is_3x3(m44)) {
581+
transform(m44.asM33());
582+
} else {
583+
layer_state_stack_->maybe_save_layer_for_transform(save_needed_);
584+
save_needed_ = false;
585+
layer_state_stack_->push_transform(m44);
586+
}
583587
}
584588

585589
void MutatorContext::integralTransform() {

flow/layers/transform_layer.cc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@
88

99
namespace flutter {
1010

11-
TransformLayer::TransformLayer(const SkMatrix& transform)
12-
: transform_(transform) {
13-
// Checks (in some degree) that SkMatrix transform_ is valid and initialized.
11+
TransformLayer::TransformLayer(const SkM44& transform) : transform_(transform) {
12+
// Checks (in some degree) that SkM44 transform_ is valid and initialized.
1413
//
1514
// If transform_ is uninitialized, this assert may look flaky as it doesn't
1615
// fail all the time, and some rerun may make it pass. But don't ignore it and
@@ -47,7 +46,7 @@ void TransformLayer::Preroll(PrerollContext* context) {
4746
SkRect child_paint_bounds = SkRect::MakeEmpty();
4847
PrerollChildren(context, &child_paint_bounds);
4948

50-
transform_.mapRect(&child_paint_bounds);
49+
transform_.asM33().mapRect(&child_paint_bounds);
5150
set_paint_bounds(child_paint_bounds);
5251
}
5352

flow/layers/transform_layer.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ namespace flutter {
1313
// at all. Hence |set_transform| must be called with an initialized SkMatrix.
1414
class TransformLayer : public ContainerLayer {
1515
public:
16-
explicit TransformLayer(const SkMatrix& transform);
16+
explicit TransformLayer(const SkMatrix& transform)
17+
: TransformLayer(SkM44(transform)) {}
18+
explicit TransformLayer(const SkM44& transform);
1719

1820
void Diff(DiffContext* context, const Layer* old_layer) override;
1921

@@ -22,7 +24,7 @@ class TransformLayer : public ContainerLayer {
2224
void Paint(PaintContext& context) const override;
2325

2426
private:
25-
SkMatrix transform_;
27+
SkM44 transform_;
2628

2729
FML_DISALLOW_COPY_AND_ASSIGN(TransformLayer);
2830
};

0 commit comments

Comments
 (0)