From ad0607cbffe607591600f1f7d4343bb4dfaa2c2b Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Mon, 8 Jul 2019 14:03:45 -0700 Subject: [PATCH 1/2] Explain why OpacityLayer has an offset field --- flow/layers/opacity_layer.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/flow/layers/opacity_layer.h b/flow/layers/opacity_layer.h index 9e9555ffec5d6..24ba47ecf4e58 100644 --- a/flow/layers/opacity_layer.h +++ b/flow/layers/opacity_layer.h @@ -15,6 +15,16 @@ namespace flutter { // |EnsureSingleChild| will assert if there are no children. class OpacityLayer : public ContainerLayer { public: + // An offset is provided here because OpacityLayer.addToScene method in the + // Flutter framework can take an optional offset argument. + // + // By default, that offset is always zero, and all the offsets are handled by + // some parent TransformLayers. But we allow the offset to be non-zero for + // backward compatibility. If it's non-zero, the old behavior is to propage + // that offset to all the leaf layers (e.g., PictureLayer). That will make + // the retained rendering inefficient as a small offset change could propgate + // to many leaf layers. Therefore we try to capture that offset here to stop + // the propgation as repainting the OpacityLayer is expensive. OpacityLayer(int alpha, const SkPoint& offset); ~OpacityLayer() override; From e1475fa2eded0dac0a48eeaab2683dc675937fed Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Mon, 8 Jul 2019 14:18:37 -0700 Subject: [PATCH 2/2] Typo --- flow/layers/opacity_layer.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flow/layers/opacity_layer.h b/flow/layers/opacity_layer.h index 24ba47ecf4e58..795d8841ba6ed 100644 --- a/flow/layers/opacity_layer.h +++ b/flow/layers/opacity_layer.h @@ -22,9 +22,9 @@ class OpacityLayer : public ContainerLayer { // some parent TransformLayers. But we allow the offset to be non-zero for // backward compatibility. If it's non-zero, the old behavior is to propage // that offset to all the leaf layers (e.g., PictureLayer). That will make - // the retained rendering inefficient as a small offset change could propgate + // the retained rendering inefficient as a small offset change could propagate // to many leaf layers. Therefore we try to capture that offset here to stop - // the propgation as repainting the OpacityLayer is expensive. + // the propagation as repainting the OpacityLayer is expensive. OpacityLayer(int alpha, const SkPoint& offset); ~OpacityLayer() override;