5 #ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_ANGLE_SURFACE_MANAGER_H_
6 #define FLUTTER_SHELL_PLATFORM_WINDOWS_ANGLE_SURFACE_MANAGER_H_
10 #include <EGL/eglext.h>
11 #include <EGL/eglplatform.h>
12 #include <GLES2/gl2.h>
13 #include <GLES2/gl2ext.h>
18 #include <wrl/client.h>
21 #include "flutter/fml/macros.h"
30 static std::unique_ptr<AngleSurfaceManager>
Create(
bool enable_impeller);
41 virtual bool CreateSurface(HWND hwnd, EGLint width, EGLint height);
84 EGLClientBuffer handle,
85 const EGLint* attributes)
const;
109 bool Initialize(
bool enable_impeller);
114 PFNEGLGETPLATFORMDISPLAYEXTPROC egl_get_platform_display_EXT,
115 const EGLint* config,
119 EGLDisplay egl_display_;
122 EGLContext egl_context_;
126 EGLContext egl_resource_context_;
129 EGLConfig egl_config_;
133 bool initialize_succeeded_;
136 EGLSurface render_surface_ = EGL_NO_SURFACE;
139 EGLint surface_width_ = 0;
140 EGLint surface_height_ = 0;
143 Microsoft::WRL::ComPtr<ID3D11Device> resolved_device_;
146 static int instance_count_;
153 #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_ANGLE_SURFACE_MANAGER_H_