12#include "impeller/entity/gles/entity_shaders_gles.h"
19 std::make_shared<fml::NonOwnedMapping>(
20 impeller_entity_shaders_gles_data,
21 impeller_entity_shaders_gles_length),
28 const std::shared_ptr<ShellTestVsyncClock>& vsync_clock,
30 const std::shared_ptr<ShellTestExternalViewEmbedder>&
31 shell_test_external_view_embedder,
32 const std::shared_ptr<const fml::SyncSwitch>& is_gpu_disabled_sync_switch) {
33 return std::make_unique<ShellTestPlatformViewGL>(
34 delegate, task_runners, vsync_clock, create_vsync_waiter,
35 shell_test_external_view_embedder);
41 std::shared_ptr<ShellTestVsyncClock> vsync_clock,
43 std::shared_ptr<ShellTestExternalViewEmbedder>
44 shell_test_external_view_embedder)
47 create_vsync_waiter_(
std::move(create_vsync_waiter)),
48 vsync_clock_(
std::move(vsync_clock)),
49 shell_test_external_view_embedder_(
50 std::move(shell_test_external_view_embedder)) {
52 auto resolver = [](
const char*
name) ->
void* {
53 return reinterpret_cast<void*
>(::eglGetProcAddress(
name));
58 auto gl = std::make_unique<impeller::ProcTableGLES>(resolver);
60 FML_LOG(ERROR) <<
"Proc table when a shell unittests invalid.";
70std::unique_ptr<VsyncWaiter> ShellTestPlatformViewGL::CreateVSyncWaiter() {
71 return create_vsync_waiter_();
76 vsync_clock_->SimulateVSync();
80std::unique_ptr<Surface> ShellTestPlatformViewGL::CreateRenderingSurface() {
81 return std::make_unique<GPUSurfaceGLSkia>(
this,
true);
85std::shared_ptr<ExternalViewEmbedder>
86ShellTestPlatformViewGL::CreateExternalViewEmbedder() {
87 return shell_test_external_view_embedder_;
92 return [](DefaultPointerDataDispatcher::Delegate& delegate) {
93 return std::make_unique<SmoothPointerDataDispatcher>(delegate);
98std::unique_ptr<GLContextResult>
99ShellTestPlatformViewGL::GLContextMakeCurrent() {
100 return std::make_unique<GLContextDefaultResult>(gl_surface_.
MakeCurrent());
104bool ShellTestPlatformViewGL::GLContextClearCurrent() {
109bool ShellTestPlatformViewGL::GLContextPresent(
110 const GLPresentInfo& present_info) {
115GLFBOInfo ShellTestPlatformViewGL::GLContextFBO(GLFrameInfo frame_info)
const {
117 .fbo_id = gl_surface_.
GetFramebuffer(frame_info.width, frame_info.height),
123ShellTestPlatformViewGL::GetGLProcResolver()
const {
124 return [
surface = &gl_surface_](
const char*
name) ->
void* {
std::function< void *(const char *)> GLProcResolver
uint32_t GetFramebuffer(uint32_t width, uint32_t height) const
static std::shared_ptr< ContextGLES > Create(const Flags &flags, std::unique_ptr< ProcTableGLES > gl, const std::vector< std::shared_ptr< fml::Mapping > > &shader_libraries, bool enable_gpu_tracing)
#define FML_LOG(severity)
std::function< std::unique_ptr< VsyncWaiter >()> CreateVsyncWaiter
static std::vector< std::shared_ptr< fml::Mapping > > ShaderLibraryMappings()
std::function< std::unique_ptr< PointerDataDispatcher >(PointerDataDispatcher::Delegate &)> PointerDataDispatcherMaker
Signature for constructing PointerDataDispatcher.
DEF_SWITCHES_START aot vmservice shared library name