فهرست منبع

Windows: Update ANGLE surface size when window is resized

ANGLE needs to be told to resize the DXGI swap chain using
`eglWaitNative`. Otherwise the resize will only happen in
`eglSwapBuffers`, which causes some janky stretching during window
resize.
Alvin Wong 1 سال پیش
والد
کامیت
a1a0acff7c
2فایلهای تغییر یافته به همراه6 افزوده شده و 1 حذف شده
  1. 5 0
      platform/windows/gl_manager_windows_angle.cpp
  2. 1 1
      platform/windows/gl_manager_windows_angle.h

+ 5 - 0
platform/windows/gl_manager_windows_angle.cpp

@@ -67,4 +67,9 @@ Vector<EGLint> GLManagerANGLE_Windows::_get_platform_context_attribs() const {
 	return ret;
 }
 
+void GLManagerANGLE_Windows::window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height) {
+	window_make_current(p_window_id);
+	eglWaitNative(EGL_CORE_NATIVE_ENGINE);
+}
+
 #endif // WINDOWS_ENABLED && GLES3_ENABLED

+ 1 - 1
platform/windows/gl_manager_windows_angle.h

@@ -50,7 +50,7 @@ private:
 	virtual Vector<EGLint> _get_platform_context_attribs() const override;
 
 public:
-	void window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height) {}
+	void window_resize(DisplayServer::WindowID p_window_id, int p_width, int p_height);
 
 	GLManagerANGLE_Windows(){};
 	~GLManagerANGLE_Windows(){};