5 #ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_EGL_MANAGER_H_
6 #define FLUTTER_SHELL_PLATFORM_WINDOWS_EGL_MANAGER_H_
10 #include <EGL/eglext.h>
11 #include <EGL/eglplatform.h>
12 #include <GLES2/gl2.h>
13 #include <GLES2/gl2ext.h>
20 #include <wrl/client.h>
24 #include "flutter/fml/macros.h"
67 EGLClientBuffer handle,
68 const EGLint* attributes)
const;
91 static int instance_count_;
97 bool InitializeConfig();
100 bool InitializeContexts();
103 bool InitializeDevice();
108 bool is_valid_ =
false;
111 EGLDisplay display_ = EGL_NO_DISPLAY;
114 EGLConfig config_ =
nullptr;
117 std::unique_ptr<Context> render_context_;
120 std::unique_ptr<Context> resource_context_;
123 Microsoft::WRL::ComPtr<ID3D11Device> resolved_device_ =
nullptr;
125 FML_DISALLOW_COPY_AND_ASSIGN(
Manager);
virtual Context * resource_context() const
Manager(GpuPreference gpu_preference)
EGLSurface CreateSurfaceFromHandle(EGLenum handle_type, EGLClientBuffer handle, const EGLint *attributes) const
static std::optional< LUID > GetLowPowerGpuLuid()
virtual Context * render_context() const
static std::unique_ptr< Manager > Create(GpuPreference gpu_preference)
virtual std::unique_ptr< WindowSurface > CreateWindowSurface(HWND hwnd, size_t width, size_t height)
bool GetDevice(ID3D11Device **device)
EGLDisplay egl_display() const