Kuesa ToneMapping QML Example
 
 #include <qtkuesa-config.h>
 #include <QGuiApplication>
 #include <QQuickView>
 #include <QQmlEngine>
 #include <QQmlContext>
 #include <QCommandLineParser>
 #include <QCommandLineOption>
 #include <QStandardPaths>
 #include <QQuickStyle>
 #include <Kuesa/kuesa_global.h>
 #ifdef Q_OS_ANDROID
 #include <QOpenGLContext>
 #endif
 int main(int ac, char **av)
 {
     
     Kuesa::setupDefaultSurfaceFormat();
     bool isES2 = false;
 #if defined(KUESA_OPENGL_ES_2) && !defined (KUESA_OPENGL_ES_3)
     isES2 = true;
 #endif
     QQuickStyle::setStyle("Material");
 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
     QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
 #endif
     QGuiApplication app(ac, av);
     QCommandLineParser parser;
     parser.setApplicationDescription("KDAB Kuesa Demo");
     parser.addHelpOption();
     parser.addVersionOption();
     QCommandLineOption cursorDisableOption(QStringList() << "no-cursor"
                                                          << "cursor visibility",
                                            "Make sure no pointer is hidden.");
     parser.addOption(cursorDisableOption);
     QCommandLineOption fullscreenOption(QStringList() << "fullscreen"
                                                       << "Fullscreen option",
                                         "Open the demo in fullscreen");
     parser.addOption(fullscreenOption);
     QCommandLineOption heightScaleOption(QStringList() << "screenHeightScale"
                                                        << "Height Scale UI",
                                          "Scale UI based on screen height rather than DPI (default on iOS and Android)");
     parser.addOption(heightScaleOption);
     parser.process(app);
     if (parser.isSet(cursorDisableOption))
         app.setOverrideCursor(QCursor(Qt::BlankCursor));
     QQuickView view;
 #ifdef Q_OS_ANDROID
     
     
     QOpenGLContext ctx;
     ctx.setFormat(QSurfaceFormat::defaultFormat());
     if (ctx.create()) {
         const QSurfaceFormat androidFormat = ctx.format();
         isES2 = (androidFormat.majorVersion() == 2);
     }
 #endif
     const QString modelSuffix = {};
 #if defined(Q_OS_IOS) || defined(Q_OS_ANDROID)
     bool screenHeightScale = true;
 #else
     bool screenHeightScale = parser.isSet(heightScaleOption);
 #endif
 #ifdef KUESA_BUILD_ROOT
     view.engine()->addImportPath(QStringLiteral(KUESA_BUILD_ROOT "/qml"));
 #endif
     view.engine()->rootContext()->setContextProperty(QStringLiteral("_isES2"), isES2);
     view.engine()->rootContext()->setContextProperty(QStringLiteral("_view"), &view);
     view.engine()->rootContext()->setContextProperty(QStringLiteral("_screenHeightScale"), screenHeightScale);
     view.engine()->rootContext()->setContextProperty(QStringLiteral("_isFullScreen"), parser.isSet(fullscreenOption));
     view.engine()->rootContext()->setContextProperty(QStringLiteral("_modelSuffix"), modelSuffix);
 #ifdef Q_OS_IOS
     view.setFlags(view.flags() | Qt::MaximizeUsingFullscreenGeometryHint);
 #endif
     view.setResizeMode(QQuickView::SizeRootObjectToView);
     view.setSource(QUrl(QStringLiteral("qrc:/main.qml")));
     view.resize(1920, 1080);
     if (parser.isSet(fullscreenOption)) {
         view.showFullScreen();
     } else {
         view.show();
     }
     return app.exec();
 }