summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland/qwaylandwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandwindow.cpp')
-rw-r--r--src/plugins/platforms/wayland/qwaylandwindow.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/platforms/wayland/qwaylandwindow.cpp b/src/plugins/platforms/wayland/qwaylandwindow.cpp
index be527b08f4d..0be22ff80e7 100644
--- a/src/plugins/platforms/wayland/qwaylandwindow.cpp
+++ b/src/plugins/platforms/wayland/qwaylandwindow.cpp
@@ -62,6 +62,7 @@ QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display)
mFrameCallbackTimeout = frameCallbackTimeout;
}
+ mSurfaceFormat.setColorSpace(QColorSpace{});
initializeWlSurface();
mFlags = window->flags();
@@ -214,7 +215,7 @@ void QWaylandWindow::setPendingImageDescription()
mColorManagementSurface->setImageDescription(mPendingImageDescription.get());
}
-void QWaylandWindow::initializeWlSurface()
+void QWaylandWindow::initializeWlSurface(bool colorSpace)
{
Q_ASSERT(!mSurface);
{
@@ -242,6 +243,13 @@ void QWaylandWindow::initializeWlSurface()
mViewport.reset(new QWaylandViewport(display()->createViewport(this)));
}
+ if (colorSpace) {
+ initializeColorSpace();
+ }
+}
+
+void QWaylandWindow::initializeColorSpace()
+{
QColorSpace requestedColorSpace = window()->requestedFormat().colorSpace();
if (requestedColorSpace != QColorSpace{} && mDisplay->colorManager()) {
// TODO try a similar (same primaries + supported transfer function) color space if this fails?