提交 9eb446e0 编写于 作者: C Chinmay Garde 提交者: GitHub

Move shell to //flutter and split shell/BUILD.gn into smaller pieces for each subcomponent. (#3053)

* Namespaces have been updated to reflect the move from //flutter/sky/shell to //flutter/shell.
* shell/BUILD.gn file has been split into smaller GN files for each subcomponent of the shell (common, GPU, diagnostic, testing).
* GN dependencies have been rewritten to stop exposing common shell dependencies as public. Duplicates have also been removed.
* GPU subcomponent has been updated make it more suitable for Vulkan integration.
* The GLFW backend has been resurrected.
上级 52c1243f
...@@ -24,7 +24,6 @@ group("flutter") { ...@@ -24,7 +24,6 @@ group("flutter") {
if (is_ios) { if (is_ios) {
deps += [ deps += [
"//flutter/services/dynamic:sdk_lib_archive", "//flutter/services/dynamic:sdk_lib_archive",
"//flutter/sky/shell:flutter_framework",
] ]
} }
} }
......
...@@ -45,7 +45,7 @@ allowed_hosts = [ ...@@ -45,7 +45,7 @@ allowed_hosts = [
] ]
deps = { deps = {
'src': 'https://github.com/flutter/buildroot.git' + '@' + '7b77c0acedf708749b68304cc5f0ac469c9d7136', 'src': 'https://github.com/flutter/buildroot.git' + '@' + '1c9494e60378bd119d910d530344077fc091b3a5',
# Fuchsia compatibility # Fuchsia compatibility
# #
......
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
group("shell") {
deps = [ "platform" ]
}
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//mojo/dart/embedder/embedder.gni")
dart_embedder_resources("generate_embedder_diagnostic_server_resources_cc") {
inputs = [
"//flutter/shell/common/diagnostic/diagnostic_server.dart"
]
root_prefix = "//flutter/shell/common/diagnostic/"
output = "$target_gen_dir/embedder_diagnostic_server_resources.cc"
table_name = "sky_embedder_diagnostic_server"
}
source_set("common") {
sources = [
"$target_gen_dir/embedder_diagnostic_server_resources.cc",
"animator.cc",
"animator.h",
"diagnostic/diagnostic_server.cc",
"diagnostic/diagnostic_server.h",
"engine.cc",
"engine.h",
"picture_serializer.cc",
"picture_serializer.h",
"platform_view.cc",
"platform_view.h",
"platform_view_service_protocol.cc",
"platform_view_service_protocol.h",
"rasterizer.cc",
"rasterizer.h",
"shell.cc",
"shell.h",
"switches.cc",
"switches.h",
"systrace_logger.cc",
"systrace_logger.h",
"tracing_controller.cc",
"tracing_controller.h",
"ui_delegate.cc",
"ui_delegate.h",
]
deps = [
"//base",
"//base:i18n",
"//dart/runtime/vm:libdart_platform",
"//dart/runtime:libdart",
"//flutter/assets",
"//flutter/common",
"//flutter/flow",
"//flutter/glue",
"//flutter/lib/ui",
"//flutter/runtime",
"//flutter/services/engine:interfaces",
"//flutter/services/vsync",
"//flutter/skia",
"//flutter/sky/engine/wtf",
"//flutter/synchronization",
"//lib/ftl",
"//lib/tonic",
"//mojo/application",
"//mojo/message_pump",
"//mojo/public/cpp/bindings:utility",
"//mojo/public/interfaces/application",
"//mojo/services/vsync/interfaces",
":generate_embedder_diagnostic_server_resources_cc",
]
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/ui/animator.h" #include "flutter/shell/common/animator.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop.h"
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
#include "flutter/common/threads.h" #include "flutter/common/threads.h"
#include "lib/ftl/time/stopwatch.h" #include "lib/ftl/time/stopwatch.h"
namespace sky {
namespace shell { namespace shell {
Animator::Animator(Rasterizer* rasterizer, Engine* engine) Animator::Animator(Rasterizer* rasterizer, Engine* engine)
...@@ -20,7 +19,7 @@ Animator::Animator(Rasterizer* rasterizer, Engine* engine) ...@@ -20,7 +19,7 @@ Animator::Animator(Rasterizer* rasterizer, Engine* engine)
pending_frame_semaphore_(1), pending_frame_semaphore_(1),
paused_(false), paused_(false),
weak_factory_(this) { weak_factory_(this) {
new services::vsync::VsyncProviderFallbackImpl( new sky::services::vsync::VsyncProviderFallbackImpl(
mojo::InterfaceRequest<::vsync::VSyncProvider>( mojo::InterfaceRequest<::vsync::VSyncProvider>(
mojo::GetProxy(&fallback_vsync_provider_))); mojo::GetProxy(&fallback_vsync_provider_)));
} }
...@@ -144,4 +143,3 @@ void Animator::AwaitVSync( ...@@ -144,4 +143,3 @@ void Animator::AwaitVSync(
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,20 +2,19 @@ ...@@ -2,20 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_UI_ANIMATOR_H_ #ifndef SHELL_COMMON_ANIMATOR_H_
#define SKY_SHELL_UI_ANIMATOR_H_ #define SHELL_COMMON_ANIMATOR_H_
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "flutter/sky/shell/rasterizer.h" #include "flutter/services/vsync/fallback/vsync_provider_fallback_impl.h"
#include "flutter/sky/shell/ui/engine.h" #include "flutter/shell/common/engine.h"
#include "flutter/shell/common/rasterizer.h"
#include "flutter/synchronization/pipeline.h" #include "flutter/synchronization/pipeline.h"
#include "flutter/synchronization/semaphore.h" #include "flutter/synchronization/semaphore.h"
#include "lib/ftl/memory/ref_ptr.h" #include "lib/ftl/memory/ref_ptr.h"
#include "lib/ftl/time/time_point.h" #include "lib/ftl/time/time_point.h"
#include "mojo/services/vsync/interfaces/vsync.mojom.h" #include "mojo/services/vsync/interfaces/vsync.mojom.h"
#include "flutter/services/vsync/fallback/vsync_provider_fallback_impl.h"
namespace sky {
namespace shell { namespace shell {
class Animator { class Animator {
...@@ -57,6 +56,5 @@ class Animator { ...@@ -57,6 +56,5 @@ class Animator {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_UI_ANIMATOR_H_ #endif // SHELL_COMMON_ANIMATOR_H_
...@@ -2,17 +2,17 @@ ...@@ -2,17 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/diagnostic/diagnostic_server.h" #include "flutter/shell/common/diagnostic/diagnostic_server.h"
#include "dart/runtime/include/dart_api.h" #include "dart/runtime/include/dart_api.h"
#include "dart/runtime/include/dart_native_api.h" #include "dart/runtime/include/dart_native_api.h"
#include "flutter/common/threads.h" #include "flutter/common/threads.h"
#include "flutter/flow/compositor_context.h" #include "flutter/flow/compositor_context.h"
#include "flutter/runtime/embedder_resources.h" #include "flutter/runtime/embedder_resources.h"
#include "flutter/sky/shell/gpu/picture_serializer.h" #include "flutter/shell/common/engine.h"
#include "flutter/sky/shell/rasterizer.h" #include "flutter/shell/common/rasterizer.h"
#include "flutter/sky/shell/shell.h" #include "flutter/shell/common/shell.h"
#include "flutter/sky/shell/ui/engine.h" #include "flutter/shell/common/picture_serializer.h"
#include "lib/ftl/logging.h" #include "lib/ftl/logging.h"
#include "lib/tonic/dart_binding_macros.h" #include "lib/tonic/dart_binding_macros.h"
#include "lib/tonic/dart_library_natives.h" #include "lib/tonic/dart_library_natives.h"
...@@ -25,7 +25,6 @@ extern ResourcesEntry __sky_embedder_diagnostic_server_resources_[]; ...@@ -25,7 +25,6 @@ extern ResourcesEntry __sky_embedder_diagnostic_server_resources_[];
} }
} }
namespace sky {
namespace shell { namespace shell {
using tonic::DartLibraryNatives; using tonic::DartLibraryNatives;
...@@ -134,7 +133,7 @@ void DiagnosticServer::SkiaPictureTask(Dart_Port port_id) { ...@@ -134,7 +133,7 @@ void DiagnosticServer::SkiaPictureTask(Dart_Port port_id) {
sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture(); sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
SkDynamicMemoryWStream stream; SkDynamicMemoryWStream stream;
sky::PngPixelSerializer serializer; PngPixelSerializer serializer;
picture->serialize(&stream, &serializer); picture->serialize(&stream, &serializer);
SkAutoTUnref<SkData> picture_data(stream.copyToData()); SkAutoTUnref<SkData> picture_data(stream.copyToData());
...@@ -149,4 +148,3 @@ void DiagnosticServer::SkiaPictureTask(Dart_Port port_id) { ...@@ -149,4 +148,3 @@ void DiagnosticServer::SkiaPictureTask(Dart_Port port_id) {
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include "dart/runtime/include/dart_api.h" #include "dart/runtime/include/dart_api.h"
namespace sky {
namespace shell { namespace shell {
class DiagnosticServer { class DiagnosticServer {
...@@ -20,6 +19,5 @@ class DiagnosticServer { ...@@ -20,6 +19,5 @@ class DiagnosticServer {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_ENGINE_CORE_DIAGNOSTIC_DIAGNOSTIC_SERVER_H_ #endif // SKY_ENGINE_CORE_DIAGNOSTIC_DIAGNOSTIC_SERVER_H_
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/ui/engine.h" #include "flutter/shell/common/engine.h"
#include <sys/stat.h> #include <sys/stat.h>
#include <unistd.h> #include <unistd.h>
...@@ -19,14 +19,13 @@ ...@@ -19,14 +19,13 @@
#include "flutter/runtime/dart_controller.h" #include "flutter/runtime/dart_controller.h"
#include "flutter/runtime/dart_init.h" #include "flutter/runtime/dart_init.h"
#include "flutter/runtime/runtime_init.h" #include "flutter/runtime/runtime_init.h"
#include "flutter/shell/common/animator.h"
#include "flutter/sky/engine/public/web/Sky.h" #include "flutter/sky/engine/public/web/Sky.h"
#include "flutter/sky/shell/ui/animator.h"
#include "lib/ftl/files/path.h" #include "lib/ftl/files/path.h"
#include "mojo/public/cpp/application/connect.h" #include "mojo/public/cpp/application/connect.h"
#include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkPictureRecorder.h" #include "third_party/skia/include/core/SkPictureRecorder.h"
namespace sky {
namespace shell { namespace shell {
namespace { namespace {
...@@ -115,7 +114,7 @@ void Engine::OnOutputSurfaceDestroyed(const ftl::Closure& gpu_continuation) { ...@@ -115,7 +114,7 @@ void Engine::OnOutputSurfaceDestroyed(const ftl::Closure& gpu_continuation) {
blink::Threads::Gpu()->PostTask(gpu_continuation); blink::Threads::Gpu()->PostTask(gpu_continuation);
} }
void Engine::SetServices(ServicesDataPtr services) { void Engine::SetServices(sky::ServicesDataPtr services) {
services_ = services.Pass(); services_ = services.Pass();
if (services_->incoming_services) { if (services_->incoming_services) {
...@@ -140,7 +139,7 @@ void Engine::SetServices(ServicesDataPtr services) { ...@@ -140,7 +139,7 @@ void Engine::SetServices(ServicesDataPtr services) {
animator_->set_vsync_provider(vsync_provider.Pass()); animator_->set_vsync_provider(vsync_provider.Pass());
} }
void Engine::OnViewportMetricsChanged(ViewportMetricsPtr metrics) { void Engine::OnViewportMetricsChanged(sky::ViewportMetricsPtr metrics) {
viewport_metrics_ = metrics.Pass(); viewport_metrics_ = metrics.Pass();
if (runtime_) if (runtime_)
runtime_->SetViewportMetrics(viewport_metrics_); runtime_->SetViewportMetrics(viewport_metrics_);
...@@ -335,4 +334,3 @@ void Engine::Render(std::unique_ptr<flow::LayerTree> layer_tree) { ...@@ -335,4 +334,3 @@ void Engine::Render(std::unique_ptr<flow::LayerTree> layer_tree) {
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,16 +2,16 @@ ...@@ -2,16 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_UI_ENGINE_H_ #ifndef SHELL_COMMON_ENGINE_H_
#define SKY_SHELL_UI_ENGINE_H_ #define SHELL_COMMON_ENGINE_H_
#include "flutter/assets/zip_asset_store.h" #include "flutter/assets/zip_asset_store.h"
#include "flutter/glue/drain_data_pipe_job.h" #include "flutter/glue/drain_data_pipe_job.h"
#include "flutter/runtime/runtime_controller.h" #include "flutter/runtime/runtime_controller.h"
#include "flutter/runtime/runtime_delegate.h" #include "flutter/runtime/runtime_delegate.h"
#include "flutter/services/engine/sky_engine.mojom.h" #include "flutter/services/engine/sky_engine.mojom.h"
#include "flutter/sky/shell/rasterizer.h" #include "flutter/shell/common/rasterizer.h"
#include "flutter/sky/shell/ui_delegate.h" #include "flutter/shell/common/ui_delegate.h"
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
#include "lib/ftl/memory/weak_ptr.h" #include "lib/ftl/memory/weak_ptr.h"
#include "mojo/public/cpp/application/service_provider_impl.h" #include "mojo/public/cpp/application/service_provider_impl.h"
...@@ -23,13 +23,11 @@ ...@@ -23,13 +23,11 @@
#include "mojo/services/asset_bundle/interfaces/asset_bundle.mojom.h" #include "mojo/services/asset_bundle/interfaces/asset_bundle.mojom.h"
#include "third_party/skia/include/core/SkPicture.h" #include "third_party/skia/include/core/SkPicture.h"
namespace sky {
class PlatformImpl;
namespace shell { namespace shell {
class Animator; class Animator;
class Engine : public UIDelegate, class Engine : public UIDelegate,
public SkyEngine, public sky::SkyEngine,
public blink::RuntimeDelegate { public blink::RuntimeDelegate {
public: public:
explicit Engine(Rasterizer* rasterizer); explicit Engine(Rasterizer* rasterizer);
...@@ -57,8 +55,8 @@ class Engine : public UIDelegate, ...@@ -57,8 +55,8 @@ class Engine : public UIDelegate,
void OnOutputSurfaceDestroyed(const ftl::Closure& gpu_continuation) override; void OnOutputSurfaceDestroyed(const ftl::Closure& gpu_continuation) override;
// SkyEngine implementation: // SkyEngine implementation:
void SetServices(ServicesDataPtr services) override; void SetServices(sky::ServicesDataPtr services) override;
void OnViewportMetricsChanged(ViewportMetricsPtr metrics) override; void OnViewportMetricsChanged(sky::ViewportMetricsPtr metrics) override;
void OnLocaleChanged(const mojo::String& language_code, void OnLocaleChanged(const mojo::String& language_code,
const mojo::String& country_code) override; const mojo::String& country_code) override;
void OnPointerPacket(pointer::PointerPacketPtr packet) override; void OnPointerPacket(pointer::PointerPacketPtr packet) override;
...@@ -96,7 +94,7 @@ class Engine : public UIDelegate, ...@@ -96,7 +94,7 @@ class Engine : public UIDelegate,
std::unique_ptr<Animator> animator_; std::unique_ptr<Animator> animator_;
ServicesDataPtr services_; sky::ServicesDataPtr services_;
mojo::ServiceProviderImpl service_provider_impl_; mojo::ServiceProviderImpl service_provider_impl_;
mojo::ServiceProviderPtr incoming_services_; mojo::ServiceProviderPtr incoming_services_;
mojo::BindingSet<mojo::ServiceProvider> service_provider_bindings_; mojo::BindingSet<mojo::ServiceProvider> service_provider_bindings_;
...@@ -107,7 +105,7 @@ class Engine : public UIDelegate, ...@@ -107,7 +105,7 @@ class Engine : public UIDelegate,
std::unique_ptr<glue::DrainDataPipeJob> snapshot_drainer_; std::unique_ptr<glue::DrainDataPipeJob> snapshot_drainer_;
std::string initial_route_; std::string initial_route_;
ViewportMetricsPtr viewport_metrics_; sky::ViewportMetricsPtr viewport_metrics_;
std::string language_code_; std::string language_code_;
std::string country_code_; std::string country_code_;
mojo::Binding<SkyEngine> binding_; mojo::Binding<SkyEngine> binding_;
...@@ -123,6 +121,5 @@ class Engine : public UIDelegate, ...@@ -123,6 +121,5 @@ class Engine : public UIDelegate,
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_UI_ENGINE_H_ #endif // SHELL_COMMON_ENGINE_H_
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/gpu/picture_serializer.h" #include "flutter/shell/common/picture_serializer.h"
#include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkData.h" #include "third_party/skia/include/core/SkData.h"
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "third_party/skia/include/core/SkPixelSerializer.h" #include "third_party/skia/include/core/SkPixelSerializer.h"
#include "third_party/skia/include/core/SkStream.h" #include "third_party/skia/include/core/SkStream.h"
namespace sky { namespace shell {
bool PngPixelSerializer::onUseEncodedData(const void*, size_t) { bool PngPixelSerializer::onUseEncodedData(const void*, size_t) {
return true; return true;
...@@ -33,4 +33,4 @@ void SerializePicture(const std::string& path, SkPicture* picture) { ...@@ -33,4 +33,4 @@ void SerializePicture(const std::string& path, SkPicture* picture) {
picture->serialize(&stream, &serializer); picture->serialize(&stream, &serializer);
} }
} // namespace sky } // namespace shell
...@@ -2,15 +2,15 @@ ...@@ -2,15 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_GPU_PICTURE_SERIALIZER_H_ #ifndef SHELL_GPU_PICTURE_SERIALIZER_H_
#define SKY_SHELL_GPU_PICTURE_SERIALIZER_H_ #define SHELL_GPU_PICTURE_SERIALIZER_H_
#include <string> #include <string>
#include "third_party/skia/include/core/SkPicture.h" #include "third_party/skia/include/core/SkPicture.h"
#include "third_party/skia/include/core/SkPixelSerializer.h" #include "third_party/skia/include/core/SkPixelSerializer.h"
namespace sky { namespace shell {
class PngPixelSerializer : public SkPixelSerializer { class PngPixelSerializer : public SkPixelSerializer {
public: public:
...@@ -20,6 +20,6 @@ class PngPixelSerializer : public SkPixelSerializer { ...@@ -20,6 +20,6 @@ class PngPixelSerializer : public SkPixelSerializer {
void SerializePicture(const std::string& path, SkPicture* picture); void SerializePicture(const std::string& path, SkPicture* picture);
} // namespace sky } // namespace shell
#endif // SKY_SHELL_GPU_PICTURE_SERIALIZER_H_ #endif // SHELL_GPU_PICTURE_SERIALIZER_H_
...@@ -2,17 +2,16 @@ ...@@ -2,17 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform_view.h" #include "flutter/shell/common/platform_view.h"
#include <utility> #include <utility>
#include "flutter/common/threads.h" #include "flutter/common/threads.h"
#include "flutter/glue/movable_wrapper.h" #include "flutter/glue/movable_wrapper.h"
#include "flutter/lib/ui/painting/resource_context.h" #include "flutter/lib/ui/painting/resource_context.h"
#include "flutter/sky/shell/rasterizer.h" #include "flutter/shell/common/rasterizer.h"
#include "third_party/skia/include/gpu/gl/GrGLInterface.h" #include "third_party/skia/include/gpu/gl/GrGLInterface.h"
namespace sky {
namespace shell { namespace shell {
PlatformView::Config::Config() : rasterizer(nullptr) {} PlatformView::Config::Config() : rasterizer(nullptr) {}
...@@ -39,7 +38,8 @@ PlatformView::~PlatformView() { ...@@ -39,7 +38,8 @@ PlatformView::~PlatformView() {
blink::Threads::UI()->PostTask([engine]() { delete engine; }); blink::Threads::UI()->PostTask([engine]() { delete engine; });
} }
void PlatformView::ConnectToEngine(mojo::InterfaceRequest<SkyEngine> request) { void PlatformView::ConnectToEngine(
mojo::InterfaceRequest<sky::SkyEngine> request) {
ftl::WeakPtr<UIDelegate> ui_delegate = config_.ui_delegate; ftl::WeakPtr<UIDelegate> ui_delegate = config_.ui_delegate;
auto wrapped_request = glue::WrapMovable(std::move(request)); auto wrapped_request = glue::WrapMovable(std::move(request));
blink::Threads::UI()->PostTask([ui_delegate, wrapped_request]() mutable { blink::Threads::UI()->PostTask([ui_delegate, wrapped_request]() mutable {
...@@ -138,4 +138,3 @@ void PlatformView::SetupResourceContextOnIOThreadPerform( ...@@ -138,4 +138,3 @@ void PlatformView::SetupResourceContextOnIOThreadPerform(
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,21 +2,20 @@ ...@@ -2,21 +2,20 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_VIEW_H_ #ifndef COMMON_PLATFORM_VIEW_H_
#define SKY_SHELL_PLATFORM_VIEW_H_ #define COMMON_PLATFORM_VIEW_H_
#include <memory> #include <memory>
#include "flutter/shell/common/engine.h"
#include "flutter/shell/common/shell.h"
#include "flutter/shell/common/ui_delegate.h"
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
#include "lib/ftl/memory/weak_ptr.h" #include "lib/ftl/memory/weak_ptr.h"
#include "lib/ftl/synchronization/waitable_event.h" #include "lib/ftl/synchronization/waitable_event.h"
#include "flutter/sky/shell/shell.h"
#include "flutter/sky/shell/ui_delegate.h"
#include "flutter/sky/shell/ui/engine.h"
#include "third_party/skia/include/core/SkSize.h" #include "third_party/skia/include/core/SkSize.h"
#include "third_party/skia/include/gpu/GrContext.h" #include "third_party/skia/include/gpu/GrContext.h"
namespace sky {
namespace shell { namespace shell {
class Rasterizer; class Rasterizer;
...@@ -45,7 +44,7 @@ class PlatformView { ...@@ -45,7 +44,7 @@ class PlatformView {
virtual ~PlatformView(); virtual ~PlatformView();
void ConnectToEngine(mojo::InterfaceRequest<SkyEngine> request); void ConnectToEngine(mojo::InterfaceRequest<sky::SkyEngine> request);
void NotifyCreated(); void NotifyCreated();
...@@ -53,7 +52,7 @@ class PlatformView { ...@@ -53,7 +52,7 @@ class PlatformView {
void NotifyDestroyed(); void NotifyDestroyed();
virtual ftl::WeakPtr<sky::shell::PlatformView> GetWeakViewPtr() = 0; virtual ftl::WeakPtr<PlatformView> GetWeakViewPtr() = 0;
virtual uint64_t DefaultFramebuffer() const = 0; virtual uint64_t DefaultFramebuffer() const = 0;
...@@ -92,6 +91,5 @@ class PlatformView { ...@@ -92,6 +91,5 @@ class PlatformView {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_VIEW_H_ #endif // COMMON_PLATFORM_VIEW_H_
...@@ -2,15 +2,14 @@ ...@@ -2,15 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform_view_service_protocol.h" #include "flutter/shell/common/platform_view_service_protocol.h"
#include <string.h> #include <string.h>
#include <string> #include <string>
#include "flutter/sky/shell/shell.h" #include "flutter/shell/common/shell.h"
namespace sky {
namespace shell { namespace shell {
namespace { namespace {
...@@ -91,7 +90,8 @@ static void AppendFlutterView(std::stringstream* stream, ...@@ -91,7 +90,8 @@ static void AppendFlutterView(std::stringstream* stream,
<< std::hex << view_id << std::dec; << std::hex << view_id << std::dec;
if (isolate_id != ILLEGAL_PORT) { if (isolate_id != ILLEGAL_PORT) {
// Append the isolate (if it exists). // Append the isolate (if it exists).
*stream << "\"," << "\"isolate\":"; *stream << "\","
<< "\"isolate\":";
AppendIsolateRef(stream, isolate_id, isolate_name); AppendIsolateRef(stream, isolate_id, isolate_name);
} }
*stream << "}"; *stream << "}";
...@@ -155,9 +155,7 @@ bool PlatformViewServiceProtocol::RunInView(const char* method, ...@@ -155,9 +155,7 @@ bool PlatformViewServiceProtocol::RunInView(const char* method,
Dart_Port main_port = ILLEGAL_PORT; Dart_Port main_port = ILLEGAL_PORT;
std::string isolate_name; std::string isolate_name;
shell.RunInPlatformView(view_id_as_num, main_script, packages_file, shell.RunInPlatformView(view_id_as_num, main_script, packages_file,
asset_directory, asset_directory, &view_existed, &main_port,
&view_existed,
&main_port,
&isolate_name); &isolate_name);
if (!view_existed) { if (!view_existed) {
...@@ -216,4 +214,3 @@ bool PlatformViewServiceProtocol::ListViews(const char* method, ...@@ -216,4 +214,3 @@ bool PlatformViewServiceProtocol::ListViews(const char* method,
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,15 +2,14 @@ ...@@ -2,15 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_VIEW_SERVICE_PROTOCOL_H_ #ifndef SHELL_COMMON_VIEW_SERVICE_PROTOCOL_H_
#define SKY_SHELL_PLATFORM_VIEW_SERVICE_PROTOCOL_H_ #define SHELL_COMMON_VIEW_SERVICE_PROTOCOL_H_
#include <memory> #include <memory>
#include "flutter/sky/shell/platform_view.h"
#include "dart/runtime/include/dart_tools_api.h" #include "dart/runtime/include/dart_tools_api.h"
#include "flutter/shell/common/platform_view.h"
namespace sky {
namespace shell { namespace shell {
class PlatformViewServiceProtocol { class PlatformViewServiceProtocol {
...@@ -36,6 +35,5 @@ class PlatformViewServiceProtocol { ...@@ -36,6 +35,5 @@ class PlatformViewServiceProtocol {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_VIEW_SERVICE_PROTOCOL_H_ #endif // SHELL_COMMON_VIEW_SERVICE_PROTOCOL_H_
...@@ -2,13 +2,10 @@ ...@@ -2,13 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/rasterizer.h" #include "flutter/shell/common/rasterizer.h"
namespace sky {
namespace shell { namespace shell {
Rasterizer::~Rasterizer() { Rasterizer::~Rasterizer() {}
}
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_RASTERIZER_H_ #ifndef SHELL_COMMON_RASTERIZER_H_
#define SKY_SHELL_RASTERIZER_H_ #define SHELL_COMMON_RASTERIZER_H_
#include <memory> #include <memory>
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "lib/ftl/synchronization/waitable_event.h" #include "lib/ftl/synchronization/waitable_event.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/binding.h"
namespace sky {
namespace shell { namespace shell {
class PlatformView; class PlatformView;
...@@ -44,6 +43,5 @@ class Rasterizer { ...@@ -44,6 +43,5 @@ class Rasterizer {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_RASTERIZER_H_ #endif // SHELL_COMMON_RASTERIZER_H_
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/shell.h" #include "flutter/shell/common/shell.h"
#include <fcntl.h> #include <fcntl.h>
#include <memory> #include <memory>
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
#include "base/command_line.h" #include "base/command_line.h"
#include "base/i18n/icu_util.h" #include "base/i18n/icu_util.h"
#include "base/lazy_instance.h" #include "base/lazy_instance.h"
#include "base/memory/discardable_memory_allocator.h"
#include "base/memory/discardable_memory.h" #include "base/memory/discardable_memory.h"
#include "base/memory/discardable_memory_allocator.h"
#include "base/posix/eintr_wrapper.h" #include "base/posix/eintr_wrapper.h"
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
...@@ -22,15 +22,14 @@ ...@@ -22,15 +22,14 @@
#include "flutter/common/threads.h" #include "flutter/common/threads.h"
#include "flutter/glue/task_runner_adaptor.h" #include "flutter/glue/task_runner_adaptor.h"
#include "flutter/runtime/dart_init.h" #include "flutter/runtime/dart_init.h"
#include "flutter/shell/common/engine.h"
#include "flutter/shell/common/platform_view_service_protocol.h"
#include "flutter/shell/common/switches.h"
#include "flutter/shell/common/diagnostic/diagnostic_server.h"
#include "flutter/skia/ext/event_tracer_impl.h" #include "flutter/skia/ext/event_tracer_impl.h"
#include "flutter/sky/shell/diagnostic/diagnostic_server.h"
#include "flutter/sky/shell/platform_view_service_protocol.h"
#include "flutter/sky/shell/switches.h"
#include "flutter/sky/shell/ui/engine.h"
#include "lib/ftl/files/unique_fd.h" #include "lib/ftl/files/unique_fd.h"
#include "mojo/message_pump/message_pump_mojo.h" #include "mojo/message_pump/message_pump_mojo.h"
namespace sky {
namespace shell { namespace shell {
namespace { namespace {
...@@ -326,4 +325,3 @@ void Shell::RunInPlatformViewUIThread(uintptr_t view_id, ...@@ -326,4 +325,3 @@ void Shell::RunInPlatformViewUIThread(uintptr_t view_id,
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,18 +2,17 @@ ...@@ -2,18 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_SHELL_H_ #ifndef SHELL_COMMON_SHELL_H_
#define SKY_SHELL_SHELL_H_ #define SHELL_COMMON_SHELL_H_
#include "base/threading/thread.h" #include "base/threading/thread.h"
#include "flutter/shell/common/tracing_controller.h"
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
#include "lib/ftl/memory/ref_ptr.h" #include "lib/ftl/memory/ref_ptr.h"
#include "lib/ftl/memory/weak_ptr.h" #include "lib/ftl/memory/weak_ptr.h"
#include "lib/ftl/synchronization/waitable_event.h" #include "lib/ftl/synchronization/waitable_event.h"
#include "lib/ftl/tasks/task_runner.h" #include "lib/ftl/tasks/task_runner.h"
#include "flutter/sky/shell/tracing_controller.h"
namespace sky {
namespace shell { namespace shell {
class PlatformView; class PlatformView;
...@@ -102,6 +101,5 @@ class Shell { ...@@ -102,6 +101,5 @@ class Shell {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_SHELL_H_ #endif // SHELL_COMMON_SHELL_H_
...@@ -2,11 +2,10 @@ ...@@ -2,11 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/switches.h" #include "flutter/shell/common/switches.h"
#include <iostream> #include <iostream>
namespace sky {
namespace shell { namespace shell {
namespace switches { namespace switches {
...@@ -44,4 +43,3 @@ void PrintUsage(const std::string& executable_name) { ...@@ -44,4 +43,3 @@ void PrintUsage(const std::string& executable_name) {
} // namespace switches } // namespace switches
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,12 +2,11 @@ ...@@ -2,12 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_SWITCHES_H_ #ifndef SHELL_COMMON_SWITCHES_H_
#define SKY_SHELL_SWITCHES_H_ #define SHELL_COMMON_SWITCHES_H_
#include <string> #include <string>
namespace sky {
namespace shell { namespace shell {
namespace switches { namespace switches {
...@@ -34,6 +33,5 @@ void PrintUsage(const std::string& executable_name); ...@@ -34,6 +33,5 @@ void PrintUsage(const std::string& executable_name);
} // namespace switches } // namespace switches
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_SWITCHES_H_ #endif // SHELL_COMMON_SWITCHES_H_
...@@ -2,15 +2,15 @@ ...@@ -2,15 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/systrace_logger.h" #include "flutter/shell/common/systrace_logger.h"
#include "lib/ftl/files/eintr_wrapper.h" #include "lib/ftl/files/eintr_wrapper.h"
#include <fcntl.h> #include <fcntl.h>
#include <unistd.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <unistd.h>
namespace sky {
namespace shell { namespace shell {
static const int kBufferSize = 256; static const int kBufferSize = 256;
...@@ -53,4 +53,3 @@ void SystraceLogger::TraceCount(const char* label, int count) const { ...@@ -53,4 +53,3 @@ void SystraceLogger::TraceCount(const char* label, int count) const {
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,14 +2,13 @@ ...@@ -2,14 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef FLUTTER_SKY_SHELL_SYSTRACE_LOGGER_H_ #ifndef SHELL_COMMON_SYSTRACE_LOGGER_H_
#define FLUTTER_SKY_SHELL_SYSTRACE_LOGGER_H_ #define SHELL_COMMON_SYSTRACE_LOGGER_H_
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
#include <sys/types.h> #include <sys/types.h>
namespace sky {
namespace shell { namespace shell {
class SystraceLogger { class SystraceLogger {
...@@ -32,6 +31,5 @@ class SystraceLogger { ...@@ -32,6 +31,5 @@ class SystraceLogger {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // FLUTTER_SKY_SHELL_SYSTRACE_LOGGER_H_ #endif // SHELL_COMMON_SYSTRACE_LOGGER_H_
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/tracing_controller.h" #include "flutter/shell/common/tracing_controller.h"
#include <string> #include <string>
...@@ -10,10 +10,9 @@ ...@@ -10,10 +10,9 @@
#include "dart/runtime/include/dart_tools_api.h" #include "dart/runtime/include/dart_tools_api.h"
#include "flutter/common/threads.h" #include "flutter/common/threads.h"
#include "flutter/runtime/dart_init.h" #include "flutter/runtime/dart_init.h"
#include "flutter/sky/shell/shell.h" #include "flutter/shell/common/shell.h"
#include "lib/ftl/logging.h" #include "lib/ftl/logging.h"
namespace sky {
namespace shell { namespace shell {
TracingController::TracingController() TracingController::TracingController()
...@@ -211,4 +210,3 @@ std::string TracingController::PictureTracingPathForCurrentTime( ...@@ -211,4 +210,3 @@ std::string TracingController::PictureTracingPathForCurrentTime(
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,14 +2,13 @@ ...@@ -2,14 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef __SKY_SHELL_TRACING_CONTROLLER__ #ifndef SHELL_COMMON_TRACING_CONTROLLER_H_
#define __SKY_SHELL_TRACING_CONTROLLER__ #define SHELL_COMMON_TRACING_CONTROLLER_H_
#include <string> #include <string>
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
namespace sky {
namespace shell { namespace shell {
class TracingController { class TracingController {
...@@ -57,6 +56,5 @@ class TracingController { ...@@ -57,6 +56,5 @@ class TracingController {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif /* defined(__SKY_SHELL_TRACING_CONTROLLER__) */ #endif // SHELL_COMMON_TRACING_CONTROLLER_H_
...@@ -2,13 +2,10 @@ ...@@ -2,13 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/ui_delegate.h" #include "flutter/shell/common/ui_delegate.h"
namespace sky {
namespace shell { namespace shell {
UIDelegate::~UIDelegate() { UIDelegate::~UIDelegate() = default;
}
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,19 +2,19 @@ ...@@ -2,19 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_UI_DELEGATE_H_ #ifndef SHELL_COMMON_DELEGATE_H_
#define SKY_SHELL_UI_DELEGATE_H_ #define SHELL_COMMON_DELEGATE_H_
#include "flutter/services/engine/sky_engine.mojom.h"
#include "lib/ftl/functional/closure.h" #include "lib/ftl/functional/closure.h"
#include "mojo/public/cpp/bindings/interface_request.h" #include "mojo/public/cpp/bindings/interface_request.h"
#include "flutter/services/engine/sky_engine.mojom.h"
namespace sky {
namespace shell { namespace shell {
class UIDelegate { class UIDelegate {
public: public:
virtual void ConnectToEngine(mojo::InterfaceRequest<SkyEngine> request) = 0; virtual void ConnectToEngine(
mojo::InterfaceRequest<sky::SkyEngine> request) = 0;
virtual void OnOutputSurfaceCreated(const ftl::Closure& gpu_continuation) = 0; virtual void OnOutputSurfaceCreated(const ftl::Closure& gpu_continuation) = 0;
...@@ -26,6 +26,5 @@ class UIDelegate { ...@@ -26,6 +26,5 @@ class UIDelegate {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_UI_DELEGATE_H_ #endif // SHELL_COMMON_DELEGATE_H_
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
source_set("gpu") {
sources = [
"ganesh_canvas.cc",
"ganesh_canvas.h",
"gpu_canvas.cc",
"gpu_canvas.h",
"gpu_canvas_gl.cc",
"gpu_canvas_gl.h",
"gpu_canvas_vulkan.cc",
"gpu_canvas_vulkan.h",
"gpu_rasterizer.cc",
"gpu_rasterizer.h",
]
deps = [
"../common",
"//lib/ftl",
"//flutter/skia",
"//flutter/flow",
"//flutter/common",
"//flutter/glue",
"//mojo/public/cpp/system",
]
}
...@@ -2,14 +2,13 @@ ...@@ -2,14 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/gpu/direct/ganesh_canvas.h" #include "flutter/shell/gpu/ganesh_canvas.h"
#include "flutter/flow/gl_connection.h"
#include "lib/ftl/arraysize.h" #include "lib/ftl/arraysize.h"
#include "lib/ftl/logging.h" #include "lib/ftl/logging.h"
#include "third_party/skia/include/gpu/gl/GrGLInterface.h" #include "third_party/skia/include/gpu/gl/GrGLInterface.h"
#include "flutter/flow/gl_connection.h"
namespace sky {
namespace shell { namespace shell {
namespace { namespace {
...@@ -88,4 +87,3 @@ bool GaneshCanvas::IsValid() { ...@@ -88,4 +87,3 @@ bool GaneshCanvas::IsValid() {
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_GPU_DIRECT_GANESH_CANVAS_H_ #ifndef SHELL_GPU_DIRECT_GANESH_CANVAS_H_
#define SKY_SHELL_GPU_DIRECT_GANESH_CANVAS_H_ #define SHELL_GPU_DIRECT_GANESH_CANVAS_H_
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
#include "third_party/skia/include/core/SkSize.h" #include "third_party/skia/include/core/SkSize.h"
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "third_party/skia/include/gpu/gl/GrGLInterface.h" #include "third_party/skia/include/gpu/gl/GrGLInterface.h"
#include "third_party/skia/include/gpu/GrContext.h" #include "third_party/skia/include/gpu/GrContext.h"
namespace sky {
namespace shell { namespace shell {
class GaneshCanvas { class GaneshCanvas {
...@@ -38,6 +37,5 @@ class GaneshCanvas { ...@@ -38,6 +37,5 @@ class GaneshCanvas {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_GPU_DIRECT_GANESH_CANVAS_H_ #endif // SHELL_GPU_DIRECT_GANESH_CANVAS_H_
// Copyright 2016 The Chromium 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 "gpu_canvas.h"
namespace shell {
//
} // namespace shell
...@@ -2,15 +2,15 @@ ...@@ -2,15 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_GLFW_INIT_GLFW_H_ #ifndef SHELL_GPU_GPU_CANVAS_H_
#define SKY_SHELL_PLATFORM_GLFW_INIT_GLFW_H_ #define SHELL_GPU_GPU_CANVAS_H_
#include "lib/ftl/macros.h"
namespace sky {
namespace shell { namespace shell {
bool InitInteractive(); //
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_GLFW_INIT_GLFW_H_ #endif // SHELL_GPU_GPU_CANVAS_H_
// Copyright 2016 The Chromium 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 "gpu_canvas_gl.h"
namespace shell {
//
} // namespace shell
// Copyright 2016 The Chromium 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 SHELL_GPU_GPU_CANVAS_GL_H_
#define SHELL_GPU_GPU_CANVAS_GL_H_
#include "lib/ftl/macros.h"
namespace shell {
//
} // namespace shell
#endif // SHELL_GPU_GPU_CANVAS_GL_H_
// Copyright 2016 The Chromium 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 "gpu_canvas_vulkan.h"
namespace shell {
//
} // namespace shell
// Copyright 2016 The Chromium 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 SHELL_GPU_GPU_CANVAS_VULKAN_H_
#define SHELL_GPU_GPU_CANVAS_VULKAN_H_
#include "lib/ftl/macros.h"
namespace shell {
//
} // namespace shell
#endif // SHELL_GPU_GPU_CANVAS_VULKAN_H_
...@@ -2,50 +2,42 @@ ...@@ -2,50 +2,42 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/gpu/direct/rasterizer_direct.h" #include "gpu_rasterizer.h"
#include <string> #include <string>
#include <utility> #include <utility>
#include "flutter/common/threads.h" #include "flutter/common/threads.h"
#include "flutter/glue/trace_event.h" #include "flutter/glue/trace_event.h"
#include "flutter/sky/engine/wtf/PassRefPtr.h" #include "flutter/shell/common/platform_view.h"
#include "flutter/sky/engine/wtf/RefPtr.h" #include "flutter/shell/common/shell.h"
#include "flutter/sky/shell/gpu/picture_serializer.h" #include "flutter/shell/common/picture_serializer.h"
#include "flutter/sky/shell/platform_view.h"
#include "flutter/sky/shell/shell.h"
#include "mojo/public/cpp/system/data_pipe.h" #include "mojo/public/cpp/system/data_pipe.h"
#include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkPicture.h" #include "third_party/skia/include/core/SkPicture.h"
namespace sky {
namespace shell { namespace shell {
RasterizerDirect::RasterizerDirect() GPURasterizer::GPURasterizer() : platform_view_(nullptr), weak_factory_(this) {
: platform_view_(nullptr), weak_factory_(this) {
auto weak_ptr = weak_factory_.GetWeakPtr(); auto weak_ptr = weak_factory_.GetWeakPtr();
blink::Threads::Gpu()->PostTask( blink::Threads::Gpu()->PostTask(
[weak_ptr]() { Shell::Shared().AddRasterizer(weak_ptr); }); [weak_ptr]() { Shell::Shared().AddRasterizer(weak_ptr); });
} }
RasterizerDirect::~RasterizerDirect() { GPURasterizer::~GPURasterizer() {
weak_factory_.InvalidateWeakPtrs(); weak_factory_.InvalidateWeakPtrs();
Shell::Shared().PurgeRasterizers(); Shell::Shared().PurgeRasterizers();
} }
// Implementation of declaration in sky/shell/rasterizer.h.
std::unique_ptr<Rasterizer> Rasterizer::Create() { std::unique_ptr<Rasterizer> Rasterizer::Create() {
return std::unique_ptr<Rasterizer>(new RasterizerDirect()); return std::unique_ptr<GPURasterizer>(new GPURasterizer());
} }
// sky::shell::Rasterizer override. ftl::WeakPtr<Rasterizer> GPURasterizer::GetWeakRasterizerPtr() {
ftl::WeakPtr<Rasterizer> RasterizerDirect::GetWeakRasterizerPtr() {
return weak_factory_.GetWeakPtr(); return weak_factory_.GetWeakPtr();
} }
// sky::shell::Rasterizer override. void GPURasterizer::Setup(PlatformView* platform_view,
void RasterizerDirect::Setup(
PlatformView* platform_view,
ftl::Closure continuation, ftl::Closure continuation,
ftl::AutoResetWaitableEvent* setup_completion_event) { ftl::AutoResetWaitableEvent* setup_completion_event) {
FTL_CHECK(platform_view) << "Must be able to acquire the view."; FTL_CHECK(platform_view) << "Must be able to acquire the view.";
...@@ -73,7 +65,7 @@ void RasterizerDirect::Setup( ...@@ -73,7 +65,7 @@ void RasterizerDirect::Setup(
setup_completion_event->Signal(); setup_completion_event->Signal();
} }
void RasterizerDirect::Clear(SkColor color) { void GPURasterizer::Clear(SkColor color) {
SkCanvas* canvas = ganesh_canvas_.GetCanvas( SkCanvas* canvas = ganesh_canvas_.GetCanvas(
platform_view_->DefaultFramebuffer(), platform_view_->GetSize()); platform_view_->DefaultFramebuffer(), platform_view_->GetSize());
canvas->clear(color); canvas->clear(color);
...@@ -81,8 +73,7 @@ void RasterizerDirect::Clear(SkColor color) { ...@@ -81,8 +73,7 @@ void RasterizerDirect::Clear(SkColor color) {
platform_view_->SwapBuffers(); platform_view_->SwapBuffers();
} }
// sky::shell::Rasterizer override. void GPURasterizer::Teardown(
void RasterizerDirect::Teardown(
ftl::AutoResetWaitableEvent* teardown_completion_event) { ftl::AutoResetWaitableEvent* teardown_completion_event) {
platform_view_ = nullptr; platform_view_ = nullptr;
last_layer_tree_.reset(); last_layer_tree_.reset();
...@@ -90,20 +81,19 @@ void RasterizerDirect::Teardown( ...@@ -90,20 +81,19 @@ void RasterizerDirect::Teardown(
teardown_completion_event->Signal(); teardown_completion_event->Signal();
} }
// sky::shell::Rasterizer override. flow::LayerTree* GPURasterizer::GetLastLayerTree() {
flow::LayerTree* RasterizerDirect::GetLastLayerTree() {
return last_layer_tree_.get(); return last_layer_tree_.get();
} }
void RasterizerDirect::Draw( void GPURasterizer::Draw(
ftl::RefPtr<flutter::Pipeline<flow::LayerTree>> pipeline) { ftl::RefPtr<flutter::Pipeline<flow::LayerTree>> pipeline) {
TRACE_EVENT0("flutter", "RasterizerDirect::Draw"); TRACE_EVENT0("flutter", "GPURasterizer::Draw");
if (!platform_view_) if (!platform_view_)
return; return;
flutter::Pipeline<flow::LayerTree>::Consumer consumer = flutter::Pipeline<flow::LayerTree>::Consumer consumer =
std::bind(&RasterizerDirect::DoDraw, this, std::placeholders::_1); std::bind(&GPURasterizer::DoDraw, this, std::placeholders::_1);
// Consume as many pipeline items as possible. But yield the event loop // Consume as many pipeline items as possible. But yield the event loop
// between successive tries. // between successive tries.
...@@ -122,7 +112,7 @@ void RasterizerDirect::Draw( ...@@ -122,7 +112,7 @@ void RasterizerDirect::Draw(
} }
} }
void RasterizerDirect::DoDraw(std::unique_ptr<flow::LayerTree> layer_tree) { void GPURasterizer::DoDraw(std::unique_ptr<flow::LayerTree> layer_tree) {
if (!layer_tree) { if (!layer_tree) {
return; return;
} }
...@@ -192,4 +182,3 @@ void RasterizerDirect::DoDraw(std::unique_ptr<flow::LayerTree> layer_tree) { ...@@ -192,4 +182,3 @@ void RasterizerDirect::DoDraw(std::unique_ptr<flow::LayerTree> layer_tree) {
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,23 +2,22 @@ ...@@ -2,23 +2,22 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_GPU_DIRECT_RASTERIZER_DIRECT_H_ #ifndef SHELL_GPU_DIRECT_GPU_RASTERIZER_H_
#define SKY_SHELL_GPU_DIRECT_RASTERIZER_DIRECT_H_ #define SHELL_GPU_DIRECT_GPU_RASTERIZER_H_
#include "flutter/flow/compositor_context.h" #include "flutter/flow/compositor_context.h"
#include "flutter/shell/common/rasterizer.h"
#include "flutter/shell/gpu/ganesh_canvas.h"
#include "lib/ftl/memory/weak_ptr.h" #include "lib/ftl/memory/weak_ptr.h"
#include "lib/ftl/synchronization/waitable_event.h" #include "lib/ftl/synchronization/waitable_event.h"
#include "flutter/sky/shell/gpu/direct/ganesh_canvas.h"
#include "flutter/sky/shell/rasterizer.h"
namespace sky {
namespace shell { namespace shell {
class RasterizerDirect : public Rasterizer { class GPURasterizer : public Rasterizer {
public: public:
RasterizerDirect(); GPURasterizer();
~RasterizerDirect() override; ~GPURasterizer() override;
void Setup(PlatformView* platform_view, void Setup(PlatformView* platform_view,
ftl::Closure continuation, ftl::Closure continuation,
...@@ -29,7 +28,7 @@ class RasterizerDirect : public Rasterizer { ...@@ -29,7 +28,7 @@ class RasterizerDirect : public Rasterizer {
void Teardown( void Teardown(
ftl::AutoResetWaitableEvent* teardown_completion_event) override; ftl::AutoResetWaitableEvent* teardown_completion_event) override;
ftl::WeakPtr<sky::shell::Rasterizer> GetWeakRasterizerPtr() override; ftl::WeakPtr<Rasterizer> GetWeakRasterizerPtr() override;
flow::LayerTree* GetLastLayerTree() override; flow::LayerTree* GetLastLayerTree() override;
...@@ -40,14 +39,13 @@ class RasterizerDirect : public Rasterizer { ...@@ -40,14 +39,13 @@ class RasterizerDirect : public Rasterizer {
flow::CompositorContext compositor_context_; flow::CompositorContext compositor_context_;
std::unique_ptr<flow::LayerTree> last_layer_tree_; std::unique_ptr<flow::LayerTree> last_layer_tree_;
PlatformView* platform_view_; PlatformView* platform_view_;
ftl::WeakPtrFactory<RasterizerDirect> weak_factory_; ftl::WeakPtrFactory<GPURasterizer> weak_factory_;
void DoDraw(std::unique_ptr<flow::LayerTree> tree); void DoDraw(std::unique_ptr<flow::LayerTree> tree);
FTL_DISALLOW_COPY_AND_ASSIGN(RasterizerDirect); FTL_DISALLOW_COPY_AND_ASSIGN(GPURasterizer);
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_GPU_DIRECT_RASTERIZER_DIRECT_H_ #endif // SHELL_GPU_DIRECT_GPU_RASTERIZER_H_
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
group("platform") {
if (is_mac || is_ios) {
deps = [ "darwin" ]
} else if (is_android) {
deps = [ "android" ]
} else if (is_linux) {
deps = [ "linux" ]
} else {
assert(false, "Unknown/Unsupported platform.")
}
}
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
generate_jni("jni_headers") {
visibility = [ ":*" ]
sources = [
"io/flutter/view/FlutterMain.java",
"io/flutter/view/FlutterView.java",
]
jni_package = "shell"
}
shared_library("sky_shell") {
visibility = [ ":*" ]
sources = [
"flutter_main.cc",
"flutter_main.h",
"library_loader.cc",
"platform_view_android.cc",
"platform_view_android.h",
]
deps = [
"//base",
"//dart/runtime:libdart",
"//flutter/common",
"//flutter/flow",
"//flutter/lib/jni",
"//flutter/runtime",
"//flutter/shell/common",
"//flutter/shell/gpu",
"//flutter/skia",
"//flutter/vulkan",
"//lib/ftl",
"//mojo/android:libsystem_java",
"//mojo/edk/base_edk",
"//mojo/edk/system",
":jni_headers",
]
ldflags = [
"-landroid",
"-lEGL",
"-lGLESv2",
]
}
android_library("java") {
visibility = [ ":*" ]
java_files = [
"io/flutter/view/AccessibilityBridge.java",
"io/flutter/view/FlutterMain.java",
"io/flutter/view/FlutterView.java",
"io/flutter/view/ResourceCleaner.java",
"io/flutter/view/ResourceExtractor.java",
"io/flutter/view/ServiceFactory.java",
"io/flutter/view/ServiceProviderImpl.java",
"io/flutter/view/ServiceRegistry.java",
"org/domokit/sky/shell/SkyActivity.java",
"org/domokit/sky/shell/SkyApplication.java",
]
deps = [
"//base:base_java",
"//flutter/services/activity:activity_lib",
"//flutter/services/activity:interfaces_java",
"//flutter/services/common:common_lib",
"//flutter/services/editing:editing_lib",
"//flutter/services/editing:interfaces_java",
"//flutter/services/engine:interfaces_java",
"//flutter/services/media:interfaces_java",
"//flutter/services/media:media_lib",
"//flutter/services/platform:interfaces_java",
"//flutter/services/platform:platform_lib",
"//flutter/services/pointer:interfaces_java",
"//flutter/services/raw_keyboard:interfaces_java",
"//flutter/services/raw_keyboard:raw_keyboard_lib",
"//flutter/services/semantics:interfaces_java",
"//flutter/services/sensors:sensors_lib",
"//flutter/services/vsync:vsync_lib",
"//mojo/android:system_java",
"//mojo/public/interfaces/application:application_java",
"//mojo/public/java:bindings",
"//mojo/public/java:system",
"//mojo/services/sensors/interfaces:interfaces_java",
"//mojo/services/vsync/interfaces:interfaces_java",
]
}
copy_ex("assets") {
visibility = [ ":*" ]
clear_dir = true
dest = "$root_build_dir/sky_shell/assets"
sources = [
"$root_build_dir/icudtl.dat",
]
deps = [
"//third_party/icu:icudata",
]
}
android_apk("android") {
apk_name = "SkyShell"
android_manifest = "AndroidManifest.xml"
native_libs = [ "libsky_shell.so" ]
asset_location = "$root_build_dir/sky_shell/assets"
extensions_to_not_compress = ".flx"
flutter_dist_jar = "$root_build_dir/flutter.jar"
deps = [
"//base:base_java",
":assets",
":java",
":sky_shell",
]
}
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/android/flutter_main.h" #include "flutter/shell/platform/android/flutter_main.h"
#include <vector>
#include "base/android/jni_android.h" #include "base/android/jni_android.h"
#include "base/android/jni_array.h" #include "base/android/jni_array.h"
...@@ -19,7 +21,7 @@ ...@@ -19,7 +21,7 @@
#include "base/threading/simple_thread.h" #include "base/threading/simple_thread.h"
#include "dart/runtime/include/dart_tools_api.h" #include "dart/runtime/include/dart_tools_api.h"
#include "flutter/runtime/start_up.h" #include "flutter/runtime/start_up.h"
#include "flutter/sky/shell/shell.h" #include "flutter/shell/common/shell.h"
#include "jni/FlutterMain_jni.h" #include "jni/FlutterMain_jni.h"
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
#include "mojo/edk/embedder/embedder.h" #include "mojo/edk/embedder/embedder.h"
...@@ -27,7 +29,6 @@ ...@@ -27,7 +29,6 @@
using base::LazyInstance; using base::LazyInstance;
namespace sky {
namespace shell { namespace shell {
namespace { namespace {
...@@ -50,7 +51,7 @@ void InitializeTracing() { ...@@ -50,7 +51,7 @@ void InitializeTracing() {
base::FilePath path; base::FilePath path;
bool result = ::PathService::Get(base::DIR_ANDROID_APP_DATA, &path); bool result = ::PathService::Get(base::DIR_ANDROID_APP_DATA, &path);
DCHECK(result); DCHECK(result);
sky::shell::Shell::Shared().tracing_controller().set_traces_base_path( shell::Shell::Shared().tracing_controller().set_traces_base_path(
path.AsUTF8Unsafe()); path.AsUTF8Unsafe());
} }
...@@ -95,5 +96,4 @@ bool RegisterFlutterMain(JNIEnv* env) { ...@@ -95,5 +96,4 @@ bool RegisterFlutterMain(JNIEnv* env) {
return RegisterNativesImpl(env); return RegisterNativesImpl(env);
} }
} // namespace sky } // namespace shell
} // namespace mojo
...@@ -2,17 +2,15 @@ ...@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_ANDROID_FLUTTER_MAIN_H_ #ifndef SHELL_PLATFORM_ANDROID_FLUTTER_MAIN_H_
#define SKY_SHELL_PLATFORM_ANDROID_FLUTTER_MAIN_H_ #define SHELL_PLATFORM_ANDROID_FLUTTER_MAIN_H_
#include <jni.h> #include <jni.h>
namespace sky {
namespace shell { namespace shell {
bool RegisterFlutterMain(JNIEnv* env); bool RegisterFlutterMain(JNIEnv* env);
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_ANDROID_FLUTTER_MAIN_H_ #endif // SHELL_PLATFORM_ANDROID_FLUTTER_MAIN_H_
...@@ -58,7 +58,7 @@ import org.domokit.vsync.VSyncProviderImpl; ...@@ -58,7 +58,7 @@ import org.domokit.vsync.VSyncProviderImpl;
/** /**
* A class to intialize the Flutter engine. * A class to intialize the Flutter engine.
*/ */
@JNINamespace("sky::shell") @JNINamespace("shell")
public class FlutterMain { public class FlutterMain {
private static final String TAG = "FlutterMain"; private static final String TAG = "FlutterMain";
......
...@@ -71,7 +71,7 @@ import org.domokit.raw_keyboard.RawKeyboardServiceState; ...@@ -71,7 +71,7 @@ import org.domokit.raw_keyboard.RawKeyboardServiceState;
/** /**
* An Android view containing a Flutter app. * An Android view containing a Flutter app.
*/ */
@JNINamespace("sky::shell") @JNINamespace("shell")
public class FlutterView extends SurfaceView public class FlutterView extends SurfaceView
implements AccessibilityManager.AccessibilityStateChangeListener, implements AccessibilityManager.AccessibilityStateChangeListener,
AccessibilityManager.TouchExplorationStateChangeListener { AccessibilityManager.TouchExplorationStateChangeListener {
......
...@@ -12,16 +12,16 @@ ...@@ -12,16 +12,16 @@
#include "flutter/lib/jni/dart_jni.h" #include "flutter/lib/jni/dart_jni.h"
#include "mojo/android/system/base_run_loop.h" #include "mojo/android/system/base_run_loop.h"
#include "mojo/android/system/core_impl.h" #include "mojo/android/system/core_impl.h"
#include "flutter/sky/shell/platform/android/flutter_main.h" #include "flutter/shell/platform/android/flutter_main.h"
#include "flutter/sky/shell/platform/android/platform_view_android.h" #include "flutter/shell/platform/android/platform_view_android.h"
namespace { namespace {
base::android::RegistrationMethod kSkyRegisteredMethods[] = { base::android::RegistrationMethod kSkyRegisteredMethods[] = {
{"CoreImpl", mojo::android::RegisterCoreImpl}, {"CoreImpl", mojo::android::RegisterCoreImpl},
{"BaseRunLoop", mojo::android::RegisterBaseRunLoop}, {"BaseRunLoop", mojo::android::RegisterBaseRunLoop},
{"FlutterView", sky::shell::PlatformViewAndroid::Register}, {"FlutterView", shell::PlatformViewAndroid::Register},
{"FlutterMain", sky::shell::RegisterFlutterMain}, {"FlutterMain", shell::RegisterFlutterMain},
}; };
bool RegisterJNI(JNIEnv* env) { bool RegisterJNI(JNIEnv* env) {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/android/platform_view_android.h" #include "flutter/shell/platform/android/platform_view_android.h"
#include <android/input.h> #include <android/input.h>
#include <android/native_window_jni.h> #include <android/native_window_jni.h>
...@@ -20,11 +20,10 @@ ...@@ -20,11 +20,10 @@
#include "flutter/common/threads.h" #include "flutter/common/threads.h"
#include "flutter/flow/compositor_context.h" #include "flutter/flow/compositor_context.h"
#include "flutter/runtime/dart_service_isolate.h" #include "flutter/runtime/dart_service_isolate.h"
#include "flutter/sky/shell/shell.h" #include "flutter/shell/common/shell.h"
#include "jni/FlutterView_jni.h" #include "jni/FlutterView_jni.h"
#include "third_party/skia/include/core/SkSurface.h" #include "third_party/skia/include/core/SkSurface.h"
namespace sky {
namespace shell { namespace shell {
namespace { namespace {
...@@ -352,7 +351,7 @@ static jlong Attach(JNIEnv* env, ...@@ -352,7 +351,7 @@ static jlong Attach(JNIEnv* env,
jint skyEngineHandle, jint skyEngineHandle,
jobject flutterView) { jobject flutterView) {
PlatformViewAndroid* view = new PlatformViewAndroid(); PlatformViewAndroid* view = new PlatformViewAndroid();
view->ConnectToEngine(mojo::InterfaceRequest<SkyEngine>( view->ConnectToEngine(mojo::InterfaceRequest<sky::SkyEngine>(
mojo::ScopedMessagePipeHandle(mojo::MessagePipeHandle(skyEngineHandle)))); mojo::ScopedMessagePipeHandle(mojo::MessagePipeHandle(skyEngineHandle))));
// Create a weak reference to the flutterView Java object so that we can make // Create a weak reference to the flutterView Java object so that we can make
...@@ -430,7 +429,7 @@ void PlatformViewAndroid::ReleaseSurface() { ...@@ -430,7 +429,7 @@ void PlatformViewAndroid::ReleaseSurface() {
} }
} }
ftl::WeakPtr<sky::shell::PlatformView> PlatformViewAndroid::GetWeakViewPtr() { ftl::WeakPtr<shell::PlatformView> PlatformViewAndroid::GetWeakViewPtr() {
return weak_factory_.GetWeakPtr(); return weak_factory_.GetWeakPtr();
} }
...@@ -507,7 +506,8 @@ void PlatformViewAndroid::RunFromSource(const std::string& main, ...@@ -507,7 +506,8 @@ void PlatformViewAndroid::RunFromSource(const std::string& main,
} }
base::android::ScopedJavaLocalRef<jobject> PlatformViewAndroid::GetBitmap( base::android::ScopedJavaLocalRef<jobject> PlatformViewAndroid::GetBitmap(
JNIEnv* env, jobject obj) { JNIEnv* env,
jobject obj) {
// Render the last frame to an array of pixels on the GPU thread. // Render the last frame to an array of pixels on the GPU thread.
// The pixels will be returned as a global JNI reference to an int array. // The pixels will be returned as a global JNI reference to an int array.
ftl::AutoResetWaitableEvent latch; ftl::AutoResetWaitableEvent latch;
...@@ -549,14 +549,13 @@ base::android::ScopedJavaLocalRef<jobject> PlatformViewAndroid::GetBitmap( ...@@ -549,14 +549,13 @@ base::android::ScopedJavaLocalRef<jobject> PlatformViewAndroid::GetBitmap(
FTL_CHECK(bitmap_config); FTL_CHECK(bitmap_config);
jobject bitmap = env->CallStaticObjectMethod( jobject bitmap = env->CallStaticObjectMethod(
bitmap_class, create_bitmap, bitmap_class, create_bitmap, pixels.obj(), frame_size.width(),
pixels.obj(), frame_size.width(), frame_size.height(), bitmap_config); frame_size.height(), bitmap_config);
return base::android::ScopedJavaLocalRef<jobject>(env, bitmap); return base::android::ScopedJavaLocalRef<jobject>(env, bitmap);
} }
void PlatformViewAndroid::GetBitmapGpuTask( void PlatformViewAndroid::GetBitmapGpuTask(ftl::AutoResetWaitableEvent* latch,
ftl::AutoResetWaitableEvent* latch,
jobject* pixels_out, jobject* pixels_out,
SkISize* size_out) { SkISize* size_out) {
flow::LayerTree* layer_tree = rasterizer_->GetLastLayerTree(); flow::LayerTree* layer_tree = rasterizer_->GetLastLayerTree();
...@@ -574,9 +573,9 @@ void PlatformViewAndroid::GetBitmapGpuTask( ...@@ -574,9 +573,9 @@ void PlatformViewAndroid::GetBitmapGpuTask(
jint* pixels = env->GetIntArrayElements(pixels_array, nullptr); jint* pixels = env->GetIntArrayElements(pixels_array, nullptr);
FTL_CHECK(pixels); FTL_CHECK(pixels);
SkImageInfo image_info = SkImageInfo::Make( SkImageInfo image_info =
frame_size.width(), frame_size.height(), kRGBA_8888_SkColorType, SkImageInfo::Make(frame_size.width(), frame_size.height(),
kPremul_SkAlphaType); kRGBA_8888_SkColorType, kPremul_SkAlphaType);
sk_sp<SkSurface> surface = SkSurface::MakeRasterDirect( sk_sp<SkSurface> surface = SkSurface::MakeRasterDirect(
image_info, pixels, frame_size.width() * sizeof(jint)); image_info, pixels, frame_size.width() * sizeof(jint));
...@@ -609,4 +608,3 @@ void PlatformViewAndroid::GetBitmapGpuTask( ...@@ -609,4 +608,3 @@ void PlatformViewAndroid::GetBitmapGpuTask(
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,16 +2,17 @@ ...@@ -2,16 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_ANDROID_PLATFORM_VIEW_ANDROID_H_ #ifndef SHELL_PLATFORM_ANDROID_PLATFORM_VIEW_ANDROID_H_
#define SKY_SHELL_PLATFORM_ANDROID_PLATFORM_VIEW_ANDROID_H_ #define SHELL_PLATFORM_ANDROID_PLATFORM_VIEW_ANDROID_H_
#include <string>
#include "base/android/jni_android.h" #include "base/android/jni_android.h"
#include "base/android/jni_weak_ref.h" #include "base/android/jni_weak_ref.h"
#include "lib/ftl/memory/weak_ptr.h" #include "lib/ftl/memory/weak_ptr.h"
#include "lib/ftl/synchronization/waitable_event.h" #include "lib/ftl/synchronization/waitable_event.h"
#include "flutter/sky/shell/platform_view.h" #include "flutter/shell/common/platform_view.h"
namespace sky {
namespace shell { namespace shell {
class AndroidGLContext; class AndroidGLContext;
...@@ -20,45 +21,33 @@ class PlatformViewAndroid : public PlatformView { ...@@ -20,45 +21,33 @@ class PlatformViewAndroid : public PlatformView {
public: public:
static bool Register(JNIEnv* env); static bool Register(JNIEnv* env);
explicit PlatformViewAndroid(); PlatformViewAndroid();
~PlatformViewAndroid() override; ~PlatformViewAndroid() override;
// Called from Java
void Detach(JNIEnv* env, jobject obj); void Detach(JNIEnv* env, jobject obj);
// Called from Java
void SurfaceCreated(JNIEnv* env, jobject obj, jobject jsurface); void SurfaceCreated(JNIEnv* env, jobject obj, jobject jsurface);
// Called from Java
void SurfaceChanged(JNIEnv* env, jobject obj, jint backgroundColor); void SurfaceChanged(JNIEnv* env, jobject obj, jint backgroundColor);
// Called from Java
void SurfaceDestroyed(JNIEnv* env, jobject obj); void SurfaceDestroyed(JNIEnv* env, jobject obj);
// Called from Java
base::android::ScopedJavaLocalRef<jobject> GetBitmap(JNIEnv* env, base::android::ScopedJavaLocalRef<jobject> GetBitmap(JNIEnv* env,
jobject obj); jobject obj);
// sky::shell::PlatformView override ftl::WeakPtr<shell::PlatformView> GetWeakViewPtr() override;
ftl::WeakPtr<sky::shell::PlatformView> GetWeakViewPtr() override;
// sky::shell::PlatformView override
uint64_t DefaultFramebuffer() const override; uint64_t DefaultFramebuffer() const override;
// sky::shell::PlatformView override
bool ContextMakeCurrent() override; bool ContextMakeCurrent() override;
// sky::shell::PlatformView override
bool ResourceContextMakeCurrent() override; bool ResourceContextMakeCurrent() override;
// sky::shell::PlatformView override
bool SwapBuffers() override; bool SwapBuffers() override;
// sky::shell::PlatformView override
virtual SkISize GetSize(); virtual SkISize GetSize();
// sky::shell::PlatformView override
virtual void Resize(const SkISize& size); virtual void Resize(const SkISize& size);
virtual void RunFromSource(const std::string& main, virtual void RunFromSource(const std::string& main,
...@@ -86,6 +75,5 @@ class PlatformViewAndroid : public PlatformView { ...@@ -86,6 +75,5 @@ class PlatformViewAndroid : public PlatformView {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_ANDROID_PLATFORM_VIEW_ANDROID_H_ #endif // SHELL_PLATFORM_ANDROID_PLATFORM_VIEW_ANDROID_H_
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
assert(is_mac || is_ios)
group("darwin") {
if (is_mac) {
deps = [
"desktop:shell_application_bundle",
"desktop:shell_standalone",
]
} else if (is_ios) {
deps = [
"ios:flutter_framework",
]
} else {
assert(false, "Unknown darwin platform type.")
}
}
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
source_set("common") {
# Disable the assignment filter because the files will be used on iOS as well
# as Mac.
set_sources_assignment_filter([])
sources = [
"platform_mac.h",
"platform_mac.mm",
"platform_service_provider.cc",
"platform_service_provider.h",
"view_service_provider.cc",
"view_service_provider.h",
]
set_sources_assignment_filter(sources_assignment_filter)
deps = [
"//base",
"//base:i18n",
"//dart/runtime:libdart",
"//flutter/runtime",
"//flutter/services/activity",
"//flutter/services/editing",
"//flutter/services/engine:interfaces",
"//flutter/services/media",
"//flutter/services/platform",
"//flutter/services/pointer:interfaces",
"//flutter/services/vsync",
"//flutter/shell/common",
"//flutter/shell/gpu",
"//flutter/shell/testing",
"//flutter/skia",
"//flutter/sky/engine/wtf",
"//lib/ftl",
"//mojo/common",
"//mojo/edk/base_edk",
"//mojo/edk/system",
"//mojo/public/cpp/bindings:utility",
"//mojo/public/interfaces/application",
]
}
...@@ -2,12 +2,11 @@ ...@@ -2,12 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_MAC_PLATFORM_MAC_H_ #ifndef SHELL_PLATFORM_MAC_PLATFORM_MAC_H_
#define SKY_SHELL_PLATFORM_MAC_PLATFORM_MAC_H_ #define SHELL_PLATFORM_MAC_PLATFORM_MAC_H_
#include "flutter/services/engine/sky_engine.mojom.h" #include "flutter/services/engine/sky_engine.mojom.h"
namespace sky {
namespace shell { namespace shell {
void PlatformMacMain(int argc, const char* argv[], std::string icu_data_path); void PlatformMacMain(int argc, const char* argv[], std::string icu_data_path);
...@@ -15,6 +14,5 @@ void PlatformMacMain(int argc, const char* argv[], std::string icu_data_path); ...@@ -15,6 +14,5 @@ void PlatformMacMain(int argc, const char* argv[], std::string icu_data_path);
bool AttemptLaunchFromCommandLineSwitches(sky::SkyEnginePtr& engine); bool AttemptLaunchFromCommandLineSwitches(sky::SkyEnginePtr& engine);
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_MAC_PLATFORM_MAC_H_ #endif // SHELL_PLATFORM_MAC_PLATFORM_MAC_H_
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/mac/platform_mac.h" #include "flutter/shell/platform/darwin/common/platform_mac.h"
#include <Foundation/Foundation.h> #include <Foundation/Foundation.h>
...@@ -18,15 +18,14 @@ ...@@ -18,15 +18,14 @@
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
#include "dart/runtime/include/dart_tools_api.h" #include "dart/runtime/include/dart_tools_api.h"
#include "flutter/runtime/start_up.h" #include "flutter/runtime/start_up.h"
#include "flutter/shell/common/shell.h"
#include "flutter/shell/common/switches.h"
#include "flutter/shell/common/tracing_controller.h"
#include "flutter/shell/common/ui_delegate.h"
#include "flutter/sky/engine/wtf/MakeUnique.h" #include "flutter/sky/engine/wtf/MakeUnique.h"
#include "flutter/sky/shell/shell.h"
#include "flutter/sky/shell/switches.h"
#include "flutter/sky/shell/tracing_controller.h"
#include "flutter/sky/shell/ui_delegate.h"
#include "mojo/edk/embedder/embedder.h" #include "mojo/edk/embedder/embedder.h"
#include "mojo/edk/embedder/simple_platform_support.h" #include "mojo/edk/embedder/simple_platform_support.h"
namespace sky {
namespace shell { namespace shell {
static void InitializeLogging() { static void InitializeLogging() {
...@@ -42,7 +41,7 @@ static void InitializeLogging() { ...@@ -42,7 +41,7 @@ static void InitializeLogging() {
static void RedirectIOConnectionsToSyslog() { static void RedirectIOConnectionsToSyslog() {
#if TARGET_OS_IPHONE #if TARGET_OS_IPHONE
if (base::CommandLine::ForCurrentProcess()->HasSwitch( if (base::CommandLine::ForCurrentProcess()->HasSwitch(
sky::shell::switches::kNoRedirectToSyslog)) { shell::switches::kNoRedirectToSyslog)) {
return; return;
} }
...@@ -71,14 +70,14 @@ class EmbedderState { ...@@ -71,14 +70,14 @@ class EmbedderState {
InitializeLogging(); InitializeLogging();
base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess();
if (command_line.HasSwitch(sky::shell::switches::kTraceStartup)) { if (command_line.HasSwitch(shell::switches::kTraceStartup)) {
// Usually, all tracing within flutter is managed via the tracing // Usually, all tracing within flutter is managed via the tracing
// controller // controller
// The tracing controller is accessed via the shell instance. This means // The tracing controller is accessed via the shell instance. This means
// that tracing can only be enabled once that instance is created. Traces // that tracing can only be enabled once that instance is created. Traces
// early in startup are lost. This enables tracing only in base manually // early in startup are lost. This enables tracing only in base manually
// till the tracing controller takes over. // till the tracing controller takes over.
sky::shell::TracingController::StartBaseTracing(); shell::TracingController::StartBaseTracing();
} }
// This is about as early as tracing of any kind can start. Add an instant // This is about as early as tracing of any kind can start. Add an instant
...@@ -95,7 +94,7 @@ class EmbedderState { ...@@ -95,7 +94,7 @@ class EmbedderState {
mojo::embedder::Init(mojo::embedder::CreateSimplePlatformSupport()); mojo::embedder::Init(mojo::embedder::CreateSimplePlatformSupport());
sky::shell::Shell::InitStandalone(icu_data_path); shell::Shell::InitStandalone(icu_data_path);
} }
~EmbedderState() { ~EmbedderState() {
...@@ -168,28 +167,27 @@ static std::string ResolveCommandLineLaunchFlag(const char* name) { ...@@ -168,28 +167,27 @@ static std::string ResolveCommandLineLaunchFlag(const char* name) {
bool AttemptLaunchFromCommandLineSwitches(sky::SkyEnginePtr& engine) { bool AttemptLaunchFromCommandLineSwitches(sky::SkyEnginePtr& engine) {
base::mac::ScopedNSAutoreleasePool pool; base::mac::ScopedNSAutoreleasePool pool;
using namespace sky::shell::switches;
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
auto command_line = *base::CommandLine::ForCurrentProcess(); auto command_line = *base::CommandLine::ForCurrentProcess();
if (command_line.HasSwitch(kMainDartFile) || if (command_line.HasSwitch(switches::kMainDartFile) ||
command_line.HasSwitch(kPackages) || command_line.HasSwitch(kFLX)) { command_line.HasSwitch(switches::kPackages) ||
command_line.HasSwitch(switches::kFLX)) {
// The main dart file, flx bundle and the package root must be specified in // The main dart file, flx bundle and the package root must be specified in
// one go. We dont want to end up in a situation where we take one value // one go. We dont want to end up in a situation where we take one value
// from the command line and the others from user defaults. In case, any // from the command line and the others from user defaults. In case, any
// new flags are specified, forget about all the old ones. // new flags are specified, forget about all the old ones.
[defaults removeObjectForKey:@(kMainDartFile)]; [defaults removeObjectForKey:@(switches::kMainDartFile)];
[defaults removeObjectForKey:@(kPackages)]; [defaults removeObjectForKey:@(switches::kPackages)];
[defaults removeObjectForKey:@(kFLX)]; [defaults removeObjectForKey:@(switches::kFLX)];
[defaults synchronize]; [defaults synchronize];
} }
std::string dart_main = ResolveCommandLineLaunchFlag(kMainDartFile); std::string dart_main = ResolveCommandLineLaunchFlag(switches::kMainDartFile);
std::string packages = ResolveCommandLineLaunchFlag(kPackages); std::string packages = ResolveCommandLineLaunchFlag(switches::kPackages);
std::string bundle = ResolveCommandLineLaunchFlag(kFLX); std::string bundle = ResolveCommandLineLaunchFlag(switches::kFLX);
if (!FlagsValidForCommandLineLaunch(dart_main, packages, bundle)) { if (!FlagsValidForCommandLineLaunch(dart_main, packages, bundle)) {
return false; return false;
...@@ -198,9 +196,9 @@ bool AttemptLaunchFromCommandLineSwitches(sky::SkyEnginePtr& engine) { ...@@ -198,9 +196,9 @@ bool AttemptLaunchFromCommandLineSwitches(sky::SkyEnginePtr& engine) {
// Save the newly resolved dart main file and the package root to user // Save the newly resolved dart main file and the package root to user
// defaults so that the next time the user launches the application in the // defaults so that the next time the user launches the application in the
// simulator without the tooling, the application boots up. // simulator without the tooling, the application boots up.
[defaults setObject:@(dart_main.c_str()) forKey:@(kMainDartFile)]; [defaults setObject:@(dart_main.c_str()) forKey:@(switches::kMainDartFile)];
[defaults setObject:@(packages.c_str()) forKey:@(kPackages)]; [defaults setObject:@(packages.c_str()) forKey:@(switches::kPackages)];
[defaults setObject:@(bundle.c_str()) forKey:@(kFLX)]; [defaults setObject:@(bundle.c_str()) forKey:@(switches::kFLX)];
[defaults synchronize]; [defaults synchronize];
...@@ -210,4 +208,3 @@ bool AttemptLaunchFromCommandLineSwitches(sky::SkyEnginePtr& engine) { ...@@ -210,4 +208,3 @@ bool AttemptLaunchFromCommandLineSwitches(sky::SkyEnginePtr& engine) {
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/mac/platform_service_provider.h" #include "flutter/shell/platform/darwin/common/platform_service_provider.h"
#if TARGET_OS_IPHONE #if TARGET_OS_IPHONE
#include "flutter/services/activity/ios/activity_impl.h" #include "flutter/services/activity/ios/activity_impl.h"
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
#include "flutter/services/vsync/mac/vsync_provider_mac_impl.h" #include "flutter/services/vsync/mac/vsync_provider_mac_impl.h"
#endif // TARGET_OS_IPHONE #endif // TARGET_OS_IPHONE
namespace sky {
namespace shell { namespace shell {
PlatformServiceProvider::PlatformServiceProvider( PlatformServiceProvider::PlatformServiceProvider(
...@@ -100,4 +99,3 @@ void PlatformServiceProvider::ConnectToService( ...@@ -100,4 +99,3 @@ void PlatformServiceProvider::ConnectToService(
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,15 +2,14 @@ ...@@ -2,15 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_MAC_PLATFORM_SERVICE_PROVIDER_H_ #ifndef SHELL_PLATFORM_MAC_PLATFORM_SERVICE_PROVIDER_H_
#define SKY_SHELL_PLATFORM_MAC_PLATFORM_SERVICE_PROVIDER_H_ #define SHELL_PLATFORM_MAC_PLATFORM_SERVICE_PROVIDER_H_
#include "lib/ftl/macros.h"
#include "base/callback.h" #include "base/callback.h"
#include "lib/ftl/macros.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/strong_binding.h"
#include "mojo/public/interfaces/application/service_provider.mojom.h" #include "mojo/public/interfaces/application/service_provider.mojom.h"
namespace sky {
namespace shell { namespace shell {
class PlatformServiceProvider : public mojo::ServiceProvider { class PlatformServiceProvider : public mojo::ServiceProvider {
...@@ -21,6 +20,7 @@ class PlatformServiceProvider : public mojo::ServiceProvider { ...@@ -21,6 +20,7 @@ class PlatformServiceProvider : public mojo::ServiceProvider {
PlatformServiceProvider(mojo::InterfaceRequest<mojo::ServiceProvider> request, PlatformServiceProvider(mojo::InterfaceRequest<mojo::ServiceProvider> request,
DynamicServiceProviderCallback callback); DynamicServiceProviderCallback callback);
~PlatformServiceProvider() override; ~PlatformServiceProvider() override;
void ConnectToService(const mojo::String& service_name, void ConnectToService(const mojo::String& service_name,
...@@ -34,6 +34,5 @@ class PlatformServiceProvider : public mojo::ServiceProvider { ...@@ -34,6 +34,5 @@ class PlatformServiceProvider : public mojo::ServiceProvider {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_MAC_PLATFORM_SERVICE_PROVIDER_H_ #endif // SHELL_PLATFORM_MAC_PLATFORM_SERVICE_PROVIDER_H_
...@@ -2,11 +2,10 @@ ...@@ -2,11 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/mac/view_service_provider.h" #include "flutter/shell/platform/darwin/common/view_service_provider.h"
#include <utility> #include <utility>
namespace sky {
namespace shell { namespace shell {
ViewServiceProvider::ViewServiceProvider( ViewServiceProvider::ViewServiceProvider(
...@@ -36,4 +35,3 @@ void ViewServiceProvider::ConnectToService( ...@@ -36,4 +35,3 @@ void ViewServiceProvider::ConnectToService(
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,22 +2,21 @@ ...@@ -2,22 +2,21 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_MAC_VIEW_SERVICE_PROVIDER_H_ #ifndef SHELL_PLATFORM_MAC_VIEW_SERVICE_PROVIDER_H_
#define SKY_SHELL_PLATFORM_MAC_VIEW_SERVICE_PROVIDER_H_ #define SHELL_PLATFORM_MAC_VIEW_SERVICE_PROVIDER_H_
#include <functional> #include <functional>
#include "flutter/services/platform/app_messages.mojom.h"
#include "flutter/sky/engine/wtf/Assertions.h"
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/strong_binding.h"
#include "mojo/public/interfaces/application/service_provider.mojom.h" #include "mojo/public/interfaces/application/service_provider.mojom.h"
#include "flutter/sky/engine/wtf/Assertions.h"
#include "flutter/services/platform/app_messages.mojom.h"
#if TARGET_OS_IPHONE #if TARGET_OS_IPHONE
#include "flutter/services/editing/ios/keyboard_impl.h" #include "flutter/services/editing/ios/keyboard_impl.h"
#endif #endif
namespace sky {
namespace shell { namespace shell {
typedef std::function<void( typedef std::function<void(
...@@ -41,6 +40,5 @@ class ViewServiceProvider : public mojo::ServiceProvider { ...@@ -41,6 +40,5 @@ class ViewServiceProvider : public mojo::ServiceProvider {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_MAC_VIEW_SERVICE_PROVIDER_H_ #endif // SHELL_PLATFORM_MAC_VIEW_SERVICE_PROVIDER_H_
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/mac/rules.gni")
assert(is_mac)
source_set("mac_desktop_platform") {
visibility = [ ":*" ]
sources = [
"main_mac.mm",
"platform_view_mac.h",
"platform_view_mac.mm",
"sky_app_delegate.h",
"sky_app_delegate.m",
"sky_application.h",
"sky_application.mm",
"sky_window.h",
"sky_window.mm",
]
deps = [
"//base",
"//flutter/services/pointer:interfaces",
"//flutter/shell/common",
"//flutter/shell/platform/darwin/common",
"//flutter/shell/testing",
"//flutter/skia",
"//flutter/synchronization",
"//lib/ftl",
]
}
executable("shell_standalone") {
output_name = "sky_shell"
deps = [
":mac_desktop_platform",
]
}
mac_app("shell_application_bundle") {
app_name = "SkyShell"
info_plist = "Info.plist"
xibs = [ "sky_mac.xib" ]
resource_copy_mac("mac_desktop_resources") {
resources = [
"//third_party/icu/android/icudtl.dat",
]
bundle_directory = "."
}
deps = [
":mac_desktop_platform",
":mac_desktop_resources",
]
}
...@@ -3,16 +3,17 @@ ...@@ -3,16 +3,17 @@
// found in the LICENSE file. // found in the LICENSE file.
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#include <iostream> #include <iostream>
#include "base/bind.h" #include "base/bind.h"
#include "base/command_line.h" #include "base/command_line.h"
#include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop.h"
#include "flutter/sky/shell/platform/mac/platform_mac.h" #include "flutter/shell/common/switches.h"
#include "flutter/sky/shell/platform/mac/sky_application.h" #include "flutter/shell/platform/darwin/common/platform_mac.h"
#include "flutter/sky/shell/switches.h" #include "flutter/shell/platform/darwin/desktop/sky_application.h"
#include "flutter/sky/shell/testing/testing.h" #include "flutter/shell/testing/testing.h"
namespace sky {
namespace shell { namespace shell {
namespace { namespace {
...@@ -27,26 +28,25 @@ void AttachMessageLoopToMainRunLoop(void) { ...@@ -27,26 +28,25 @@ void AttachMessageLoopToMainRunLoop(void) {
} // namespace } // namespace
} // namespace shell } // namespace shell
} // namespace sky
int main(int argc, const char* argv[]) { int main(int argc, const char* argv[]) {
[SkyApplication sharedApplication]; [SkyApplication sharedApplication];
sky::shell::PlatformMacMain(argc, argv, ""); shell::PlatformMacMain(argc, argv, "");
base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess();
if (command_line.HasSwitch(sky::shell::switches::kHelp)) { if (command_line.HasSwitch(shell::switches::kHelp)) {
sky::shell::switches::PrintUsage("SkyShell"); shell::switches::PrintUsage("SkyShell");
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
if (command_line.HasSwitch(sky::shell::switches::kNonInteractive)) { if (command_line.HasSwitch(shell::switches::kNonInteractive)) {
if (!sky::shell::InitForTesting()) if (!shell::InitForTesting())
return 1; return 1;
base::MessageLoop::current()->Run(); base::MessageLoop::current()->Run();
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
sky::shell::AttachMessageLoopToMainRunLoop(); shell::AttachMessageLoopToMainRunLoop();
return NSApplicationMain(argc, argv); return NSApplicationMain(argc, argv);
} }
...@@ -2,17 +2,16 @@ ...@@ -2,17 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_MAC_PLATFORM_VIEW_MAC_H_ #ifndef SHELL_PLATFORM_MAC_PLATFORM_VIEW_MAC_H_
#define SKY_SHELL_PLATFORM_MAC_PLATFORM_VIEW_MAC_H_ #define SHELL_PLATFORM_MAC_PLATFORM_VIEW_MAC_H_
#include "base/mac/scoped_nsobject.h" #include "base/mac/scoped_nsobject.h"
#include "flutter/shell/common/platform_view.h"
#include "lib/ftl/memory/weak_ptr.h" #include "lib/ftl/memory/weak_ptr.h"
#include "flutter/sky/shell/platform_view.h"
@class NSOpenGLView; @class NSOpenGLView;
@class NSOpenGLContext; @class NSOpenGLContext;
namespace sky {
namespace shell { namespace shell {
class PlatformViewMac : public PlatformView { class PlatformViewMac : public PlatformView {
...@@ -23,7 +22,7 @@ class PlatformViewMac : public PlatformView { ...@@ -23,7 +22,7 @@ class PlatformViewMac : public PlatformView {
void SetupAndLoadDart(); void SetupAndLoadDart();
SkyEnginePtr& engineProxy(); sky::SkyEnginePtr& engineProxy();
ftl::WeakPtr<PlatformView> GetWeakViewPtr() override; ftl::WeakPtr<PlatformView> GetWeakViewPtr() override;
...@@ -57,6 +56,5 @@ class PlatformViewMac : public PlatformView { ...@@ -57,6 +56,5 @@ class PlatformViewMac : public PlatformView {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_MAC_PLATFORM_VIEW_MAC_H_ #endif // SHELL_PLATFORM_MAC_PLATFORM_VIEW_MAC_H_
...@@ -2,28 +2,21 @@ ...@@ -2,28 +2,21 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/mac/platform_view_mac.h" #include "flutter/shell/platform/darwin/desktop/platform_view_mac.h"
#include <Foundation/Foundation.h> #include <Foundation/Foundation.h>
#include <AppKit/AppKit.h> #include <AppKit/AppKit.h>
#include "base/command_line.h" #include "base/command_line.h"
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
#include "flutter/sky/shell/switches.h" #include "flutter/shell/common/switches.h"
#include "flutter/sky/shell/platform/mac/view_service_provider.h" #include "flutter/shell/platform/darwin/common/platform_mac.h"
#include "flutter/sky/shell/platform/mac/platform_mac.h" #include "flutter/shell/platform/darwin/common/platform_service_provider.h"
#include "flutter/sky/shell/platform/mac/platform_service_provider.h" #include "flutter/shell/platform/darwin/common/view_service_provider.h"
#include "lib/ftl/synchronization/waitable_event.h" #include "lib/ftl/synchronization/waitable_event.h"
namespace sky {
namespace shell { namespace shell {
static void IgnoreRequest(
mojo::InterfaceRequest<flutter::platform::ApplicationMessages>) {}
static void DynamicServiceResolve(const mojo::String& service_name,
mojo::ScopedMessagePipeHandle handle) {}
PlatformViewMac::PlatformViewMac(NSOpenGLView* gl_view) PlatformViewMac::PlatformViewMac(NSOpenGLView* gl_view)
: opengl_view_([gl_view retain]), : opengl_view_([gl_view retain]),
resource_loading_context_([[NSOpenGLContext alloc] resource_loading_context_([[NSOpenGLContext alloc]
...@@ -33,13 +26,21 @@ PlatformViewMac::PlatformViewMac(NSOpenGLView* gl_view) ...@@ -33,13 +26,21 @@ PlatformViewMac::PlatformViewMac(NSOpenGLView* gl_view)
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES); NSUserDomainMask, YES);
if (paths.count > 0) { if (paths.count > 0) {
sky::shell::Shell::Shared().tracing_controller().set_traces_base_path( shell::Shell::Shared().tracing_controller().set_traces_base_path(
[[paths objectAtIndex:0] UTF8String]); [[paths objectAtIndex:0] UTF8String]);
} }
} }
PlatformViewMac::~PlatformViewMac() = default; PlatformViewMac::~PlatformViewMac() = default;
static void DynamicServiceResolve(const mojo::String& service_name,
mojo::ScopedMessagePipeHandle handle) {
// This platform does not support dynamic service loading.
}
static void IgnoreRequest(
mojo::InterfaceRequest<flutter::platform::ApplicationMessages>) {}
void PlatformViewMac::ConnectToEngineAndSetupServices() { void PlatformViewMac::ConnectToEngineAndSetupServices() {
ConnectToEngine(mojo::GetProxy(&sky_engine_)); ConnectToEngine(mojo::GetProxy(&sky_engine_));
...@@ -92,7 +93,7 @@ void PlatformViewMac::SetupAndLoadFromSource( ...@@ -92,7 +93,7 @@ void PlatformViewMac::SetupAndLoadFromSource(
sky_engine_->RunFromFile(main, packages, assets_directory); sky_engine_->RunFromFile(main, packages, assets_directory);
} }
SkyEnginePtr& PlatformViewMac::engineProxy() { sky::SkyEnginePtr& PlatformViewMac::engineProxy() {
return sky_engine_; return sky_engine_;
} }
...@@ -165,4 +166,3 @@ void PlatformViewMac::RunFromSource(const std::string& main, ...@@ -165,4 +166,3 @@ void PlatformViewMac::RunFromSource(const std::string& main,
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef __SKY_SHELL_MAC_SKY_APPLICATION__ #ifndef __SHELL_MAC_SKY_APPLICATION__
#define __SKY_SHELL_MAC_SKY_APPLICATION__ #define __SHELL_MAC_SKY_APPLICATION__
#import <AppKit/AppKit.h> #import <AppKit/AppKit.h>
...@@ -15,4 +15,4 @@ ...@@ -15,4 +15,4 @@
@interface SkyApplication : NSApplication<CrAppProtocol, CrAppControlProtocol> @interface SkyApplication : NSApplication<CrAppProtocol, CrAppControlProtocol>
@end @end
#endif /* defined(__SKY_SHELL_MAC_SKY_APPLICATION__) */ #endif /* defined(__SHELL_MAC_SKY_APPLICATION__) */
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/mac/sky_application.h" #include "flutter/shell/platform/darwin/desktop/sky_application.h"
#include "base/auto_reset.h" #include "base/auto_reset.h"
#include "base/logging.h" #include "base/logging.h"
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include "base/time/time.h" #include "base/time/time.h"
#include "flutter/services/pointer/pointer.mojom.h" #include "flutter/services/pointer/pointer.mojom.h"
#include "flutter/sky/shell/platform/mac/platform_view_mac.h" #include "flutter/shell/platform/darwin/desktop/platform_view_mac.h"
@interface SkyWindow ()<NSWindowDelegate> @interface SkyWindow ()<NSWindowDelegate>
...@@ -38,7 +38,7 @@ static inline pointer::PointerType EventTypeFromNSEventPhase( ...@@ -38,7 +38,7 @@ static inline pointer::PointerType EventTypeFromNSEventPhase(
} }
@implementation SkyWindow { @implementation SkyWindow {
std::unique_ptr<sky::shell::PlatformViewMac> _platform_view; std::unique_ptr<shell::PlatformViewMac> _platform_view;
} }
@synthesize renderSurface = _renderSurface; @synthesize renderSurface = _renderSurface;
...@@ -56,7 +56,7 @@ static inline pointer::PointerType EventTypeFromNSEventPhase( ...@@ -56,7 +56,7 @@ static inline pointer::PointerType EventTypeFromNSEventPhase(
DCHECK(_platform_view == nullptr) DCHECK(_platform_view == nullptr)
<< "The platform view must not already be set."; << "The platform view must not already be set.";
_platform_view.reset(new sky::shell::PlatformViewMac(self.renderSurface)); _platform_view.reset(new shell::PlatformViewMac(self.renderSurface));
_platform_view->SetupResourceContextOnIOThread(); _platform_view->SetupResourceContextOnIOThread();
_platform_view->NotifyCreated(); _platform_view->NotifyCreated();
} }
......
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
assert(is_ios)
import("//build/config/ios/rules.gni")
import("//build/config/ios/ios_sdk.gni")
shared_library("flutter_framework_dylib") {
visibility = [ ":*" ]
output_name = "Flutter"
sources = [
"framework/Headers/Flutter.h",
"framework/Headers/FlutterAppDelegate.h",
"framework/Headers/FlutterAsyncMessageListener.h",
"framework/Headers/FlutterDartProject.h",
"framework/Headers/FlutterMacros.h",
"framework/Headers/FlutterMessageListener.h",
"framework/Headers/FlutterViewController.h",
"framework/Source/accessibility_bridge.h",
"framework/Source/accessibility_bridge.mm",
"framework/Source/application_messages_impl.h",
"framework/Source/application_messages_impl.mm",
"framework/Source/flutter_touch_mapper.h",
"framework/Source/flutter_touch_mapper.mm",
"framework/Source/FlutterAppDelegate.mm",
"framework/Source/FlutterDartProject.mm",
"framework/Source/FlutterDartProject_Internal.h",
"framework/Source/FlutterDartSource.h",
"framework/Source/FlutterDartSource.mm",
"framework/Source/FlutterDynamicServiceLoader.h",
"framework/Source/FlutterDynamicServiceLoader.mm",
"framework/Source/FlutterView.h",
"framework/Source/FlutterView.mm",
"framework/Source/FlutterViewController.mm",
"platform_view_ios.h",
"platform_view_ios.mm",
]
deps = [
"//base:base",
"//dart/runtime:libdart",
"//flutter/services/activity",
"//flutter/services/dynamic:embedder",
"//flutter/services/editing",
"//flutter/services/engine:interfaces",
"//flutter/services/media",
"//flutter/services/platform",
"//flutter/services/semantics",
"//flutter/services/vsync",
"//flutter/shell/common",
"//flutter/shell/gpu",
"//flutter/shell/platform/darwin/common",
"//flutter/skia",
"//flutter/sky/engine/platform",
"//flutter/sky/engine/wtf",
"//lib/ftl",
"//mojo/edk/base_edk",
"//mojo/edk/system",
"//mojo/public/cpp/application",
"//mojo/public/cpp/bindings",
"//mojo/public/interfaces/application",
]
defines = [
"FLUTTER_FRAMEWORK"
]
libs = [
"UIKit.framework",
"OpenGLES.framework",
"AVFoundation.framework",
"AudioToolbox.framework",
"QuartzCore.framework",
]
}
group("flutter_framework") {
framework_dir = "$root_out_dir/Flutter.framework"
copy("framework_dylib") {
visibility = [ ":*" ]
sources = [ "$root_out_dir/libFlutter.dylib" ]
outputs = [ "$framework_dir/Flutter" ]
deps = [
":flutter_framework_dylib",
]
}
action("framework_install_name") {
visibility = [ ":*" ]
stamp_file = "$root_out_dir/flutter_install_name_stamp"
script = "//flutter/sky/tools/change_install_name.py"
inputs = [ "$framework_dir/Flutter" ]
outputs = [ stamp_file ]
args = [
"--dylib",
rebase_path("$framework_dir/Flutter"),
"--install_name",
"@rpath/Flutter.framework/Flutter",
"--stamp",
rebase_path(stamp_file),
]
deps = [
":framework_dylib"
]
}
copy("framework_info_plist") {
visibility = [ ":*" ]
sources = [ "framework/Info.plist" ]
outputs = [ "$framework_dir/Info.plist" ]
}
copy("framework_module_map") {
visibility = [ ":*" ]
sources = [ "framework/module.modulemap" ]
outputs = [ "$framework_dir/Modules/module.modulemap" ]
}
copy("framework_headers") {
visibility = [ ":*" ]
sources = [
"framework/Headers/Flutter.h",
"framework/Headers/FlutterAppDelegate.h",
"framework/Headers/FlutterAsyncMessageListener.h",
"framework/Headers/FlutterDartProject.h",
"framework/Headers/FlutterMacros.h",
"framework/Headers/FlutterMessageListener.h",
"framework/Headers/FlutterViewController.h",
]
outputs = [ "$framework_dir/Headers/{{source_file_part}}" ]
}
copy("framework_icu") {
visibility = [ ":*" ]
set_sources_assignment_filter([])
sources = [
"//third_party/icu/android/icudtl.dat",
]
set_sources_assignment_filter(sources_assignment_filter)
outputs = [ "$framework_dir/{{source_file_part}}" ]
}
public_deps = [
":framework_dylib",
":framework_headers",
":framework_icu",
":framework_info_plist",
":framework_install_name",
":framework_module_map",
]
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/ios/framework/Headers/FlutterAppDelegate.h" #include "flutter/shell/platform/darwin/ios/framework/Headers/FlutterAppDelegate.h"
@implementation FlutterAppDelegate @implementation FlutterAppDelegate
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/ios/framework/Source/FlutterDartProject_Internal.h" #include "flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProject_Internal.h"
#include "base/command_line.h" #include "base/command_line.h"
#include "dart/runtime/include/dart_api.h" #include "dart/runtime/include/dart_api.h"
#include "flutter/sky/shell/platform/ios/framework/Source/FlutterDartSource.h" #include "flutter/shell/platform/darwin/ios/framework/Source/FlutterDartSource.h"
#include "flutter/sky/shell/switches.h" #include "flutter/shell/common/switches.h"
static NSURL* URLForSwitch(const char* name) { static NSURL* URLForSwitch(const char* name) {
auto cmd = *base::CommandLine::ForCurrentProcess(); auto cmd = *base::CommandLine::ForCurrentProcess();
...@@ -91,7 +91,7 @@ static NSURL* URLForSwitch(const char* name) { ...@@ -91,7 +91,7 @@ static NSURL* URLForSwitch(const char* name) {
// Load directly from sources if the appropriate command line flags are // Load directly from sources if the appropriate command line flags are
// specified. If not, try loading from a script snapshot in the framework // specified. If not, try loading from a script snapshot in the framework
// bundle. // bundle.
NSURL* flxURL = URLForSwitch(sky::shell::switches::kFLX); NSURL* flxURL = URLForSwitch(shell::switches::kFLX);
if (flxURL == nil) { if (flxURL == nil) {
// If the URL was not specified on the command line, look inside the // If the URL was not specified on the command line, look inside the
...@@ -101,8 +101,8 @@ static NSURL* URLForSwitch(const char* name) { ...@@ -101,8 +101,8 @@ static NSURL* URLForSwitch(const char* name) {
isDirectory:NO]; isDirectory:NO];
} }
NSURL* dartMainURL = URLForSwitch(sky::shell::switches::kMainDartFile); NSURL* dartMainURL = URLForSwitch(shell::switches::kMainDartFile);
NSURL* dartPackagesURL = URLForSwitch(sky::shell::switches::kPackages); NSURL* dartPackagesURL = URLForSwitch(shell::switches::kPackages);
return [self initWithFLXArchive:flxURL return [self initWithFLXArchive:flxURL
dartMain:dartMainURL dartMain:dartMainURL
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTPROJECT_INTERNAL_H_ #ifndef SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTPROJECT_INTERNAL_H_
#define SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTPROJECT_INTERNAL_H_ #define SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTPROJECT_INTERNAL_H_
#include "flutter/sky/shell/platform/ios/framework/Headers/FlutterDartProject.h" #include "flutter/shell/platform/darwin/ios/framework/Headers/FlutterDartProject.h"
#include "flutter/services/engine/sky_engine.mojom.h" #include "flutter/services/engine/sky_engine.mojom.h"
...@@ -28,4 +28,4 @@ typedef void (^LaunchResult)(BOOL success, NSString* message); ...@@ -28,4 +28,4 @@ typedef void (^LaunchResult)(BOOL success, NSString* message);
@end @end
#endif // SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTPROJECT_INTERNAL_H_ #endif // SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTPROJECT_INTERNAL_H_
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTSOURCE_H_ #ifndef SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTSOURCE_H_
#define SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTSOURCE_H_ #define SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTSOURCE_H_
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
...@@ -27,4 +27,4 @@ typedef void (^ValidationResult)(BOOL result, NSString* message); ...@@ -27,4 +27,4 @@ typedef void (^ValidationResult)(BOOL result, NSString* message);
@end @end
#endif // SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTSOURCE_H_ #endif // SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERDARTSOURCE_H_
...@@ -2,14 +2,14 @@ ...@@ -2,14 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/ios/framework/Source/FlutterDartSource.h" #include "flutter/shell/platform/darwin/ios/framework/Source/FlutterDartSource.h"
@implementation FlutterDartSource @implementation FlutterDartSource
@synthesize dartMain=_dartMain; @synthesize dartMain = _dartMain;
@synthesize packages=_packages; @synthesize packages = _packages;
@synthesize flxArchive=_flxArchive; @synthesize flxArchive = _flxArchive;
@synthesize archiveContainsScriptSnapshot=_archiveContainsScriptSnapshot; @synthesize archiveContainsScriptSnapshot = _archiveContainsScriptSnapshot;
#pragma mark - Convenience Initializers #pragma mark - Convenience Initializers
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
return [self initWithDartMain:nil packages:nil flxArchive:nil]; return [self initWithDartMain:nil packages:nil flxArchive:nil];
} }
#pragma mark - Designated Initializers #pragma mark - Designated Initializers
- (instancetype)initWithDartMain:(NSURL*)dartMain - (instancetype)initWithDartMain:(NSURL*)dartMain
......
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_DYNAMIC_SERVICE_LOADER_H_ #ifndef SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_DYNAMIC_SERVICE_LOADER_H_
#define SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_DYNAMIC_SERVICE_LOADER_H_ #define SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_DYNAMIC_SERVICE_LOADER_H_
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#include "flutter/sky/shell/platform/mac/platform_service_provider.h" #include "flutter/shell/platform/darwin/common/platform_service_provider.h"
@interface FlutterDynamicServiceLoader : NSObject @interface FlutterDynamicServiceLoader : NSObject
...@@ -15,4 +15,4 @@ ...@@ -15,4 +15,4 @@
@end @end
#endif // SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_DYNAMIC_SERVICE_LOADER_H_ #endif // SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_DYNAMIC_SERVICE_LOADER_H_
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/ios/framework/Source/FlutterDynamicServiceLoader.h" #include "flutter/shell/platform/darwin/ios/framework/Source/FlutterDynamicServiceLoader.h"
#include "base/logging.h" #include "base/logging.h"
#include "flutter/services/dynamic/dynamic_service_embedder.h" #include "flutter/services/dynamic/dynamic_service_embedder.h"
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_VIEW_H_ #ifndef SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_VIEW_H_
#define SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_VIEW_H_ #define SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_VIEW_H_
#include <UIKit/UIKit.h> #include <UIKit/UIKit.h>
...@@ -11,4 +11,4 @@ ...@@ -11,4 +11,4 @@
@end @end
#endif // SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_VIEW_H_ #endif // SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTER_VIEW_H_
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/ios/framework/Source/FlutterView.h" #include "flutter/shell/platform/darwin/ios/framework/Source/FlutterView.h"
@interface FlutterView ()<UIInputViewAudioFeedback> @interface FlutterView ()<UIInputViewAudioFeedback>
......
...@@ -2,17 +2,17 @@ ...@@ -2,17 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#import "flutter/sky/shell/platform/ios/framework/Headers/FlutterViewController.h" #import "flutter/shell/platform/darwin/ios/framework/Headers/FlutterViewController.h"
#include "base/mac/scoped_block.h" #include "base/mac/scoped_block.h"
#include "base/mac/scoped_nsobject.h" #include "base/mac/scoped_nsobject.h"
#include "base/strings/sys_string_conversions.h" #include "base/strings/sys_string_conversions.h"
#include "flutter/services/platform/ios/system_chrome_impl.h" #include "flutter/services/platform/ios/system_chrome_impl.h"
#include "flutter/sky/engine/wtf/MakeUnique.h" #include "flutter/sky/engine/wtf/MakeUnique.h"
#include "flutter/sky/shell/platform/ios/framework/Source/flutter_touch_mapper.h" #include "flutter/shell/platform/darwin/ios/framework/Source/flutter_touch_mapper.h"
#include "flutter/sky/shell/platform/ios/framework/Source/FlutterDartProject_Internal.h" #include "flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProject_Internal.h"
#include "flutter/sky/shell/platform/ios/platform_view_ios.h" #include "flutter/shell/platform/darwin/ios/platform_view_ios.h"
#include "flutter/sky/shell/platform/mac/platform_mac.h" #include "flutter/shell/platform/darwin/common/platform_mac.h"
@interface FlutterViewController ()<UIAlertViewDelegate> @interface FlutterViewController ()<UIAlertViewDelegate>
@end @end
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
void FlutterInit(int argc, const char* argv[]) { void FlutterInit(int argc, const char* argv[]) {
NSBundle* bundle = [NSBundle bundleForClass:[FlutterViewController class]]; NSBundle* bundle = [NSBundle bundleForClass:[FlutterViewController class]];
NSString* icuDataPath = [bundle pathForResource:@"icudtl" ofType:@"dat"]; NSString* icuDataPath = [bundle pathForResource:@"icudtl" ofType:@"dat"];
sky::shell::PlatformMacMain(argc, argv, icuDataPath.UTF8String); shell::PlatformMacMain(argc, argv, icuDataPath.UTF8String);
} }
@implementation FlutterViewController { @implementation FlutterViewController {
...@@ -28,8 +28,8 @@ void FlutterInit(int argc, const char* argv[]) { ...@@ -28,8 +28,8 @@ void FlutterInit(int argc, const char* argv[]) {
UIInterfaceOrientationMask _orientationPreferences; UIInterfaceOrientationMask _orientationPreferences;
UIStatusBarStyle _statusBarStyle; UIStatusBarStyle _statusBarStyle;
sky::ViewportMetricsPtr _viewportMetrics; sky::ViewportMetricsPtr _viewportMetrics;
sky::shell::TouchMapper _touchMapper; shell::TouchMapper _touchMapper;
std::unique_ptr<sky::shell::PlatformViewIOS> _platformView; std::unique_ptr<shell::PlatformViewIOS> _platformView;
BOOL _initialized; BOOL _initialized;
} }
...@@ -73,7 +73,7 @@ void FlutterInit(int argc, const char* argv[]) { ...@@ -73,7 +73,7 @@ void FlutterInit(int argc, const char* argv[]) {
_orientationPreferences = UIInterfaceOrientationMaskAll; _orientationPreferences = UIInterfaceOrientationMaskAll;
_statusBarStyle = UIStatusBarStyleDefault; _statusBarStyle = UIStatusBarStyleDefault;
_viewportMetrics = sky::ViewportMetrics::New(); _viewportMetrics = sky::ViewportMetrics::New();
_platformView = WTF::MakeUnique<sky::shell::PlatformViewIOS>( _platformView = WTF::MakeUnique<shell::PlatformViewIOS>(
reinterpret_cast<CAEAGLLayer*>(self.view.layer)); reinterpret_cast<CAEAGLLayer*>(self.view.layer));
_platformView->SetupResourceContextOnIOThread(); _platformView->SetupResourceContextOnIOThread();
......
...@@ -2,28 +2,26 @@ ...@@ -2,28 +2,26 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_ #ifndef SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_
#define SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_ #define SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_
#include <memory> #include <memory>
#include <set> #include <set>
#include <unordered_map> #include <unordered_map>
#include "flutter/services/semantics/semantics.mojom.h"
#include "flutter/shell/platform/darwin/ios/framework/Source/FlutterView.h"
#include "flutter/sky/engine/platform/geometry/FloatRect.h"
#include "lib/ftl/macros.h" #include "lib/ftl/macros.h"
#include "mojo/public/cpp/bindings/array.h" #include "mojo/public/cpp/bindings/array.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/strong_binding.h"
#include "mojo/public/interfaces/application/service_provider.mojom.h" #include "mojo/public/interfaces/application/service_provider.mojom.h"
#include "flutter/sky/engine/platform/geometry/FloatRect.h"
#include "flutter/services/semantics/semantics.mojom.h"
#include "flutter/sky/shell/platform/ios/framework/Source/FlutterView.h"
#include "third_party/skia/include/core/SkMatrix44.h" #include "third_party/skia/include/core/SkMatrix44.h"
#include "third_party/skia/include/core/SkRect.h" #include "third_party/skia/include/core/SkRect.h"
namespace sky {
namespace shell { namespace shell {
class AccessibilityBridge; class AccessibilityBridge;
} } // namespace shell
}
@interface SemanticObject : NSObject @interface SemanticObject : NSObject
...@@ -39,12 +37,11 @@ class AccessibilityBridge; ...@@ -39,12 +37,11 @@ class AccessibilityBridge;
@property(nonatomic, assign) SemanticObject* parent; @property(nonatomic, assign) SemanticObject* parent;
- (instancetype)init __attribute__((unavailable("Use initWithBridge instead"))); - (instancetype)init __attribute__((unavailable("Use initWithBridge instead")));
- (instancetype)initWithBridge:(sky::shell::AccessibilityBridge*)bridge - (instancetype)initWithBridge:(shell::AccessibilityBridge*)bridge
uid:(uint32_t)uid NS_DESIGNATED_INITIALIZER; uid:(uint32_t)uid NS_DESIGNATED_INITIALIZER;
@end @end
namespace sky {
namespace shell { namespace shell {
class AccessibilityBridge final : public semantics::SemanticsListener { class AccessibilityBridge final : public semantics::SemanticsListener {
...@@ -75,6 +72,5 @@ class AccessibilityBridge final : public semantics::SemanticsListener { ...@@ -75,6 +72,5 @@ class AccessibilityBridge final : public semantics::SemanticsListener {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_ #endif // SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "flutter/sky/shell/platform/ios/framework/Source/accessibility_bridge.h" #include "flutter/shell/platform/darwin/ios/framework/Source/accessibility_bridge.h"
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#include <vector> #include <vector>
...@@ -31,7 +31,7 @@ struct Geometry { ...@@ -31,7 +31,7 @@ struct Geometry {
} // namespace } // namespace
@implementation SemanticObject { @implementation SemanticObject {
sky::shell::AccessibilityBridge* _bridge; shell::AccessibilityBridge* _bridge;
semantics::SemanticFlagsPtr _flags; semantics::SemanticFlagsPtr _flags;
semantics::SemanticStringsPtr _strings; semantics::SemanticStringsPtr _strings;
...@@ -56,7 +56,7 @@ struct Geometry { ...@@ -56,7 +56,7 @@ struct Geometry {
#pragma mark - Designated initializers #pragma mark - Designated initializers
- (instancetype)initWithBridge:(sky::shell::AccessibilityBridge*)bridge - (instancetype)initWithBridge:(shell::AccessibilityBridge*)bridge
uid:(uint32_t)uid { uid:(uint32_t)uid {
DCHECK(bridge != nil) << "bridge must be set"; DCHECK(bridge != nil) << "bridge must be set";
DCHECK(uid >= kRootNodeId); DCHECK(uid >= kRootNodeId);
...@@ -246,16 +246,20 @@ struct Geometry { ...@@ -246,16 +246,20 @@ struct Geometry {
switch (direction) { switch (direction) {
case UIAccessibilityScrollDirectionRight: case UIAccessibilityScrollDirectionRight:
_bridge->server()->PerformAction(_uid, semantics::SemanticAction::SCROLL_RIGHT); _bridge->server()->PerformAction(_uid,
semantics::SemanticAction::SCROLL_RIGHT);
break; break;
case UIAccessibilityScrollDirectionLeft: case UIAccessibilityScrollDirectionLeft:
_bridge->server()->PerformAction(_uid, semantics::SemanticAction::SCROLL_LEFT); _bridge->server()->PerformAction(_uid,
semantics::SemanticAction::SCROLL_LEFT);
break; break;
case UIAccessibilityScrollDirectionUp: case UIAccessibilityScrollDirectionUp:
_bridge->server()->PerformAction(_uid, semantics::SemanticAction::SCROLL_UP); _bridge->server()->PerformAction(_uid,
semantics::SemanticAction::SCROLL_UP);
break; break;
case UIAccessibilityScrollDirectionDown: case UIAccessibilityScrollDirectionDown:
_bridge->server()->PerformAction(_uid, semantics::SemanticAction::SCROLL_DOWN); _bridge->server()->PerformAction(_uid,
semantics::SemanticAction::SCROLL_DOWN);
break; break;
default: default:
DCHECK(false) << "Unsupported scroll direction: " << direction; DCHECK(false) << "Unsupported scroll direction: " << direction;
...@@ -280,7 +284,6 @@ struct Geometry { ...@@ -280,7 +284,6 @@ struct Geometry {
#pragma mark - AccessibilityBridge impl #pragma mark - AccessibilityBridge impl
namespace sky {
namespace shell { namespace shell {
AccessibilityBridge::AccessibilityBridge(UIView* view, AccessibilityBridge::AccessibilityBridge(UIView* view,
...@@ -323,8 +326,8 @@ void AccessibilityBridge::UpdateSemanticsTree( ...@@ -323,8 +326,8 @@ void AccessibilityBridge::UpdateSemanticsTree(
} else { } else {
view_.accessibilityElements = nil; view_.accessibilityElements = nil;
} }
UIAccessibilityPostNotification( UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,
UIAccessibilityLayoutChangedNotification, nil); nil);
} }
SemanticObject* AccessibilityBridge::UpdateSemanticObject( SemanticObject* AccessibilityBridge::UpdateSemanticObject(
...@@ -370,4 +373,3 @@ void AccessibilityBridge::RemoveSemanticObject( ...@@ -370,4 +373,3 @@ void AccessibilityBridge::RemoveSemanticObject(
} }
} // namespace shell } // namespace shell
} // namespace sky
...@@ -2,18 +2,17 @@ ...@@ -2,18 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_APPLICATION_MESSAGES_IMPL_H_ #ifndef SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_APPLICATION_MESSAGES_IMPL_H_
#define SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_APPLICATION_MESSAGES_IMPL_H_ #define SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_APPLICATION_MESSAGES_IMPL_H_
#include <unordered_map> #include <unordered_map>
#include "lib/ftl/memory/weak_ptr.h" #include "lib/ftl/memory/weak_ptr.h"
#include "mojo/public/cpp/bindings/binding_set.h" #include "mojo/public/cpp/bindings/binding_set.h"
#include "flutter/services/platform/app_messages.mojom.h" #include "flutter/services/platform/app_messages.mojom.h"
#include "flutter/sky/shell/platform/ios/framework/Headers/FlutterAsyncMessageListener.h" #include "flutter/shell/platform/darwin/ios/framework/Headers/FlutterAsyncMessageListener.h"
#include "flutter/sky/shell/platform/ios/framework/Headers/FlutterMessageListener.h" #include "flutter/shell/platform/darwin/ios/framework/Headers/FlutterMessageListener.h"
namespace sky {
namespace shell { namespace shell {
class ApplicationMessagesImpl : public flutter::platform::ApplicationMessages { class ApplicationMessagesImpl : public flutter::platform::ApplicationMessages {
...@@ -45,6 +44,5 @@ class ApplicationMessagesImpl : public flutter::platform::ApplicationMessages { ...@@ -45,6 +44,5 @@ class ApplicationMessagesImpl : public flutter::platform::ApplicationMessages {
}; };
} // namespace shell } // namespace shell
} // namespace sky
#endif // SKY_SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_ #endif // SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册