summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/engine.cpp14
-rw-r--r--src/engine.h2
-rw-r--r--src/main.cpp9
3 files changed, 16 insertions, 9 deletions
diff --git a/src/engine.cpp b/src/engine.cpp
index b30e75a..c29a61c 100644
--- a/src/engine.cpp
+++ b/src/engine.cpp
@@ -56,7 +56,7 @@ Engine::Engine(QQuickItem *parent)
, m_intro_done(false)
, m_apps_ready(false)
, m_fps_enabled(false)
- , m_glAvailable(true)
+ , m_glAvailable(checkForGlAvailability())
{
m_state = ENGINE_STATE_RUNNING;
@@ -74,13 +74,13 @@ Engine::Engine(QQuickItem *parent)
m_screenHeight = m_screenSize.height();
connect(this, SIGNAL(windowChanged(QQuickWindow*)), this, SLOT(windowChanged(QQuickWindow*)));
+}
- //Check for software renderer
- QString renderer = qgetenv("QMLSCENE_DEVICE");
- if (renderer.toLower() == "softwarecontext") {
- m_glAvailable = false;
- emit glAvailableChanged(false);
- }
+bool Engine::checkForGlAvailability()
+{
+ QQuickWindow window;
+ return ((window.sceneGraphBackend() != "software") &&
+ (window.sceneGraphBackend() != "softwarecontext"));
}
void Engine::updateReadyness()
diff --git a/src/engine.h b/src/engine.h
index 608f34f..c65f431 100644
--- a/src/engine.h
+++ b/src/engine.h
@@ -75,6 +75,8 @@ public:
QString applicationName() const { return m_applicationName; }
QString applicationDescription() const { return m_applicationDescription; }
+ static bool checkForGlAvailability();
+
Q_INVOKABLE QUrl fromUserInput(const QString& userInput) { return QUrl::fromUserInput(userInput); }
Q_INVOKABLE int sensibleButtonSize() const;
Q_INVOKABLE int titleBarSize() const;
diff --git a/src/main.cpp b/src/main.cpp
index 2500a4a..54d406e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -129,10 +129,15 @@ int main(int argc, char **argv)
QtSquareImageProvider squareImageProvider;
QtImageMaskProvider imageMaskProvider;
+ // Material style can be set only for devices supporting GL
QSettings styleSettings;
QString style = styleSettings.value("style").toString();
- if (style.isEmpty() || style == "Default")
- styleSettings.setValue("style", "Material");
+ if (Engine::checkForGlAvailability()) {
+ if (style.isEmpty() || style == "Default")
+ styleSettings.setValue("style", "Material");
+ } else {
+ qDebug()<<"No GL available, skipping Material style";
+ }
QQuickStyle::setStyle(styleSettings.value("style").toString());
QSettings launcherSettings("QtLauncher", "colorSettings");