5251e0048fd61c947b9fbf9cdaa63cef26f277ca
# Original pull request description This introduces the `egl::Surface` and `egl::WindowSurface` types to abstract a raw `EGLSurface`. This also removes some - but not all - EGL surface logic out from `EGLManager`. Subsequent pull requests will be necessary to: 1. Move ownership of the `egl::WindowSurface` from `egl::Manager` to `FlutterWindowsView` 2. Refactor external texture's off-screen EGL surface to use `egl::Surface` Part of https://github.com/flutter/flutter/issues/141996 # Reland https://github.com/flutter/engine/pull/49983 was reverted as it introduced a crash if the render surface fails to be created even though EGL was initialized successfully. This pull request is split into the following commits: 1.c0b11be79fis the original pull request unchanged 2.1dc7813845is the fix: it checks a surface is valid before using it. This also adds several tests to prevent this kind of regression. [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
Description
Languages
Dart
75.4%
C++
16.4%
Objective-C++
2.7%
Java
2.7%
Objective-C
0.6%
Other
1.8%