--- 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)