mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Platform views have CreateExternalViewEmbedder (flutter/engine#22214)
This commit is contained in:
parent
93761b4ae8
commit
ea42f7eaa0
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user