path: root/src/plugins/platforms/wasm
diff options
authorLaszlo Agocs <>2019-08-06 13:15:35 +0200
committerLaszlo Agocs <>2019-08-07 11:46:19 +0000
commit53a6f7b7836ef5084106ed63f6745c20d663affa (patch)
tree42f1536681b2acedf12e68f33f3f6976cd77ca47 /src/plugins/platforms/wasm
parentfccb519809d8e64db0e9cc54852c8612fe59b6c7 (diff)
eglfs: Fix raster windows
Also sanitize the initial WebAssembly hack. Both eglfs and wasm lack the concept of true raster windows. A QWindow with RasterSurface is rendered with OpenGL no matter what. The two platforms took two different approaches to work around the rest of the machinery: - wasm disabled the QOpenGLContext warning for non-OpenGL QWindows, - eglfs forced the QWindow surfaceType to OpenGLSurface whenever it was originally set to RasterSurface. Now, the latter breaks since c4e9eabc309a275efc222f4127f31ba4677259b7, leaving all raster window applications failing on eglfs, because flush in the backingstore is now checking the surface type and disallows OpenGLSurface windows. (just like how QOpenGLContext disallows RasterSurface windows) To solve all this correctly, introduce a new platform capability, OpenGLOnRasterSurface, and remove the special handling in the platform plugins. Change-Id: I7785dfb1c955577bbdccdc14ebaaac5babdec57c Fixes: QTBUG-77100 Reviewed-by: Tor Arne Vestbø <>
Diffstat (limited to 'src/plugins/platforms/wasm')
1 files changed, 1 insertions, 0 deletions
diff --git a/src/plugins/platforms/wasm/qwasmintegration.cpp b/src/plugins/platforms/wasm/qwasmintegration.cpp
index 3829043d07..05d6ae21f5 100644
--- a/src/plugins/platforms/wasm/qwasmintegration.cpp
+++ b/src/plugins/platforms/wasm/qwasmintegration.cpp
@@ -113,6 +113,7 @@ bool QWasmIntegration::hasCapability(QPlatformIntegration::Capability cap) const
case RasterGLSurface: return false; // to enable this you need to fix qopenglwidget and quickwidget for wasm
case MultipleWindows: return true;
case WindowManagement: return true;
+ case OpenGLOnRasterSurface: return true;
default: return QPlatformIntegration::hasCapability(cap);