Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
embedder_surface_gl_impeller.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef FLUTTER_SHELL_PLATFORM_EMBEDDER_EMBEDDER_SURFACE_GL_IMPELLER_H_
6#define FLUTTER_SHELL_PLATFORM_EMBEDDER_EMBEDDER_SURFACE_GL_IMPELLER_H_
7
13
14namespace impeller {
15class ContextGLES;
16} // namespace impeller
17
18#include "impeller/base/flags.h"
19
20namespace flutter {
21namespace testing {
22FML_TEST_CLASS(EmbedderSurfaceGLImpellerTest, GLES3ContextHasGLES3Shaders);
23FML_TEST_CLASS(EmbedderSurfaceGLImpellerTest,
24 GLES2ContextDoesNotHaveGLES3Shaders);
25} // namespace testing
26
27class ReactorWorker;
28
31 public:
34 bool fbo_reset_after_present,
35 std::shared_ptr<EmbedderExternalViewEmbedder> external_view_embedder,
36 std::shared_ptr<fml::BasicTaskRunner> io_task_runner,
37 impeller::Flags impeller_flags = {});
38
40
41 private:
42 FML_FRIEND_TEST(testing::EmbedderSurfaceGLImpellerTest,
43 GLES3ContextHasGLES3Shaders);
44 FML_FRIEND_TEST(testing::EmbedderSurfaceGLImpellerTest,
45 GLES2ContextDoesNotHaveGLES3Shaders);
46 bool valid_ = false;
48 bool fbo_reset_after_present_;
49 std::shared_ptr<impeller::ContextGLES> impeller_context_;
50 std::shared_ptr<EmbedderExternalViewEmbedder> external_view_embedder_;
51 std::shared_ptr<ReactorWorker> worker_;
52
53 // |EmbedderSurface|
54 bool IsValid() const override;
55
56 // |EmbedderSurface|
57 std::unique_ptr<Surface> CreateGPUSurface() override;
58
59 // |EmbedderSurface|
60 std::shared_ptr<impeller::Context> CreateImpellerContext() const override;
61
62 // |GPUSurfaceGLDelegate|
63 std::unique_ptr<GLContextResult> GLContextMakeCurrent() override;
64
65 // |GPUSurfaceGLDelegate|
66 bool GLContextClearCurrent() override;
67
68 // |GPUSurfaceGLDelegate|
69 bool GLContextPresent(const GLPresentInfo& present_info) override;
70
71 // |GPUSurfaceGLDelegate|
72 GLFBOInfo GLContextFBO(GLFrameInfo frame_info) const override;
73
74 // |GPUSurfaceGLDelegate|
75 bool GLContextFBOResetAfterPresent() const override;
76
77 // |GPUSurfaceGLDelegate|
78 DlMatrix GLContextSurfaceTransformation() const override;
79
80 // |GPUSurfaceGLDelegate|
81 GLProcResolver GetGLProcResolver() const override;
82
83 // |GPUSurfaceGLDelegate|
84 SurfaceFrame::FramebufferInfo GLContextFramebufferInfo() const override;
85
86 // |EmbedderSurface|
87 sk_sp<GrDirectContext> CreateResourceContext() const override;
88
89 // |EmbedderSurface|
90 void ReleaseResourceContext() const override;
91
93};
94
95} // namespace flutter
96
97#endif // FLUTTER_SHELL_PLATFORM_EMBEDDER_EMBEDDER_SURFACE_GL_IMPELLER_H_
std::function< void *(const char *)> GLProcResolver
#define FML_FRIEND_TEST(test_case_name, test_name)
Definition macros.h:47
#define FML_TEST_CLASS(test_case_name, test_name)
Definition macros.h:44
#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName)
Definition macros.h:27
A 4x4 matrix using column-major storage.
Definition matrix.h:37