diff options
author | Morten Johan Sørvig <morten.sorvig@qt.io> | 2019-04-29 01:19:14 +0200 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@qt.io> | 2019-05-14 11:00:19 +0000 |
commit | 77216c5c5295a38cc432135e31529335c18c5a4b (patch) | |
tree | 8473b4b0065cef3e55e8ca685aa82019c33ee0a3 /src/plugins/platforms/wasm/qwasmopenglcontext.h | |
parent | c8c4819b7b2f20c2972c31c49547ce5b59fe1240 (diff) |
wasm: rewrite/simplify OpenglContext
We don’t need the contextLost callback since we can
poll for the “lost” status in isValid()
Recreating the native context is not very helpful,
since it destroys all current context state. Remove
this logic.
Support makeCurrent() on different surfaces, as long
as they refer to the same screen. Create the native
context (and record which screen) on the first call
to makeCurrent()
Task-number: QTBUG-75463
Change-Id: I6eb830df14578ffdbed5b0505fe860ce433e4f9b
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmopenglcontext.h')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmopenglcontext.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/plugins/platforms/wasm/qwasmopenglcontext.h b/src/plugins/platforms/wasm/qwasmopenglcontext.h index 126b596a7e..d27007e8ea 100644 --- a/src/plugins/platforms/wasm/qwasmopenglcontext.h +++ b/src/plugins/platforms/wasm/qwasmopenglcontext.h @@ -34,6 +34,7 @@ QT_BEGIN_NAMESPACE +class QPlatformScreen; class QWasmOpenGLContext : public QPlatformOpenGLContext { public: @@ -50,12 +51,11 @@ public: QFunctionPointer getProcAddress(const char *procName) override; private: - void maybeRecreateEmscriptenContext(QPlatformSurface *surface); + bool maybeCreateEmscriptenContext(QPlatformSurface *surface); static EMSCRIPTEN_WEBGL_CONTEXT_HANDLE createEmscriptenContext(const QString &canvasId, QSurfaceFormat format); - bool m_contextLost = false; QSurfaceFormat m_requestedFormat; - QPlatformSurface *m_surface = nullptr; + QPlatformScreen *m_screen = nullptr; EMSCRIPTEN_WEBGL_CONTEXT_HANDLE m_context = 0; }; |