blob: 87ae5ab173bba209cc09190c6d0f85b0035ffa48 [file] [log] [blame]
// 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_LIB_UI_PAINTING_ENGINE_LAYER_H_
#define FLUTTER_LIB_UI_PAINTING_ENGINE_LAYER_H_
#include "flutter/flow/layers/container_layer.h"
#include "flutter/lib/ui/dart_wrapper.h"
namespace tonic {
class DartLibraryNatives;
} // namespace tonic
namespace flutter {
class EngineLayer;
class EngineLayer : public RefCountedDartWrappable<EngineLayer> {
DEFINE_WRAPPERTYPEINFO();
public:
~EngineLayer() override;
static void MakeRetained(Dart_Handle dart_handle,
std::shared_ptr<flutter::ContainerLayer> layer) {
auto engine_layer = fml::MakeRefCounted<EngineLayer>(layer);
engine_layer->AssociateWithDartWrapper(dart_handle);
}
static void RegisterNatives(tonic::DartLibraryNatives* natives);
void dispose();
std::shared_ptr<flutter::ContainerLayer> Layer() const { return layer_; }
private:
explicit EngineLayer(std::shared_ptr<flutter::ContainerLayer> layer);
std::shared_ptr<flutter::ContainerLayer> layer_;
FML_FRIEND_MAKE_REF_COUNTED(EngineLayer);
};
} // namespace flutter
#endif // FLUTTER_LIB_UI_PAINTING_ENGINE_LAYER_H_