From f65cda93e99db45a2f0f3a32f32f454f4073905d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Mon, 21 Nov 2011 12:18:15 +0100 Subject: Added command line argument to make hellowindow example single window. Useful when testing on embedded platforms with no support for multiple top-level windows. Change-Id: I212ca69c3f5d5d338e860169b14e3f9f3951712b Reviewed-by: Andy Nichols --- examples/opengl/hellowindow/main.cpp | 44 ++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/examples/opengl/hellowindow/main.cpp b/examples/opengl/hellowindow/main.cpp index 755601144b..7d454f65a6 100644 --- a/examples/opengl/hellowindow/main.cpp +++ b/examples/opengl/hellowindow/main.cpp @@ -48,6 +48,8 @@ int main(int argc, char **argv) { QGuiApplication app(argc, argv); + bool multipleWindows = !QGuiApplication::arguments().contains(QLatin1String("--single")); + QScreen *screen = QGuiApplication::primaryScreen(); QRect screenGeometry = screen->availableGeometry(); @@ -60,31 +62,35 @@ int main(int argc, char **argv) QSize windowSize(400, 320); int delta = 40; - Renderer rendererA(format); - Renderer rendererB(format, &rendererA); + Renderer *rendererA = new Renderer(format); + HelloWindow *windowA = new HelloWindow(rendererA); + windowA->setGeometry(QRect(center, windowSize).translated(-windowSize.width() - delta / 2, 0)); + windowA->setWindowTitle(QLatin1String("Thread A - Context A")); + windowA->setVisible(true); - QThread renderThread; - rendererB.moveToThread(&renderThread); - renderThread.start(); + QThread *renderThread = 0; + if (multipleWindows) { + Renderer *rendererB = new Renderer(format, rendererA); - QObject::connect(qGuiApp, SIGNAL(lastWindowClosed()), &renderThread, SLOT(quit())); + renderThread = new QThread; + rendererB->moveToThread(renderThread); + renderThread->start(); - HelloWindow windowA(&rendererA); - windowA.setGeometry(QRect(center, windowSize).translated(-windowSize.width() - delta / 2, 0)); - windowA.setWindowTitle(QLatin1String("Thread A - Context A")); - windowA.setVisible(true); + QObject::connect(qGuiApp, SIGNAL(lastWindowClosed()), renderThread, SLOT(quit())); - HelloWindow windowB(&rendererA); - windowB.setGeometry(QRect(center, windowSize).translated(delta / 2, 0)); - windowB.setWindowTitle(QLatin1String("Thread A - Context A")); - windowB.setVisible(true); + HelloWindow *windowB = new HelloWindow(rendererA); + windowB->setGeometry(QRect(center, windowSize).translated(delta / 2, 0)); + windowB->setWindowTitle(QLatin1String("Thread A - Context A")); + windowB->setVisible(true); - HelloWindow windowC(&rendererB); - windowC.setGeometry(QRect(center, windowSize).translated(-windowSize.width() / 2, windowSize.height() + delta)); - windowC.setWindowTitle(QLatin1String("Thread B - Context B")); - windowC.setVisible(true); + HelloWindow *windowC = new HelloWindow(rendererB); + windowC->setGeometry(QRect(center, windowSize).translated(-windowSize.width() / 2, windowSize.height() + delta)); + windowC->setWindowTitle(QLatin1String("Thread B - Context B")); + windowC->setVisible(true); + } app.exec(); - renderThread.wait(); + if (multipleWindows) + renderThread->wait(); } -- cgit v1.2.3