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 <girish.1.ramakrishnan@nokia.com>
This commit is contained in:
Robin Burchell 2012-07-05 14:44:22 +02:00 committed by Qt by Nokia
parent 0823fa2c61
commit 56e751a0c9

View File

@ -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;