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

Explain why OpacityLayer has an offset field #9713

Merged
merged 2 commits into from
Jul 8, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions flow/layers/opacity_layer.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: typo - propagate

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Done.

// that offset to all the leaf layers (e.g., PictureLayer). That will make
// 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 propagation as repainting the OpacityLayer is expensive.
OpacityLayer(int alpha, const SkPoint& offset);
~OpacityLayer() override;

Expand Down