--- a/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h +++ b/src/plugins/platforms/wayland/hardwareintegration/qwaylandclientbufferintegration_p.h @@ -51,8 +51,10 @@ virtual bool supportsThreadedOpenGL() const { return false; } virtual bool supportsWindowDecoration() const { return false; } +#if QT_CONFIG(opengl) virtual QWaylandWindow *createEglWindow(QWindow *window) = 0; virtual QPlatformOpenGLContext *createPlatformOpenGLContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share) const = 0; +#endif virtual bool canCreatePlatformOffscreenSurface() const { return false; } #if QT_CONFIG(opengl) virtual QOpenGLContext *createOpenGLContext(EGLContext context, EGLDisplay contextDisplay, QOpenGLContext *shareContext) const = 0; @@ -67,5 +71,7 @@ virtual void *nativeResource(NativeResource /*resource*/) { return nullptr; } +#if QT_CONFIG(opengl) virtual void *nativeResourceForContext(NativeResource /*resource*/, QPlatformOpenGLContext */*context*/) { return nullptr; } +#endif }; } --- a/src/plugins/platforms/wayland/qwaylandintegration.cpp +++ b/src/plugins/platforms/wayland/qwaylandintegration.cpp @@ -137,7 +137,11 @@ return false; case OffscreenSurface: +#if QT_CONFIG(opengl) return mDisplay->clientBufferIntegration() && mDisplay->clientBufferIntegration()->canCreatePlatformOffscreenSurface(); +#else + return false; +#endif default: return QPlatformIntegration::hasCapability(cap); } } @@ -148,7 +152,9 @@ 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)