diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index 600bd350394..02466d418af 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -200,7 +200,6 @@ FILE: ../../../flutter/lib/ui/window/window.h FILE: ../../../flutter/shell/common/skia_event_tracer_impl.cc FILE: ../../../flutter/shell/platform/android/apk_asset_provider.cc FILE: ../../../flutter/shell/platform/android/io/flutter/plugin/common/JSONUtil.java -FILE: ../../../flutter/shell/platform/darwin/desktop/Info.plist FILE: ../../../flutter/shell/platform/darwin/ios/framework/Flutter.podspec FILE: ../../../flutter/shell/platform/darwin/ios/framework/Info.plist FILE: ../../../flutter/shell/platform/darwin/ios/framework/module.modulemap @@ -271,8 +270,6 @@ FILE: ../../../flutter/shell/common/thread_host.cc FILE: ../../../flutter/shell/common/thread_host.h FILE: ../../../flutter/shell/platform/darwin/common/command_line.h FILE: ../../../flutter/shell/platform/darwin/common/command_line.mm -FILE: ../../../flutter/shell/platform/darwin/desktop/flutter_application_delegate.h -FILE: ../../../flutter/shell/platform/darwin/desktop/flutter_application_delegate.mm FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController_Internal.h FILE: ../../../flutter/shell/platform/embedder/embedder.h FILE: ../../../flutter/shell/platform/embedder/embedder_engine.cc @@ -382,7 +379,6 @@ FILE: ../../../flutter/shell/platform/android/io/flutter/view/VsyncWaiter.java FILE: ../../../flutter/shell/platform/android/vsync_waiter_android.cc FILE: ../../../flutter/shell/platform/android/vsync_waiter_android.h FILE: ../../../flutter/shell/platform/darwin/common/buffer_conversions.mm -FILE: ../../../flutter/shell/platform/darwin/desktop/vsync_waiter_mac.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/Flutter.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterAppDelegate.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Headers/FlutterDartProject.h @@ -837,12 +833,6 @@ FILE: ../../../flutter/shell/platform/android/library_loader.cc FILE: ../../../flutter/shell/platform/android/platform_view_android.cc FILE: ../../../flutter/shell/platform/android/platform_view_android.h FILE: ../../../flutter/shell/platform/darwin/common/buffer_conversions.h -FILE: ../../../flutter/shell/platform/darwin/desktop/flutter_window.h -FILE: ../../../flutter/shell/platform/darwin/desktop/flutter_window.mm -FILE: ../../../flutter/shell/platform/darwin/desktop/main_mac.mm -FILE: ../../../flutter/shell/platform/darwin/desktop/platform_view_mac.h -FILE: ../../../flutter/shell/platform/darwin/desktop/platform_view_mac.mm -FILE: ../../../flutter/shell/platform/darwin/desktop/vsync_waiter_mac.cc FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate.mm FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.h FILE: ../../../flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm diff --git a/shell/platform/darwin/BUILD.gn b/shell/platform/darwin/BUILD.gn index 9f4dfca0714..3c04dda6349 100644 --- a/shell/platform/darwin/BUILD.gn +++ b/shell/platform/darwin/BUILD.gn @@ -5,18 +5,10 @@ assert(is_mac || is_ios) group("darwin") { - if (is_mac) { - if (!is_fuchsia_host) { - deps = [ - "desktop:shell_application_bundle", - ] - } - } else if (is_ios) { + if (is_ios) { deps = [ "ios:flutter_framework", ] - } else { - assert(false, "Unknown darwin platform type.") } } diff --git a/shell/platform/darwin/desktop/BUILD.gn b/shell/platform/darwin/desktop/BUILD.gn deleted file mode 100644 index a574249398b..00000000000 --- a/shell/platform/darwin/desktop/BUILD.gn +++ /dev/null @@ -1,64 +0,0 @@ -# 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) - -import("$flutter_root/shell/gpu/gpu.gni") - -shell_gpu_configuration("darwin_desktop_gpu_configuration") { - enable_software = false - enable_vulkan = false - enable_gl = true -} - -source_set("mac_desktop_platform") { - visibility = [ ":*" ] - - sources = [ - "flutter_application_delegate.h", - "flutter_application_delegate.mm", - "flutter_window.h", - "flutter_window.mm", - "main_mac.mm", - "platform_view_mac.h", - "platform_view_mac.mm", - "vsync_waiter_mac.cc", - "vsync_waiter_mac.h", - ] - - deps = [ - ":darwin_desktop_gpu_configuration", - "$flutter_root/common", - "$flutter_root/fml", - "$flutter_root/lib/snapshot", - "$flutter_root/shell/common", - "$flutter_root/shell/platform/darwin/common", - "$flutter_root/synchronization", - "//third_party/dart/runtime:libdart_jit", - "//third_party/skia", - "//third_party/skia:gpu", - ] - - public_configs = [ "$flutter_root:config" ] -} - -if (!is_fuchsia_host) { - import("//build/config/mac/rules.gni") - - resource_copy_mac("mac_desktop_resources") { - app_name = "FlutterTester" - resources = [ "//third_party/icu/flutter/icudtl.dat" ] - bundle_directory = "." - } - - mac_app("shell_application_bundle") { - app_name = "FlutterTester" - info_plist = "Info.plist" - - deps = [ - ":mac_desktop_platform", - ":mac_desktop_resources", - ] - } -} diff --git a/shell/platform/darwin/desktop/Info.plist b/shell/platform/darwin/desktop/Info.plist deleted file mode 100644 index 048afb6dadc..00000000000 --- a/shell/platform/darwin/desktop/Info.plist +++ /dev/null @@ -1,32 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - FlutterTester - CFBundleIconFile - - CFBundleIdentifier - io.flutter.engine - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Flutter Engine - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSMinimumSystemVersion - 10.6 - NSHumanReadableCopyright - Copyright 2015 The Flutter Authors. All rights reserved. - NSPrincipalClass - NSApplication - - diff --git a/shell/platform/darwin/desktop/flutter_application_delegate.h b/shell/platform/darwin/desktop/flutter_application_delegate.h deleted file mode 100644 index 3995557b25e..00000000000 --- a/shell/platform/darwin/desktop/flutter_application_delegate.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2017 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_DESKTOP_FLUTTER_APPLICATION_DELEGATE_H_ -#define FLUTTER_SHELL_PLATFORM_DARWIN_DESKTOP_FLUTTER_APPLICATION_DELEGATE_H_ - -#import - -@interface FlutterApplicationDelegate : NSObject - -@end - -#endif // FLUTTER_SHELL_PLATFORM_DARWIN_DESKTOP_FLUTTER_APPLICATION_DELEGATE_H_ diff --git a/shell/platform/darwin/desktop/flutter_application_delegate.mm b/shell/platform/darwin/desktop/flutter_application_delegate.mm deleted file mode 100644 index 50670cf25bb..00000000000 --- a/shell/platform/darwin/desktop/flutter_application_delegate.mm +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2017 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "flutter/shell/platform/darwin/desktop/flutter_application_delegate.h" -#include "flutter/shell/platform/darwin/desktop/flutter_window.h" - -#include - -@implementation FlutterApplicationDelegate - -- (void)applicationWillFinishLaunching:(NSNotification*)notification { - [self configureMainMenuBar]; - [self onNewFlutterWindow:self]; -} - -- (void)configureMainMenuBar { - NSMenu* mainMenu = [[[NSMenu alloc] initWithTitle:@"MainMenu"] autorelease]; - - NSMenuItem* engineItem = - [[[NSMenuItem alloc] initWithTitle:@"Engine" action:NULL keyEquivalent:@""] autorelease]; - - NSMenu* engineMenu = [[[NSMenu alloc] initWithTitle:@"EngineMenu"] autorelease]; - - NSMenuItem* newEngineItem = [[[NSMenuItem alloc] initWithTitle:@"New Engine" - action:@selector(onNewFlutterWindow:) - keyEquivalent:@""] autorelease]; - newEngineItem.keyEquivalent = @"n"; - newEngineItem.keyEquivalentModifierMask = NSEventModifierFlagCommand; - - NSMenuItem* shutdownEngineItem = - [[[NSMenuItem alloc] initWithTitle:@"Shutdown Engine" - action:@selector(onShutdownFlutterWindow:) - keyEquivalent:@""] autorelease]; - shutdownEngineItem.keyEquivalent = @"w"; - shutdownEngineItem.keyEquivalentModifierMask = NSEventModifierFlagCommand; - - NSMenuItem* quitItem = [[[NSMenuItem alloc] initWithTitle:@"Quit" - action:@selector(onQuitFlutterApplication:) - keyEquivalent:@""] autorelease]; - quitItem.keyEquivalent = @"q"; - quitItem.keyEquivalentModifierMask = NSEventModifierFlagCommand; - - [mainMenu addItem:engineItem]; - [engineItem setSubmenu:engineMenu]; - [engineMenu addItem:newEngineItem]; - [engineMenu addItem:shutdownEngineItem]; - [engineMenu addItem:quitItem]; - - [NSApplication sharedApplication].mainMenu = mainMenu; -} - -- (void)onNewFlutterWindow:(id)sender { - FlutterWindow* window = [[FlutterWindow alloc] init]; - [window setReleasedWhenClosed:YES]; - - NSWindow* currentKeyWindow = [NSApplication sharedApplication].keyWindow; - - if (currentKeyWindow == nil) { - [window center]; - } else { - [window center]; - NSPoint currentWindowFrameOrigin = window.frame.origin; - currentWindowFrameOrigin.x = currentKeyWindow.frame.origin.x + 20; - currentWindowFrameOrigin.y = currentKeyWindow.frame.origin.y - 20; - [window setFrameOrigin:currentWindowFrameOrigin]; - } - - [window makeKeyAndOrderFront:sender]; -} - -- (void)onShutdownFlutterWindow:(id)sender { - [[NSApplication sharedApplication].keyWindow close]; -} - -- (void)onQuitFlutterApplication:(id)sender { - exit(0); -} - -@end diff --git a/shell/platform/darwin/desktop/flutter_window.h b/shell/platform/darwin/desktop/flutter_window.h deleted file mode 100644 index e07fe4eeb75..00000000000 --- a/shell/platform/darwin/desktop/flutter_window.h +++ /dev/null @@ -1,14 +0,0 @@ -// 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. - -#ifndef SHELL_PLATFORM_DARWIN_DESKTOP_FLUTTER_WINDOW_H_ -#define SHELL_PLATFORM_DARWIN_DESKTOP_FLUTTER_WINDOW_H_ - -#import - -@interface FlutterWindow : NSWindow - -@end - -#endif // SHELL_PLATFORM_DARWIN_DESKTOP_FLUTTER_WINDOW_H_ diff --git a/shell/platform/darwin/desktop/flutter_window.mm b/shell/platform/darwin/desktop/flutter_window.mm deleted file mode 100644 index 28591b950dc..00000000000 --- a/shell/platform/darwin/desktop/flutter_window.mm +++ /dev/null @@ -1,271 +0,0 @@ -// 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. - -#define FML_USED_ON_EMBEDDER - -#import "flutter_window.h" - -#include - -#include "flutter/common/task_runners.h" -#include "flutter/fml/make_copyable.h" -#include "flutter/fml/message_loop.h" -#include "flutter/shell/common/rasterizer.h" -#include "flutter/shell/common/switches.h" -#include "flutter/shell/common/thread_host.h" -#include "flutter/shell/gpu/gpu_surface_gl.h" -#include "flutter/shell/platform/darwin/common/command_line.h" -#include "flutter/shell/platform/darwin/desktop/platform_view_mac.h" - -@interface FlutterWindow () - -@property(strong) NSOpenGLView* renderSurface; - -@end - -static inline blink::PointerData::Change PointerChangeFromNSEventPhase(NSEventPhase phase) { - switch (phase) { - case NSEventPhaseNone: - return blink::PointerData::Change::kCancel; - case NSEventPhaseBegan: - return blink::PointerData::Change::kDown; - case NSEventPhaseStationary: - // There is no EVENT_TYPE_POINTER_STATIONARY. So we just pass a move type - // with the same coordinates - case NSEventPhaseChanged: - return blink::PointerData::Change::kMove; - case NSEventPhaseEnded: - return blink::PointerData::Change::kUp; - case NSEventPhaseCancelled: - return blink::PointerData::Change::kCancel; - case NSEventPhaseMayBegin: - return blink::PointerData::Change::kCancel; - } - return blink::PointerData::Change::kCancel; -} - -@implementation FlutterWindow { - shell::ThreadHost _thread_host; - std::unique_ptr _shell; - bool _mouseIsDown; -} - -- (instancetype)init { - self = [super initWithContentRect:NSMakeRect(10.0, 10.0, 800.0, 600.0) - styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | - NSWindowStyleMaskResizable - backing:NSBackingStoreBuffered - defer:YES]; - if (self) { - self.delegate = self; - [self setupRenderSurface]; - [self setupShell]; - [self updateWindowSize]; - } - - return self; -} - -- (void)setupRenderSurface { - NSOpenGLView* renderSurface = [[[NSOpenGLView alloc] init] autorelease]; - const NSOpenGLPixelFormatAttribute attrs[] = { - NSOpenGLPFADoubleBuffer, // - NSOpenGLPFAAllowOfflineRenderers, // - 0 // - }; - renderSurface.pixelFormat = [[[NSOpenGLPixelFormat alloc] initWithAttributes:attrs] autorelease]; - renderSurface.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable; - renderSurface.frame = - NSMakeRect(0.0, 0.0, self.contentView.bounds.size.width, self.contentView.bounds.size.height); - [self.contentView addSubview:renderSurface]; - self.renderSurface = renderSurface; -} - -static std::string CreateThreadLabel() { - std::stringstream stream; - static int index = 1; - stream << "io.flutter." << index++; - return stream.str(); -} - -- (void)setupShell { - FML_DCHECK(!_shell) << "The shell must not already be set."; - - auto thread_label = CreateThreadLabel(); - - // Create the threads on which to run the shell. - _thread_host = {thread_label, shell::ThreadHost::Type::GPU | shell::ThreadHost::Type::UI | - shell::ThreadHost::Type::IO}; - - // Grab the task runners for the newly created threads. - fml::MessageLoop::EnsureInitializedForCurrentThread(); - blink::TaskRunners task_runners(thread_label, // label - fml::MessageLoop::GetCurrent().GetTaskRunner(), // platform - _thread_host.gpu_thread->GetTaskRunner(), // GPU - _thread_host.ui_thread->GetTaskRunner(), // UI - _thread_host.io_thread->GetTaskRunner() // IO - ); - - // Figure out the settings from the command line arguments. - auto settings = shell::SettingsFromCommandLine(shell::CommandLineFromNSProcessInfo()); - - if (settings.icu_data_path.size() == 0) { - settings.icu_data_path = - [[NSBundle mainBundle] pathForResource:@"icudtl.dat" ofType:@""].UTF8String; - } - - settings.task_observer_add = [](intptr_t key, fml::closure callback) { - fml::MessageLoop::GetCurrent().AddTaskObserver(key, std::move(callback)); - }; - - settings.task_observer_remove = [](intptr_t key) { - fml::MessageLoop::GetCurrent().RemoveTaskObserver(key); - }; - - // Setup the callback that will be run on the appropriate threads. - shell::Shell::CreateCallback on_create_platform_view = - [render_surface = self.renderSurface](shell::Shell& shell) { - return std::make_unique(shell, render_surface); - }; - - shell::Shell::CreateCallback on_create_rasterizer = [](shell::Shell& shell) { - return std::make_unique(shell.GetTaskRunners()); - }; - - // Finally, create the shell. - _shell = shell::Shell::Create(std::move(task_runners), settings, on_create_platform_view, - on_create_rasterizer); - - // Launch the engine with the inferred run configuration. - _shell->GetTaskRunners().GetUITaskRunner()->PostTask(fml::MakeCopyable( - [engine = _shell->GetEngine(), - config = shell::RunConfiguration::InferFromSettings(_shell->GetSettings())]() mutable { - if (engine) { - auto result = engine->Run(std::move(config)); - if (!result) { - FML_LOG(ERROR) << "Could not launch the engine with configuration."; - } - } - })); - - [self notifySurfaceCreated]; -} - -- (void)notifySurfaceCreated { - if (!_shell || !_shell->IsSetup()) { - return; - } - - // Tell the platform view that it has a GL surface. - _shell->GetPlatformView()->NotifyCreated(); -} - -- (void)notifySurfaceDestroyed { - if (!_shell || !_shell->IsSetup()) { - return; - } - - // Tell the platform view that its surface is about to be lost. - _shell->GetPlatformView()->NotifyDestroyed(); -} - -- (void)windowDidResize:(NSNotification*)notification { - [self updateWindowSize]; -} - -- (void)updateWindowSize { - if (!_shell) { - return; - } - - blink::ViewportMetrics metrics; - auto size = self.renderSurface.frame.size; - metrics.physical_width = size.width; - metrics.physical_height = size.height; - _shell->GetTaskRunners().GetUITaskRunner()->PostTask([engine = _shell->GetEngine(), metrics]() { - if (engine) { - engine->SetViewportMetrics(metrics); - } - }); -} - -#pragma mark - Responder overrides - -- (void)dispatchEvent:(NSEvent*)event phase:(NSEventPhase)phase { - if (!_shell) { - return; - } - - NSPoint location = [_renderSurface convertPoint:event.locationInWindow fromView:nil]; - location.y = _renderSurface.frame.size.height - location.y; - - blink::PointerData pointer_data; - pointer_data.Clear(); - - constexpr int kMicrosecondsPerSecond = 1000 * 1000; - pointer_data.time_stamp = event.timestamp * kMicrosecondsPerSecond; - pointer_data.change = PointerChangeFromNSEventPhase(phase); - pointer_data.kind = blink::PointerData::DeviceKind::kMouse; - pointer_data.physical_x = location.x; - pointer_data.physical_y = location.y; - pointer_data.pressure = 1.0; - pointer_data.pressure_max = 1.0; - - switch (pointer_data.change) { - case blink::PointerData::Change::kDown: - _mouseIsDown = true; - break; - case blink::PointerData::Change::kCancel: - case blink::PointerData::Change::kUp: - _mouseIsDown = false; - break; - case blink::PointerData::Change::kMove: - if (!_mouseIsDown) - pointer_data.change = blink::PointerData::Change::kHover; - break; - case blink::PointerData::Change::kAdd: - case blink::PointerData::Change::kRemove: - case blink::PointerData::Change::kHover: - FML_DCHECK(!_mouseIsDown); - break; - } - - _shell->GetTaskRunners().GetUITaskRunner()->PostTask( - [engine = _shell->GetEngine(), pointer_data] { - if (engine) { - blink::PointerDataPacket packet(1); - packet.SetPointerData(0, pointer_data); - engine->DispatchPointerDataPacket(packet); - } - }); -} - -- (void)mouseDown:(NSEvent*)event { - [self dispatchEvent:event phase:NSEventPhaseBegan]; -} - -- (void)mouseDragged:(NSEvent*)event { - [self dispatchEvent:event phase:NSEventPhaseChanged]; -} - -- (void)mouseUp:(NSEvent*)event { - [self dispatchEvent:event phase:NSEventPhaseEnded]; -} - -- (void)reset { - [self notifySurfaceDestroyed]; - _shell.reset(); - _thread_host.Reset(); -} - -- (void)windowWillClose:(NSNotification*)notification { - [self reset]; -} - -- (void)dealloc { - [self reset]; - [super dealloc]; -} - -@end diff --git a/shell/platform/darwin/desktop/main_mac.mm b/shell/platform/darwin/desktop/main_mac.mm deleted file mode 100644 index 55a8e6a6de0..00000000000 --- a/shell/platform/darwin/desktop/main_mac.mm +++ /dev/null @@ -1,34 +0,0 @@ -// 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. - -#import - -#include - -#include "flutter/fml/command_line.h" -#include "flutter/fml/logging.h" -#include "flutter/fml/message_loop.h" -#include "flutter/shell/common/shell.h" -#include "flutter/shell/common/switches.h" -#include "flutter/shell/platform/darwin/desktop/flutter_application_delegate.h" - -int main(int argc, const char* argv[]) { - std::vector args_vector; - - for (NSString* arg in [NSProcessInfo processInfo].arguments) { - args_vector.emplace_back(arg.UTF8String); - } - - auto command_line = fml::CommandLineFromIterators(args_vector.begin(), args_vector.end()); - - // Print help. - if (command_line.HasOption(shell::FlagForSwitch(shell::Switch::Help))) { - shell::PrintUsage([NSProcessInfo processInfo].processName.UTF8String); - return EXIT_SUCCESS; - } - - [NSApplication sharedApplication].delegate = - [[[FlutterApplicationDelegate alloc] init] autorelease]; - return NSApplicationMain(argc, argv); -} diff --git a/shell/platform/darwin/desktop/platform_view_mac.h b/shell/platform/darwin/desktop/platform_view_mac.h deleted file mode 100644 index c288d324ab0..00000000000 --- a/shell/platform/darwin/desktop/platform_view_mac.h +++ /dev/null @@ -1,52 +0,0 @@ -// 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. - -#ifndef SHELL_PLATFORM_MAC_PLATFORM_VIEW_MAC_H_ -#define SHELL_PLATFORM_MAC_PLATFORM_VIEW_MAC_H_ - -#include "flutter/fml/memory/weak_ptr.h" -#include "flutter/fml/platform/darwin/scoped_nsobject.h" -#include "flutter/shell/common/platform_view.h" -#include "flutter/shell/common/shell.h" -#include "flutter/shell/gpu/gpu_surface_gl.h" - -@class NSOpenGLView; -@class NSOpenGLContext; - -namespace shell { - -class PlatformViewMac final : public PlatformView, public GPUSurfaceGLDelegate { - public: - PlatformViewMac(Shell& shell, NSOpenGLView* gl_view); - - ~PlatformViewMac() override; - - std::unique_ptr CreateVSyncWaiter() override; - - bool GLContextMakeCurrent() override; - - bool GLContextClearCurrent() override; - - bool GLContextPresent() override; - - intptr_t GLContextFBO() const override; - - private: - fml::scoped_nsobject opengl_view_; - fml::scoped_nsobject resource_loading_context_; - - bool IsValid() const; - - // |shell::PlatformView| - std::unique_ptr CreateRenderingSurface() override; - - // |shell::PlatformView| - sk_sp CreateResourceContext() const override; - - FML_DISALLOW_COPY_AND_ASSIGN(PlatformViewMac); -}; - -} // namespace shell - -#endif // SHELL_PLATFORM_MAC_PLATFORM_VIEW_MAC_H_ diff --git a/shell/platform/darwin/desktop/platform_view_mac.mm b/shell/platform/darwin/desktop/platform_view_mac.mm deleted file mode 100644 index 2a08de681f9..00000000000 --- a/shell/platform/darwin/desktop/platform_view_mac.mm +++ /dev/null @@ -1,90 +0,0 @@ -// 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. - -#include "flutter/shell/platform/darwin/desktop/platform_view_mac.h" - -#include -#include - -#include "flutter/fml/command_line.h" -#include "flutter/fml/synchronization/waitable_event.h" -#include "flutter/fml/trace_event.h" -#include "flutter/shell/common/io_manager.h" -#include "flutter/shell/common/rasterizer.h" -#include "flutter/shell/common/switches.h" -#include "flutter/shell/platform/darwin/desktop/vsync_waiter_mac.h" - -namespace shell { - -PlatformViewMac::PlatformViewMac(Shell& shell, NSOpenGLView* gl_view) - : PlatformView(shell, shell.GetTaskRunners()), - opengl_view_([gl_view retain]), - resource_loading_context_([[NSOpenGLContext alloc] initWithFormat:gl_view.pixelFormat - shareContext:gl_view.openGLContext]) {} - -PlatformViewMac::~PlatformViewMac() = default; - -std::unique_ptr PlatformViewMac::CreateVSyncWaiter() { - return std::make_unique(task_runners_); -} - -intptr_t PlatformViewMac::GLContextFBO() const { - // Default window bound framebuffer FBO 0. - return 0; -} - -bool PlatformViewMac::GLContextMakeCurrent() { - TRACE_EVENT0("flutter", "PlatformViewMac::GLContextMakeCurrent"); - if (!IsValid()) { - return false; - } - - [opengl_view_.get().openGLContext makeCurrentContext]; - return true; -} - -bool PlatformViewMac::GLContextClearCurrent() { - TRACE_EVENT0("flutter", "PlatformViewMac::GLContextClearCurrent"); - if (!IsValid()) { - return false; - } - - [NSOpenGLContext clearCurrentContext]; - return true; -} - -bool PlatformViewMac::GLContextPresent() { - TRACE_EVENT0("flutter", "PlatformViewMac::GLContextPresent"); - if (!IsValid()) { - return false; - } - - [opengl_view_.get().openGLContext flushBuffer]; - return true; -} - -sk_sp PlatformViewMac::CreateResourceContext() const { - [resource_loading_context_.get() makeCurrentContext]; - return IOManager::CreateCompatibleResourceLoadingContext(GrBackend::kOpenGL_GrBackend); -} - -bool PlatformViewMac::IsValid() const { - if (opengl_view_ == nullptr) { - return false; - } - - auto context = opengl_view_.get().openGLContext; - - if (context == nullptr) { - return false; - } - - return true; -} - -std::unique_ptr PlatformViewMac::CreateRenderingSurface() { - return std::make_unique(this); -} - -} // namespace shell diff --git a/shell/platform/darwin/desktop/vsync_waiter_mac.cc b/shell/platform/darwin/desktop/vsync_waiter_mac.cc deleted file mode 100644 index 27aff35fb31..00000000000 --- a/shell/platform/darwin/desktop/vsync_waiter_mac.cc +++ /dev/null @@ -1,58 +0,0 @@ -// 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. - -#include "flutter/shell/platform/darwin/desktop/vsync_waiter_mac.h" - -#include - -#include "flutter/fml/logging.h" - -namespace shell { - -#define link_ (reinterpret_cast(opaque_)) - -VsyncWaiterMac::VsyncWaiterMac(blink::TaskRunners task_runners) - : VsyncWaiter(std::move(task_runners)), opaque_(nullptr) { - // Create the link. - CVDisplayLinkRef link = nullptr; - CVDisplayLinkCreateWithActiveCGDisplays(&link); - opaque_ = link; - - // Set the output callback. - CVDisplayLinkSetOutputCallback( - link_, - [](CVDisplayLinkRef link, const CVTimeStamp* now, - const CVTimeStamp* output, CVOptionFlags flags_in, - CVOptionFlags* flags_out, void* context) -> CVReturn { - OnDisplayLink(context); - return kCVReturnSuccess; - }, - this); -} - -VsyncWaiterMac::~VsyncWaiterMac() { - CVDisplayLinkRelease(link_); -} - -void VsyncWaiterMac::OnDisplayLink(void* context) { - reinterpret_cast(context)->OnDisplayLink(); -} - -void VsyncWaiterMac::OnDisplayLink() { - fml::TimePoint frame_start_time = fml::TimePoint::Now(); - fml::TimePoint frame_target_time = - frame_start_time + - fml::TimeDelta::FromSecondsF( - CVDisplayLinkGetActualOutputVideoRefreshPeriod(link_)); - - CVDisplayLinkStop(link_); - - FireCallback(frame_start_time, frame_target_time); -} - -void VsyncWaiterMac::AwaitVSync() { - CVDisplayLinkStart(link_); -} - -} // namespace shell diff --git a/shell/platform/darwin/desktop/vsync_waiter_mac.h b/shell/platform/darwin/desktop/vsync_waiter_mac.h deleted file mode 100644 index 1bc4176263e..00000000000 --- a/shell/platform/darwin/desktop/vsync_waiter_mac.h +++ /dev/null @@ -1,33 +0,0 @@ -// 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 FLUTTER_SHELL_PLATFORM_DARWIN_DESKTOP_VSYNC_WAITER_MAC_H_ -#define FLUTTER_SHELL_PLATFORM_DARWIN_DESKTOP_VSYNC_WAITER_MAC_H_ - -#include "flutter/fml/macros.h" -#include "flutter/shell/common/vsync_waiter.h" - -namespace shell { - -class VsyncWaiterMac final : public VsyncWaiter { - public: - VsyncWaiterMac(blink::TaskRunners task_runners); - - ~VsyncWaiterMac() override; - - private: - void* opaque_; - - void AwaitVSync() override; - - static void OnDisplayLink(void* context); - - void OnDisplayLink(); - - FML_DISALLOW_COPY_AND_ASSIGN(VsyncWaiterMac); -}; - -} // namespace shell - -#endif // FLUTTER_SHELL_PLATFORM_DARWIN_DESKTOP_VSYNC_WAITER_MAC_H_