d3c2e4abe0
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/
57 lines
2.4 KiB
Diff
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)
|