5#include "flutter/shell/platform/embedder/embedder_surface_gl_skia.h"
9#include "flutter/shell/common/shell_io_manager.h"
15 bool fbo_reset_after_present,
16 std::shared_ptr<EmbedderExternalViewEmbedder> external_view_embedder)
17 : gl_dispatch_table_(
std::move(gl_dispatch_table)),
18 fbo_reset_after_present_(fbo_reset_after_present),
19 external_view_embedder_(
std::move(external_view_embedder)) {
35bool EmbedderSurfaceGLSkia::IsValid()
const {
40std::unique_ptr<GLContextResult> EmbedderSurfaceGLSkia::GLContextMakeCurrent() {
41 return std::make_unique<GLContextDefaultResult>(
46bool EmbedderSurfaceGLSkia::GLContextClearCurrent() {
51bool EmbedderSurfaceGLSkia::GLContextPresent(
52 const GLPresentInfo& present_info) {
58GLFBOInfo EmbedderSurfaceGLSkia::GLContextFBO(GLFrameInfo frame_info)
const {
66bool EmbedderSurfaceGLSkia::GLContextFBOResetAfterPresent()
const {
67 return fbo_reset_after_present_;
71SkMatrix EmbedderSurfaceGLSkia::GLContextSurfaceTransformation()
const {
88SurfaceFrame::FramebufferInfo EmbedderSurfaceGLSkia::GLContextFramebufferInfo()
91 auto info = SurfaceFrame::FramebufferInfo{};
92 info.supports_readback =
true;
93 info.supports_partial_repaint =
99std::unique_ptr<Surface> EmbedderSurfaceGLSkia::CreateGPUSurface() {
100 const bool render_to_surface = !external_view_embedder_;
101 return std::make_unique<GPUSurfaceGLSkia>(
116 <<
"Internal error: Resource context available but could not create "
117 "a compatible Skia context.";
124 <<
"Could not create a resource context for async texture uploads. "
125 "Expect degraded performance. Set a valid make_resource_current "
126 "callback on FlutterOpenGLRendererConfig.";
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
~EmbedderSurfaceGLSkia() override
EmbedderSurfaceGLSkia(GLDispatchTable gl_dispatch_table, bool fbo_reset_after_present, std::shared_ptr< EmbedderExternalViewEmbedder > external_view_embedder)
std::function< void *(const char *)> GLProcResolver
virtual sk_sp< const GrGLInterface > GetGLInterface() const
static sk_sp< GrDirectContext > CreateCompatibleResourceLoadingContext(GrBackendApi backend, const sk_sp< const GrGLInterface > &gl_interface)
FlKeyEvent uint64_t FlKeyResponderAsyncCallback callback
#define FML_LOG(severity)
unsigned useCenter Optional< SkMatrix > matrix
std::function< bool(void)> gl_clear_current_callback
std::function< GLFBOInfo(intptr_t)> gl_populate_existing_damage
std::function< bool(void)> gl_make_current_callback
std::function< intptr_t(GLFrameInfo)> gl_fbo_callback
std::function< bool(GLPresentInfo)> gl_present_callback
std::function< bool(void)> gl_make_resource_current_callback
std::function< void *(const char *)> gl_proc_resolver
std::function< SkMatrix(void)> gl_surface_transformation_callback