#include <angle_surface_manager.h>
Definition at line 28 of file angle_surface_manager.h.
◆ ~AngleSurfaceManager()
flutter::AngleSurfaceManager::~AngleSurfaceManager |
( |
| ) |
|
|
virtual |
◆ AngleSurfaceManager()
flutter::AngleSurfaceManager::AngleSurfaceManager |
( |
bool |
enable_impeller | ) |
|
|
explicitprotected |
Definition at line 33 of file angle_surface_manager.cc.
34 : egl_config_(
nullptr),
35 egl_display_(EGL_NO_DISPLAY),
36 egl_context_(EGL_NO_CONTEXT) {
37 initialize_succeeded_ = Initialize(enable_impeller);
Referenced by Create().
◆ ClearContext()
bool flutter::AngleSurfaceManager::ClearContext |
( |
| ) |
|
◆ ClearCurrent()
bool flutter::AngleSurfaceManager::ClearCurrent |
( |
| ) |
|
|
virtual |
Definition at line 317 of file angle_surface_manager.cc.
318 return (eglMakeCurrent(egl_display_, EGL_NO_SURFACE, EGL_NO_SURFACE,
319 EGL_NO_CONTEXT) == EGL_TRUE);
◆ Create()
std::unique_ptr< AngleSurfaceManager > flutter::AngleSurfaceManager::Create |
( |
bool |
enable_impeller | ) |
|
|
static |
◆ CreateSurface()
bool flutter::AngleSurfaceManager::CreateSurface |
( |
HWND |
hwnd, |
|
|
EGLint |
width, |
|
|
EGLint |
height |
|
) |
| |
|
virtual |
Definition at line 232 of file angle_surface_manager.cc.
235 if (!hwnd || !initialize_succeeded_) {
239 EGLSurface surface = EGL_NO_SURFACE;
244 const EGLint surfaceAttributes[] = {
245 EGL_FIXED_SIZE_ANGLE, EGL_TRUE, EGL_WIDTH, width,
246 EGL_HEIGHT, height, EGL_NONE};
248 surface = eglCreateWindowSurface(egl_display_, egl_config_,
249 static_cast<EGLNativeWindowType
>(hwnd),
251 if (surface == EGL_NO_SURFACE) {
256 surface_width_ = width;
257 surface_height_ = height;
258 render_surface_ = surface;
References LogEglError().
Referenced by flutter::FlutterWindowsView::CreateRenderSurface(), and ResizeSurface().
◆ CreateSurfaceFromHandle()
EGLSurface flutter::AngleSurfaceManager::CreateSurfaceFromHandle |
( |
EGLenum |
handle_type, |
|
|
EGLClientBuffer |
handle, |
|
|
const EGLint * |
attributes |
|
) |
| const |
Definition at line 336 of file angle_surface_manager.cc.
340 return eglCreatePbufferFromClientBuffer(egl_display_, handle_type, handle,
341 egl_config_, attributes);
◆ DestroySurface()
void flutter::AngleSurfaceManager::DestroySurface |
( |
| ) |
|
|
virtual |
◆ egl_display()
EGLDisplay flutter::AngleSurfaceManager::egl_display |
( |
| ) |
const |
|
inline |
◆ GetDevice()
bool flutter::AngleSurfaceManager::GetDevice |
( |
ID3D11Device ** |
device | ) |
|
Definition at line 361 of file angle_surface_manager.cc.
362 if (!resolved_device_) {
363 PFNEGLQUERYDISPLAYATTRIBEXTPROC egl_query_display_attrib_EXT =
364 reinterpret_cast<PFNEGLQUERYDISPLAYATTRIBEXTPROC
>(
365 eglGetProcAddress(
"eglQueryDisplayAttribEXT"));
367 PFNEGLQUERYDEVICEATTRIBEXTPROC egl_query_device_attrib_EXT =
368 reinterpret_cast<PFNEGLQUERYDEVICEATTRIBEXTPROC
>(
369 eglGetProcAddress(
"eglQueryDeviceAttribEXT"));
371 if (!egl_query_display_attrib_EXT || !egl_query_device_attrib_EXT) {
375 EGLAttrib egl_device = 0;
376 EGLAttrib angle_device = 0;
377 if (egl_query_display_attrib_EXT(egl_display_, EGL_DEVICE_EXT,
378 &egl_device) == EGL_TRUE) {
379 if (egl_query_device_attrib_EXT(
380 reinterpret_cast<EGLDeviceEXT
>(egl_device),
381 EGL_D3D11_DEVICE_ANGLE, &angle_device) == EGL_TRUE) {
382 resolved_device_ =
reinterpret_cast<ID3D11Device*
>(angle_device);
387 resolved_device_.CopyTo(device);
388 return (resolved_device_ !=
nullptr);
◆ GetSurfaceDimensions()
void flutter::AngleSurfaceManager::GetSurfaceDimensions |
( |
EGLint * |
width, |
|
|
EGLint * |
height |
|
) |
| |
◆ HasContextCurrent()
bool flutter::AngleSurfaceManager::HasContextCurrent |
( |
| ) |
|
◆ MakeCurrent()
bool flutter::AngleSurfaceManager::MakeCurrent |
( |
| ) |
|
|
virtual |
◆ MakeResourceCurrent()
bool flutter::AngleSurfaceManager::MakeResourceCurrent |
( |
| ) |
|
Definition at line 327 of file angle_surface_manager.cc.
328 return (eglMakeCurrent(egl_display_, EGL_NO_SURFACE, EGL_NO_SURFACE,
329 egl_resource_context_) == EGL_TRUE);
◆ ResizeSurface()
void flutter::AngleSurfaceManager::ResizeSurface |
( |
HWND |
hwnd, |
|
|
EGLint |
width, |
|
|
EGLint |
height, |
|
|
bool |
enable_vsync |
|
) |
| |
|
virtual |
◆ SetVSyncEnabled()
void flutter::AngleSurfaceManager::SetVSyncEnabled |
( |
bool |
enabled | ) |
|
|
virtual |
◆ SwapBuffers()
EGLBoolean flutter::AngleSurfaceManager::SwapBuffers |
( |
| ) |
|
The documentation for this class was generated from the following files: