From 024be9dcae26a0d88ffb76f9fca252f2135ad7c9 Mon Sep 17 00:00:00 2001 From: Kari Oikarinen Date: Mon, 7 Jan 2019 09:30:11 +0200 Subject: Bump version Change-Id: I2bd09b3be5456ce3936644ec6079fda57483c1ee --- .qmake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.qmake.conf b/.qmake.conf index 097d8b948..1c14aab6d 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,3 +1,3 @@ load(qt_build_config) -MODULE_VERSION = 5.12.0 +MODULE_VERSION = 5.12.1 -- cgit v1.2.3 From 1e29215b2e40a38b9324a719888749e12a74e99c Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Tue, 8 Jan 2019 14:01:52 +0100 Subject: C++ examples: Delay compositor initialization until GL is ready When running with xcb_egl, the platform plugin's native interface is not always ready immediately after the QGuiApplication constructor is done. Calling QWaylandCompositor::create() at the time of initializeGL() makes sure that everything is ready. Change-Id: I9e5e434ff85b92a45caddfd393439a4ffe3bcdc6 Reviewed-by: Johan Helsing --- examples/wayland/minimal-cpp/compositor.cpp | 1 + examples/wayland/minimal-cpp/main.cpp | 1 - examples/wayland/minimal-cpp/window.cpp | 1 + examples/wayland/minimal-cpp/window.h | 4 ++++ examples/wayland/qwindow-compositor/main.cpp | 1 - examples/wayland/qwindow-compositor/window.cpp | 1 + 6 files changed, 7 insertions(+), 2 deletions(-) diff --git a/examples/wayland/minimal-cpp/compositor.cpp b/examples/wayland/minimal-cpp/compositor.cpp index 81b1be269..fa9ae2da9 100644 --- a/examples/wayland/minimal-cpp/compositor.cpp +++ b/examples/wayland/minimal-cpp/compositor.cpp @@ -88,6 +88,7 @@ Compositor::Compositor(Window *window) : m_window(window) { window->setCompositor(this); + connect(window, &Window::glReady, this, [this] { create(); }); } Compositor::~Compositor() diff --git a/examples/wayland/minimal-cpp/main.cpp b/examples/wayland/minimal-cpp/main.cpp index 0b0b4b9d8..226e8923c 100644 --- a/examples/wayland/minimal-cpp/main.cpp +++ b/examples/wayland/minimal-cpp/main.cpp @@ -59,7 +59,6 @@ int main(int argc, char *argv[]) Window window; window.resize(800,600); Compositor compositor(&window); - compositor.create(); window.show(); return app.exec(); diff --git a/examples/wayland/minimal-cpp/window.cpp b/examples/wayland/minimal-cpp/window.cpp index 673e15fd8..4dd7c1499 100644 --- a/examples/wayland/minimal-cpp/window.cpp +++ b/examples/wayland/minimal-cpp/window.cpp @@ -68,6 +68,7 @@ void Window::setCompositor(Compositor *comp) { void Window::initializeGL() { m_textureBlitter.create(); + emit glReady(); } void Window::paintGL() diff --git a/examples/wayland/minimal-cpp/window.h b/examples/wayland/minimal-cpp/window.h index 1a106da9c..7711e0bd6 100644 --- a/examples/wayland/minimal-cpp/window.h +++ b/examples/wayland/minimal-cpp/window.h @@ -60,10 +60,14 @@ class Compositor; class Window : public QOpenGLWindow { + Q_OBJECT public: Window(); void setCompositor(Compositor *comp); +signals: + void glReady(); + protected: void initializeGL() override; void paintGL() override; diff --git a/examples/wayland/qwindow-compositor/main.cpp b/examples/wayland/qwindow-compositor/main.cpp index f2b00e889..9d8c1f78f 100644 --- a/examples/wayland/qwindow-compositor/main.cpp +++ b/examples/wayland/qwindow-compositor/main.cpp @@ -59,7 +59,6 @@ int main(int argc, char *argv[]) Window window; Compositor compositor(&window); window.setCompositor(&compositor); - compositor.create(); window.resize(800,600); window.show(); diff --git a/examples/wayland/qwindow-compositor/window.cpp b/examples/wayland/qwindow-compositor/window.cpp index 80aeec4c3..c8e5604bd 100644 --- a/examples/wayland/qwindow-compositor/window.cpp +++ b/examples/wayland/qwindow-compositor/window.cpp @@ -78,6 +78,7 @@ void Window::initializeGL() m_backgroundTexture->setMinificationFilter(QOpenGLTexture::Nearest); m_backgroundImageSize = backgroundImage.size(); m_textureBlitter.create(); + m_compositor->create(); // the compositor's hardware integration may depend on GL } void Window::drawBackground() -- cgit v1.2.3