Add command-line option to enable multisampling
authorGunnar Sletta <gunnar.sletta@digia.com>
Mon, 10 Dec 2012 10:46:56 +0000 (11:46 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 11 Dec 2012 11:19:53 +0000 (12:19 +0100)
Change-Id: I9ec8961342c23ea2c116c970e84aa412365412a9
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>

tools/qmlscene/main.cpp

index 87a577b..a90870a 100644 (file)
@@ -152,6 +152,7 @@ struct Options
         , slowAnimations(false)
         , quitImmediately(false)
         , resizeViewToRootItem(false)
+        , multisample(false)
     {
     }
 
@@ -167,6 +168,7 @@ struct Options
     bool slowAnimations;
     bool quitImmediately;
     bool resizeViewToRootItem;
+    bool multisample;
     QString translationFile;
 };
 
@@ -349,7 +351,7 @@ static void usage()
     qWarning("  --maximized ............................... run maximized");
     qWarning("  --fullscreen .............................. run fullscreen");
     qWarning("  --transparent ............................. Make the window transparent");
-    qWarning("  --no-multisample .......................... Disable multisampling (anti-aliasing)");
+    qWarning("  --multisample ............................. Enable multisampling (OpenGL anti-aliasing)");
     qWarning("  --no-version-detection .................... Do not try to detect the version of the .qml file");
     qWarning("  --slow-animations ......................... Run all animations in slow motion");
     qWarning("  --resize-to-root .......................... Resize the window to the size of the root item");
@@ -391,6 +393,8 @@ int main(int argc, char ** argv)
                 options.translationFile = QLatin1String(argv[++i]);
             else if (lowerArgument == QLatin1String("--resize-to-root"))
                 options.resizeViewToRootItem = true;
+            else if (lowerArgument == QLatin1String("--multisample"))
+                options.multisample = true;
             else if (lowerArgument == QLatin1String("-i") && i + 1 < argc)
                 imports.append(QString::fromLatin1(argv[++i]));
             else if (lowerArgument == QLatin1String("-b") && i + 2 < argc) {
@@ -497,14 +501,16 @@ int main(int argc, char ** argv)
             }
 
             if (window) {
+                QSurfaceFormat surfaceFormat;
+                if (options.multisample)
+                    surfaceFormat.setSamples(16);
                 if (options.transparent) {
-                    QSurfaceFormat surfaceFormat;
                     surfaceFormat.setAlphaBufferSize(8);
-                    window->setFormat(surfaceFormat);
                     window->setClearBeforeRendering(true);
                     window->setColor(QColor(Qt::transparent));
                     window->setFlags(Qt::FramelessWindowHint);
                 }
+                window->setFormat(surfaceFormat);
 
                 if (options.fullscreen)
                     window->showFullScreen();