5#ifndef FLUTTER_SHELL_PLATFORM_EMBEDDER_EMBEDDER_SURFACE_GL_IMPELLER_H_
6#define FLUTTER_SHELL_PLATFORM_EMBEDDER_EMBEDDER_SURFACE_GL_IMPELLER_H_
8#include "flutter/fml/macros.h"
9#include "flutter/shell/gpu/gpu_surface_gl_impeller.h"
10#include "flutter/shell/platform/embedder/embedder_external_view_embedder.h"
11#include "flutter/shell/platform/embedder/embedder_surface.h"
12#include "flutter/shell/platform/embedder/embedder_surface_gl_skia.h"
27 bool fbo_reset_after_present,
28 std::shared_ptr<EmbedderExternalViewEmbedder> external_view_embedder);
35 bool fbo_reset_after_present_;
36 std::shared_ptr<impeller::ContextGLES> impeller_context_;
37 std::shared_ptr<EmbedderExternalViewEmbedder> external_view_embedder_;
38 std::shared_ptr<ReactorWorker> worker_;
41 bool IsValid()
const override;
44 std::unique_ptr<Surface> CreateGPUSurface()
override;
47 std::shared_ptr<impeller::Context> CreateImpellerContext()
const override;
50 std::unique_ptr<GLContextResult> GLContextMakeCurrent()
override;
53 bool GLContextClearCurrent()
override;
56 bool GLContextPresent(
const GLPresentInfo& present_info)
override;
62 bool GLContextFBOResetAfterPresent()
const override;
65 SkMatrix GLContextSurfaceTransformation()
const override;
EmbedderSurfaceGLImpeller(EmbedderSurfaceGLSkia::GLDispatchTable gl_dispatch_table, bool fbo_reset_after_present, std::shared_ptr< EmbedderExternalViewEmbedder > external_view_embedder)
~EmbedderSurfaceGLImpeller() override
std::function< void *(const char *)> GLProcResolver