5#ifndef FLUTTER_SHELL_COMMON_SHELL_TEST_PLATFORM_VIEW_METAL_H_
6#define FLUTTER_SHELL_COMMON_SHELL_TEST_PLATFORM_VIEW_METAL_H_
8#include "flutter/fml/macros.h"
9#include "flutter/shell/common/shell_test_platform_view.h"
10#include "flutter/shell/gpu/gpu_surface_metal_delegate.h"
15class DarwinContextMetal;
22 std::shared_ptr<ShellTestVsyncClock> vsync_clock,
24 std::shared_ptr<ShellTestExternalViewEmbedder>
25 shell_test_external_view_embedder,
26 const std::shared_ptr<const fml::SyncSwitch>&
27 is_gpu_disabled_sync_switch);
33 const std::unique_ptr<DarwinContextMetal> metal_context_;
35 const std::shared_ptr<ShellTestVsyncClock> vsync_clock_;
36 const std::shared_ptr<ShellTestExternalViewEmbedder>
37 shell_test_external_view_embedder_;
43 std::unique_ptr<VsyncWaiter> CreateVSyncWaiter()
override;
46 std::shared_ptr<ExternalViewEmbedder> CreateExternalViewEmbedder()
override;
52 std::unique_ptr<Surface> CreateRenderingSurface()
override;
55 std::shared_ptr<impeller::Context> GetImpellerContext()
const override;
59 const SkISize& frame_info)
const override;
62 bool PresentDrawable(
GrMTLHandle drawable)
const override;
std::function< std::unique_ptr< VsyncWaiter >()> CreateVsyncWaiter
std::function< std::unique_ptr< PointerDataDispatcher >(PointerDataDispatcher::Delegate &)> PointerDataDispatcherMaker
Signature for constructing PointerDataDispatcher.
void * GPUCAMetalLayerHandle