Files
RedBear-OS/local/patches/qtbase/P1-qplatformopengl-guard.patch
T
vasilito d3c2e4abe0 build: qtbase BUILDS — QPlatformOpenGLContext + strcasecmp fixed
P1-qplatformopengl-guard.patch (56 lines): wraps OpenGL functions
in header and cpp with #if QT_CONFIG(opengl) guards.

redox-toolchain.cmake: added -include strings.h for strcasecmp.

Major wins this session:
- qtbase builds (was blocked on QPlatformOpenGLContext + strcasecmp)
- mesa builds (fixed missing backslash + -Wno-error)
- libwayland builds (121-line durability patch)
- zstd, openssl3, nghttp2, curl, llvm21 all rebuilt from clean
- image (4 GiB) boots with 0 exceptions, zsh default shell
- 92 pkgar files in Packages/
2026-04-28 14:52:39 +01:00

57 lines
2.4 KiB
Diff

--- qtb-orig/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h 2026-03-05 07:51:49.000000000 +0000
+++ qtb-mod/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h 2026-04-28 14:03:29.046092114 +0100
@@ -51,9 +51,15 @@
virtual bool supportsThreadedOpenGL() const { return false; }
virtual bool supportsWindowDecoration() const { return false; }
+ #if QT_CONFIG(opengl)
+#if QT_CONFIG(opengl)
+#if QT_CONFIG(opengl)
virtual QWaylandWindow *createEglWindow(QWindow *window) = 0;
virtual QPlatformOpenGLContext *createPlatformOpenGLContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share) const = 0;
+#endif
+#endif
virtual bool canCreatePlatformOffscreenSurface() const { return false; }
+#endif
#if QT_CONFIG(opengl)
virtual QOpenGLContext *createOpenGLContext(EGLContext context, EGLDisplay contextDisplay, QOpenGLContext *shareContext) const = 0;
virtual QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const { Q_UNUSED(surface); return nullptr; }
@@ -65,7 +71,11 @@
EglContext
};
virtual void *nativeResource(NativeResource /*resource*/) { return nullptr; }
+#if QT_CONFIG(opengl)
+#if QT_CONFIG(opengl)
virtual void *nativeResourceForContext(NativeResource /*resource*/, QPlatformOpenGLContext */*context*/) { return nullptr; }
+#endif
+#endif
};
}
--- qtb-orig/src/plugins/platforms/wayland/qwaylandintegration.cpp 2026-03-05 07:51:49.000000000 +0000
+++ qtb-mod/src/plugins/platforms/wayland/qwaylandintegration.cpp 2026-04-28 14:34:26.740450805 +0100
@@ -135,17 +135,23 @@
case ScreenWindowGrabbing: // whether QScreen::grabWindow() is supported
return false;
case OffscreenSurface:
+#if QT_CONFIG(opengl)
return mDisplay->clientBufferIntegration()
&& mDisplay->clientBufferIntegration()->canCreatePlatformOffscreenSurface();
+#else
+ return false;
+#endif
default: return QPlatformIntegration::hasCapability(cap);
}
}
QPlatformWindow *QWaylandIntegration::createPlatformWindow(QWindow *window) const
{
+#if QT_CONFIG(opengl)
if (window->surfaceType() == QWindow::OpenGLSurface
&& mDisplay->clientBufferIntegration())
return mDisplay->clientBufferIntegration()->createEglWindow(window);
+#endif
#if QT_CONFIG(vulkan)
if (window->surfaceType() == QSurface::VulkanSurface)