summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx
diff options
context:
space:
mode:
authorRafael Roquetto <rafael.roquetto.qnx@kdab.com>2012-11-29 16:42:11 -0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-12-01 08:28:25 +0100
commit1b95d3331cb43fda36f92189ddce4e4c45bd47ea (patch)
treeb5b2a7784d7770cad4a4a874b4ab005a3c7aaecc /src/plugins/platforms/qnx
parent3492a809599ff704476e029670fb685936fcddec (diff)
QNX: Move buffer count check to appropriate location
The buffer count check should take place right after buffers are created. For some reason, the buffer count value inside libscreen may become incosistent during the course of the program. Change-Id: Icbbaf4734eac5b0c5c95bdd93771899f9fcdb7db Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Diffstat (limited to 'src/plugins/platforms/qnx')
-rw-r--r--src/plugins/platforms/qnx/qqnxwindow.cpp27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/plugins/platforms/qnx/qqnxwindow.cpp b/src/plugins/platforms/qnx/qqnxwindow.cpp
index 166cb499b0..e4505c6c60 100644
--- a/src/plugins/platforms/qnx/qqnxwindow.cpp
+++ b/src/plugins/platforms/qnx/qqnxwindow.cpp
@@ -358,6 +358,19 @@ void QQnxWindow::setBufferSize(const QSize &size)
if (result != 0) {
qFatal("QQnxWindow: failed to create window buffers, errno=%d", errno);
}
+
+ // check if there are any buffers available
+ int bufferCount = 0;
+ result = screen_get_window_property_iv(m_window, SCREEN_PROPERTY_RENDER_BUFFER_COUNT, &bufferCount);
+
+ if (result != 0) {
+ qFatal("QQnxWindow: failed to query window buffer count, errno=%d", errno);
+ }
+
+ if (bufferCount != MAX_BUFFER_COUNT) {
+ qFatal("QQnxWindow: invalid buffer count. Expected = %d, got = %d. You might experience problems.",
+ MAX_BUFFER_COUNT, bufferCount);
+ }
}
// Cache new buffer size
@@ -378,22 +391,10 @@ QQnxBuffer &QQnxWindow::renderBuffer()
// Check if render buffer is invalid
if (m_currentBufferIndex == -1) {
- // check if there are any buffers available
- int bufferCount = 0;
- int result = screen_get_window_property_iv(m_window, SCREEN_PROPERTY_RENDER_BUFFER_COUNT, &bufferCount);
-
- if (result != 0) {
- qFatal("QQnxWindow: failed to query window buffer count, errno=%d", errno);
- }
-
- if (bufferCount != MAX_BUFFER_COUNT) {
- qFatal("QQnxWindow: invalid buffer count. Expected = %d, got = %d", MAX_BUFFER_COUNT, bufferCount);
- }
-
// Get all buffers available for rendering
errno = 0;
screen_buffer_t buffers[MAX_BUFFER_COUNT];
- result = screen_get_window_property_pv(m_window, SCREEN_PROPERTY_RENDER_BUFFERS, (void **)buffers);
+ const int result = screen_get_window_property_pv(m_window, SCREEN_PROPERTY_RENDER_BUFFERS, (void **)buffers);
if (result != 0) {
qFatal("QQnxWindow: failed to query window buffers, errno=%d", errno);
}