diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-09-27 00:19:05 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-09-27 00:19:05 (GMT) |
commit | 9ba2d4f4bfe67b91384c8ab8ec2ad46e7f56d7ab (patch) | |
tree | 62aebf4596ab62b9462ef895938db7baf8e3b875 | |
parent | 25f856c5719ea903db7d636a54b2145875c1f1ed (diff) | |
parent | 2aad0733cfa95b3334543610355430e8300ddcb8 (diff) | |
download | Qt-9ba2d4f4bfe67b91384c8ab8ec2ad46e7f56d7ab.zip Qt-9ba2d4f4bfe67b91384c8ab8ec2ad46e7f56d7ab.tar.gz Qt-9ba2d4f4bfe67b91384c8ab8ec2ad46e7f56d7ab.tar.bz2 |
Merge branch 'staging' into 4.7-integration
* staging:
Don't pretend to support single buffered EGL surfaces.
Named anonymous struct in the OpenGL paint engine.
Fixes gray_raster incorrectly reporting out of memory error.
-rw-r--r-- | src/gui/painting/qgrayraster.c | 4 | ||||
-rw-r--r-- | src/opengl/qgl.cpp | 3 | ||||
-rw-r--r-- | src/opengl/qgl_egl.cpp | 1 | ||||
-rw-r--r-- | src/opengl/qpaintengine_opengl.cpp | 4 |
4 files changed, 9 insertions, 3 deletions
diff --git a/src/gui/painting/qgrayraster.c b/src/gui/painting/qgrayraster.c index 94039fb..19cef49 100644 --- a/src/gui/painting/qgrayraster.c +++ b/src/gui/painting/qgrayraster.c @@ -324,6 +324,7 @@ { void* buffer; long buffer_size; + long buffer_allocated_size; int band_size; void* memory; PWorker worker; @@ -1767,7 +1768,7 @@ // If raster object and raster buffer are allocated, but // raster size isn't of the minimum size, indicate out of // memory. - if (raster && raster->buffer && raster->buffer_size < MINIMUM_POOL_SIZE ) + if (raster->buffer_allocated_size < MINIMUM_POOL_SIZE ) return ErrRaster_OutOfMemory; /* return immediately if the outline is empty */ @@ -1906,6 +1907,7 @@ rast->buffer_size = 0; rast->worker = NULL; } + rast->buffer_allocated_size = pool_size; } } diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 0d1a66e..b678790 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -509,6 +509,9 @@ QGLFormat::~QGLFormat() exchange the screen contents with the buffer. The result is flicker-free drawing and often better performance. + Note that single buffered contexts are currently not supported + with EGL. + \sa doubleBuffer(), QGLContext::swapBuffers(), QGLWidget::swapBuffers() */ diff --git a/src/opengl/qgl_egl.cpp b/src/opengl/qgl_egl.cpp index ebd1169..c79c4cd 100644 --- a/src/opengl/qgl_egl.cpp +++ b/src/opengl/qgl_egl.cpp @@ -143,6 +143,7 @@ void qt_glformat_from_eglconfig(QGLFormat& format, const EGLConfig config) format.setRgba(true); // EGL doesn't support colour index rendering format.setStereo(false); // EGL doesn't support stereo buffers format.setAccumBufferSize(0); // EGL doesn't support accululation buffers + format.setDoubleBuffer(true); // We don't support single buffered EGL contexts // Clear the EGL error state because some of the above may // have errored out because the attribute is not applicable diff --git a/src/opengl/qpaintengine_opengl.cpp b/src/opengl/qpaintengine_opengl.cpp index 58778ea..2f17aa6 100644 --- a/src/opengl/qpaintengine_opengl.cpp +++ b/src/opengl/qpaintengine_opengl.cpp @@ -506,12 +506,12 @@ struct QDrawQueueItem ////////// GL program cache: start -typedef struct { +struct GLProgram { int brush; // brush index or mask index int mode; // composition mode index bool mask; GLuint program; -} GLProgram; +}; typedef QMultiHash<const QGLContext *, GLProgram> QGLProgramHash; |