mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
* Reland fuchsia external view embedder will be shared with platform view This reverts commit 9b752790f4d25ab238576c719208d7a38c6293f3. * wait for the external view embedder to be initialized before creating shell
38 lines
1009 B
C++
38 lines
1009 B
C++
// Copyright 2013 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef FLUTTER_FLOW_LAYERS_CLIP_RECT_LAYER_H_
|
|
#define FLUTTER_FLOW_LAYERS_CLIP_RECT_LAYER_H_
|
|
|
|
#include "flutter/flow/layers/container_layer.h"
|
|
|
|
namespace flutter {
|
|
|
|
class ClipRectLayer : public ContainerLayer {
|
|
public:
|
|
ClipRectLayer(const SkRect& clip_rect, Clip clip_behavior);
|
|
|
|
void Preroll(PrerollContext* context, const SkMatrix& matrix) override;
|
|
void Paint(PaintContext& context) const override;
|
|
|
|
bool UsesSaveLayer() const {
|
|
return clip_behavior_ == Clip::antiAliasWithSaveLayer;
|
|
}
|
|
|
|
#if defined(LEGACY_FUCHSIA_EMBEDDER)
|
|
void UpdateScene(std::shared_ptr<SceneUpdateContext> context) override;
|
|
#endif
|
|
|
|
private:
|
|
SkRect clip_rect_;
|
|
Clip clip_behavior_;
|
|
bool children_inside_clip_ = false;
|
|
|
|
FML_DISALLOW_COPY_AND_ASSIGN(ClipRectLayer);
|
|
};
|
|
|
|
} // namespace flutter
|
|
|
|
#endif // FLUTTER_FLOW_LAYERS_CLIP_RECT_LAYER_H_
|