From 56e751a0c9892c1a334a10746e67958209be5b51 Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Thu, 5 Jul 2012 14:44:22 +0200 Subject: [PATCH] eglfs: Allow setting screen size through environment variables. This adds: - QT_QPA_EGLFS_WIDTH - QT_QPA_EGLFS_HEIGHT If both are set, fb0 detection is completely bypassed, otherwise, the environment variables act as an override for the fb0 values. Change-Id: Iaf38c8b0d40ce0a921bb6c5dbf31af788802d3fa Reviewed-by: Girish Ramakrishnan --- src/plugins/platforms/eglfs/qeglfshooks_stub.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp index 25bf1fd..3c944e6 100644 --- a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp +++ b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp @@ -66,6 +66,16 @@ QSize QEglFSHooks::screenSize() const static QSize size; if (size.isEmpty()) { + int width = qgetenv("QT_QPA_EGLFS_WIDTH").toInt(); + int height = qgetenv("QT_QPA_EGLFS_HEIGHT").toInt(); + + if (width && height) { + // no need to read fb0 + size.setWidth(width); + size.setHeight(height); + return size; + } + struct fb_var_screeninfo vinfo; int fd = open("/dev/fb0", O_RDONLY); @@ -79,6 +89,12 @@ QSize QEglFSHooks::screenSize() const } else { qWarning("Failed to open /dev/fb0 to detect screen resolution."); } + + // override fb0 from environment var setting + if (width) + size.setWidth(width); + if (height) + size.setHeight(height); } return size; -- 2.7.4