FlutterAngleTexture invoke resize callback on size change, cleanup on destruction and call glFinish in RenderCallback

FlutterAngleTexture invoke resize callback on size change, cleanup on destruction and call glFinish in RenderCallback
move OpenGlTextureBuffer cleanup to destructor
This commit is contained in:
Nick Fisher
2023-10-24 12:26:07 +11:00
parent 435ed7bee6
commit 3f988a119c
5 changed files with 59 additions and 39 deletions

View File

@@ -38,7 +38,8 @@ class FlutterAngleTexture {
ID3D11DeviceContext* D3D11DeviceContext,
EGLConfig eglConfig,
EGLDisplay eglDisplay,
EGLContext eglContext
EGLContext eglContext,
std::function<void(size_t, size_t)> onResizeRequested
);
~FlutterAngleTexture();
@@ -55,6 +56,7 @@ class FlutterAngleTexture {
uint32_t _height = 0;
bool logged = false;
std::shared_ptr<std::mutex> _renderMutex;
std::function<void(size_t, size_t)> _onResizeRequested;
// Device
ID3D11Device* _D3D11Device = nullptr;
@@ -68,6 +70,7 @@ class FlutterAngleTexture {
EGLDisplay _eglDisplay = EGL_NO_DISPLAY;
EGLContext _eglContext = EGL_NO_CONTEXT;
EGLConfig _eglConfig = EGL_NO_CONFIG_KHR;
EGLSurface _eglSurface = EGL_NO_SURFACE;
std::unique_ptr<FlutterDesktopGpuSurfaceDescriptor> _textureDescriptor = nullptr;