summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/eglconvenience
diff options
context:
space:
mode:
Diffstat (limited to 'src/platformsupport/eglconvenience')
-rw-r--r--src/platformsupport/eglconvenience/qeglconvenience.cpp6
-rw-r--r--src/platformsupport/eglconvenience/qeglconvenience_p.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/platformsupport/eglconvenience/qeglconvenience.cpp b/src/platformsupport/eglconvenience/qeglconvenience.cpp
index f8ccff9b56..f51e471560 100644
--- a/src/platformsupport/eglconvenience/qeglconvenience.cpp
+++ b/src/platformsupport/eglconvenience/qeglconvenience.cpp
@@ -435,7 +435,7 @@ void q_printEglConfig(EGLDisplay display, EGLConfig config)
#if (defined(Q_OS_UNIX) && !defined(Q_OS_QNX))
-QSizeF q_physicalScreenSizeFromFb(int framebufferDevice)
+QSizeF q_physicalScreenSizeFromFb(int framebufferDevice, const QSize &screenSize)
{
const int defaultPhysicalDpi = 100;
static QSizeF size;
@@ -465,7 +465,9 @@ QSizeF q_physicalScreenSizeFromFb(int framebufferDevice)
screenResolution = QSize(vinfo.xres, vinfo.yres);
}
} else {
- screenResolution = q_screenSizeFromFb(framebufferDevice);
+ // Use the provided screen size, when available, since some platforms may have their own
+ // specific way to query it. Otherwise try querying it from the framebuffer.
+ screenResolution = screenSize.isEmpty() ? q_screenSizeFromFb(framebufferDevice) : screenSize;
}
size.setWidth(w <= 0 ? screenResolution.width() * Q_MM_PER_INCH / defaultPhysicalDpi : qreal(w));
diff --git a/src/platformsupport/eglconvenience/qeglconvenience_p.h b/src/platformsupport/eglconvenience/qeglconvenience_p.h
index d4ac669906..8616275e53 100644
--- a/src/platformsupport/eglconvenience/qeglconvenience_p.h
+++ b/src/platformsupport/eglconvenience/qeglconvenience_p.h
@@ -57,7 +57,7 @@ bool q_hasEglExtension(EGLDisplay display,const char* extensionName);
void q_printEglConfig(EGLDisplay display, EGLConfig config);
#ifdef Q_OS_UNIX
-QSizeF q_physicalScreenSizeFromFb(int framebufferDevice);
+QSizeF q_physicalScreenSizeFromFb(int framebufferDevice, const QSize &screenSize = QSize());
QSize q_screenSizeFromFb(int framebufferDevice);
int q_screenDepthFromFb(int framebufferDevice);
#endif