QNX: Implementing QPlatformScreen::refreshRate() for QNX QPA
authorSean Harmer <sean.harmer.qnx@kdab.com>
Mon, 21 May 2012 12:45:39 +0000 (13:45 +0100)
committerQt by Nokia <qt-info@nokia.com>
Wed, 23 May 2012 08:52:11 +0000 (10:52 +0200)
Change-Id: I777ebd2c1ca51d244de714eb5b235d931df044d6
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
src/plugins/platforms/qnx/qqnxscreen.cpp
src/plugins/platforms/qnx/qqnxscreen.h

index e788ce9..f33de5b 100644 (file)
@@ -140,6 +140,24 @@ int QQnxScreen::depth() const
     return defaultDepth();
 }
 
+qreal QQnxScreen::refreshRate() const
+{
+    screen_display_mode_t displayMode;
+    int result = screen_get_display_property_pv(m_display, SCREEN_PROPERTY_MODE, reinterpret_cast<void **>(&displayMode));
+    if (result != 0) {
+        qWarning("QQnxScreen: Failed to query screen mode. Using default value of 60Hz");
+        return 60.0;
+    }
+#if defined(QQNXSCREEN_DEBUG)
+    qDebug() << Q_FUNC_INFO << "screen mode:" << endl
+             << "      width =" << displayMode.width << endl
+             << "     height =" << displayMode.height << endl
+             << "    refresh =" << displayMode.refresh << endl
+             << " interlaced =" << displayMode.interlaced;
+#endif
+    return static_cast<qreal>(displayMode.refresh);
+}
+
 Qt::ScreenOrientation QQnxScreen::orientation() const
 {
     Qt::ScreenOrientation orient;
index e7866b5..e34723c 100644 (file)
@@ -68,6 +68,8 @@ public:
     QImage::Format format() const { return (depth() == 32) ? QImage::Format_RGB32 : QImage::Format_RGB16; }
     QSizeF physicalSize() const { return m_currentPhysicalSize; }
 
+    qreal refreshRate() const;
+
     Qt::ScreenOrientation orientation() const;
 
     bool isPrimaryScreen() const { return m_primaryScreen; }