未验证 提交 6e95e005 编写于 作者: K Kaushik Iska 提交者: GitHub

Platform views have CreateExternalViewEmbedder (#22214)

上级 d5b4f642
......@@ -136,6 +136,13 @@ std::unique_ptr<Surface> PlatformView::CreateRenderingSurface() {
return nullptr;
}
std::shared_ptr<ExternalViewEmbedder>
PlatformView::CreateExternalViewEmbedder() {
FML_DLOG(WARNING)
<< "This platform doesn't support embedding external views.";
return nullptr;
}
void PlatformView::SetNextFrameCallback(const fml::closure& closure) {
if (!closure) {
return;
......
......@@ -7,6 +7,7 @@
#include <memory>
#include "flow/embedded_views.h"
#include "flutter/common/task_runners.h"
#include "flutter/flow/surface.h"
#include "flutter/flow/texture.h"
......@@ -593,6 +594,8 @@ class PlatformView {
// GPU task runner.
virtual std::unique_ptr<Surface> CreateRenderingSurface();
virtual std::shared_ptr<ExternalViewEmbedder> CreateExternalViewEmbedder();
private:
FML_DISALLOW_COPY_AND_ASSIGN(PlatformView);
};
......
......@@ -37,6 +37,12 @@ std::unique_ptr<Surface> ShellTestPlatformViewGL::CreateRenderingSurface() {
return std::make_unique<GPUSurfaceGL>(this, true);
}
// |PlatformView|
std::shared_ptr<ExternalViewEmbedder>
ShellTestPlatformViewGL::CreateExternalViewEmbedder() {
return shell_test_external_view_embedder_;
}
// |PlatformView|
PointerDataDispatcherMaker ShellTestPlatformViewGL::GetDispatcherMaker() {
return [](DefaultPointerDataDispatcher::Delegate& delegate) {
......
......@@ -40,6 +40,9 @@ class ShellTestPlatformViewGL : public ShellTestPlatformView,
// |PlatformView|
std::unique_ptr<Surface> CreateRenderingSurface() override;
// |PlatformView|
std::shared_ptr<ExternalViewEmbedder> CreateExternalViewEmbedder() override;
// |PlatformView|
std::unique_ptr<VsyncWaiter> CreateVSyncWaiter() override;
......
......@@ -39,6 +39,12 @@ std::unique_ptr<Surface> ShellTestPlatformViewVulkan::CreateRenderingSurface() {
shell_test_external_view_embedder_);
}
// |PlatformView|
std::shared_ptr<ExternalViewEmbedder>
ShellTestPlatformViewVulkan::CreateExternalViewEmbedder() {
return shell_test_external_view_embedder_;
}
// |PlatformView|
PointerDataDispatcherMaker ShellTestPlatformViewVulkan::GetDispatcherMaker() {
return [](DefaultPointerDataDispatcher::Delegate& delegate) {
......
......@@ -76,6 +76,9 @@ class ShellTestPlatformViewVulkan : public ShellTestPlatformView {
// |PlatformView|
std::unique_ptr<Surface> CreateRenderingSurface() override;
// |PlatformView|
std::shared_ptr<ExternalViewEmbedder> CreateExternalViewEmbedder() override;
// |PlatformView|
std::unique_ptr<VsyncWaiter> CreateVSyncWaiter() override;
......
......@@ -307,6 +307,12 @@ std::unique_ptr<Surface> PlatformViewAndroid::CreateRenderingSurface() {
return android_surface_->CreateGPUSurface();
}
// |PlatformView|
std::shared_ptr<ExternalViewEmbedder>
PlatformViewAndroid::CreateExternalViewEmbedder() {
return external_view_embedder_;
}
// |PlatformView|
sk_sp<GrDirectContext> PlatformViewAndroid::CreateResourceContext() const {
if (!android_surface_) {
......
......@@ -127,6 +127,9 @@ class PlatformViewAndroid final : public PlatformView {
// |PlatformView|
std::unique_ptr<Surface> CreateRenderingSurface() override;
// |PlatformView|
std::shared_ptr<ExternalViewEmbedder> CreateExternalViewEmbedder() override;
// |PlatformView|
sk_sp<GrDirectContext> CreateResourceContext() const override;
......
......@@ -140,6 +140,9 @@ class PlatformViewIOS final : public PlatformView {
// |PlatformView|
std::unique_ptr<Surface> CreateRenderingSurface() override;
// |PlatformView|
std::shared_ptr<ExternalViewEmbedder> CreateExternalViewEmbedder() override;
// |PlatformView|
sk_sp<GrDirectContext> CreateResourceContext() const override;
......
......@@ -140,6 +140,11 @@ std::unique_ptr<Surface> PlatformViewIOS::CreateRenderingSurface() {
return ios_surface_->CreateGPUSurface();
}
// |PlatformView|
std::shared_ptr<ExternalViewEmbedder> PlatformViewIOS::CreateExternalViewEmbedder() {
return ios_surface_factory_->GetExternalViewEmbedder();
}
// |PlatformView|
sk_sp<GrDirectContext> PlatformViewIOS::CreateResourceContext() const {
return ios_context_->CreateResourceContext();
......
......@@ -77,6 +77,12 @@ std::unique_ptr<Surface> PlatformViewEmbedder::CreateRenderingSurface() {
return embedder_surface_->CreateGPUSurface();
}
// |PlatformView|
std::shared_ptr<ExternalViewEmbedder>
PlatformViewEmbedder::CreateExternalViewEmbedder() {
return external_view_embedder_;
}
// |PlatformView|
sk_sp<GrDirectContext> PlatformViewEmbedder::CreateResourceContext() const {
if (embedder_surface_ == nullptr) {
......
......@@ -82,6 +82,9 @@ class PlatformViewEmbedder final : public PlatformView {
// |PlatformView|
std::unique_ptr<Surface> CreateRenderingSurface() override;
// |PlatformView|
std::shared_ptr<ExternalViewEmbedder> CreateExternalViewEmbedder() override;
// |PlatformView|
sk_sp<GrDirectContext> CreateResourceContext() const override;
......
......@@ -586,6 +586,12 @@ std::unique_ptr<flutter::Surface> PlatformView::CreateRenderingSurface() {
return on_create_surface_callback_ ? on_create_surface_callback_() : nullptr;
}
// |flutter::PlatformView|
std::shared_ptr<flutter::ExternalViewEmbedder>
PlatformView::CreateExternalViewEmbedder() {
return external_view_embedder_;
}
// |flutter::PlatformView|
void PlatformView::HandlePlatformMessage(
fml::RefPtr<flutter::PlatformMessage> message) {
......
......@@ -121,6 +121,10 @@ class PlatformView final : public flutter::PlatformView,
// |flutter::PlatformView|
std::unique_ptr<flutter::Surface> CreateRenderingSurface() override;
// |flutter::PlatformView|
std::shared_ptr<flutter::ExternalViewEmbedder> CreateExternalViewEmbedder()
override;
// |flutter::PlatformView|
void HandlePlatformMessage(
fml::RefPtr<flutter::PlatformMessage> message) override;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册