| // 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. |
| |
| #include "flutter/shell/platform/embedder/embedder_render_target_impeller.h" |
| |
| #include "flutter/fml/logging.h" |
| #include "flutter/impeller/renderer/render_target.h" |
| |
| namespace flutter { |
| |
| EmbedderRenderTargetImpeller::EmbedderRenderTargetImpeller( |
| FlutterBackingStore backing_store, |
| std::shared_ptr<impeller::AiksContext> aiks_context, |
| std::unique_ptr<impeller::RenderTarget> impeller_target, |
| fml::closure on_release, |
| fml::closure framebuffer_destruction_callback) |
| : EmbedderRenderTarget(backing_store, std::move(on_release)), |
| aiks_context_(std::move(aiks_context)), |
| impeller_target_(std::move(impeller_target)), |
| framebuffer_destruction_callback_( |
| std::move(framebuffer_destruction_callback)) { |
| FML_DCHECK(aiks_context_); |
| FML_DCHECK(impeller_target_); |
| } |
| |
| EmbedderRenderTargetImpeller::~EmbedderRenderTargetImpeller() { |
| if (framebuffer_destruction_callback_) { |
| framebuffer_destruction_callback_(); |
| } |
| } |
| |
| sk_sp<SkSurface> EmbedderRenderTargetImpeller::GetSkiaSurface() const { |
| return nullptr; |
| } |
| |
| impeller::RenderTarget* EmbedderRenderTargetImpeller::GetImpellerRenderTarget() |
| const { |
| return impeller_target_.get(); |
| } |
| |
| std::shared_ptr<impeller::AiksContext> |
| EmbedderRenderTargetImpeller::GetAiksContext() const { |
| return aiks_context_; |
| } |
| |
| SkISize EmbedderRenderTargetImpeller::GetRenderTargetSize() const { |
| auto size = impeller_target_->GetRenderTargetSize(); |
| return SkISize::Make(size.width, size.height); |
| } |
| |
| } // namespace flutter |