[qt5-base] Fix Failed to create OpenGL context for format QSurfaceFormat (#28430)

* [qt5-base] Fix Failed to create OpenGL context for format QSurfaceFormat #28428

* update version database

* Fix build

* update version database

* Remove useless defines

* update version database
This commit is contained in:
xiaozhuai, Weihang Ding 2022-12-29 05:43:43 +08:00 committed by GitHub
parent 67b8c01d07
commit d1fcc4f17d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 43 additions and 2 deletions

View File

@ -0,0 +1,35 @@
diff --git a/src/plugins/platforms/windows/qwindowseglcontext.cpp b/src/plugins/platforms/windows/qwindowseglcontext.cpp
index 4ae087dfa..3a07d511e 100644
--- a/src/plugins/platforms/windows/qwindowseglcontext.cpp
+++ b/src/plugins/platforms/windows/qwindowseglcontext.cpp
@@ -46,6 +46,21 @@
#if defined(QT_OPENGL_ES_2_ANGLE) || defined(QT_OPENGL_DYNAMIC)
# include <EGL/eglext.h>
+
+#ifndef EGL_ANGLE_platform_angle
+#define EGL_ANGLE_platform_angle 1
+#define EGL_PLATFORM_ANGLE_ANGLE 0x3202
+#define EGL_PLATFORM_ANGLE_TYPE_ANGLE 0x3203
+#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE 0x3209
+#endif /* EGL_ANGLE_platform_angle */
+
+#ifndef EGL_ANGLE_platform_angle_d3d
+#define EGL_ANGLE_platform_angle_d3d 1
+#define EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE 0x3207
+#define EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE 0x3208
+#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE 0x320B
+#endif /* EGL_ANGLE_platform_angle_d3d */
+
#endif
QT_BEGIN_NAMESPACE
@@ -210,7 +225,7 @@ bool QWindowsEGLStaticContext::initializeAngle(QWindowsOpenGLTester::Renderers p
{ EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, EGL_NONE },
{ EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE, EGL_NONE },
{ EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
- EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE, EGL_NONE }
+ EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE, EGL_NONE }
};
const EGLint *attributes = nullptr;
if (preferredType & QWindowsOpenGLTester::AngleRendererD3d11)

View File

@ -67,6 +67,7 @@ qt_download_submodule( OUT_SOURCE_PATH SOURCE_PATH
patches/Qt5PluginTarget.patch
patches/create_cmake.patch
patches/Qt5GuiConfigExtras.patch # Patches the library search behavior for EGL since angle is not build with Qt
patches/fix_angle.patch # Failed to create OpenGL context for format QSurfaceFormat ...
)
# Remove vendored dependencies to ensure they are not picked up by the build

View File

@ -1,7 +1,7 @@
{
"name": "qt5-base",
"version": "5.15.7",
"port-version": 3,
"port-version": 4,
"description": "Qt5 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.",
"homepage": "https://www.qt.io/",
"license": null,

View File

@ -6130,7 +6130,7 @@
},
"qt5-base": {
"baseline": "5.15.7",
"port-version": 3
"port-version": 4
},
"qt5-canvas3d": {
"baseline": "0",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "c8d7ff2134c21300e90082d9eb7dbf5c70689856",
"version": "5.15.7",
"port-version": 4
},
{
"git-tree": "81ce731dc0595354a8eb77ea9557f4b7a6ca44d3",
"version": "5.15.7",