diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c | 5 | ||||
-rw-r--r-- | src/plugins/graphicssystems/meego/qmeegographicssystem.cpp | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c index 8a1fddf..f861838 100644 --- a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c +++ b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include <GLES/egltypes.h> +#include <GLES/eglplatform.h> #include <wsegl.h> #include <pvr2d.h> #include <string.h> @@ -202,7 +202,8 @@ static WSEGLError wseglDeleteDrawable(WSEGLDrawableHandle _drawable) PvrQwsDrawable *drawable = (PvrQwsDrawable *)_drawable; if (!drawable || drawable->type == PvrQwsScreen) return WSEGL_SUCCESS; - pvrQwsFreeBuffers(drawable); + if (pvrQwsDisplay.numFlipBuffers == 0) + pvrQwsFreeBuffers(drawable); if (pvrQwsReleaseWindow(drawable)) pvrQwsDestroyDrawable(drawable); return WSEGL_SUCCESS; diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp index 69a6922..fdb72de 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp @@ -217,7 +217,7 @@ QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData *origin) // and if the pixmap pointer matches our mapping... // create a shared image instead with the given handle. - if (origin->classId() == QPixmapData::RasterClass) { + if (!origin->isNull() && origin->classId() == QPixmapData::RasterClass) { QRasterPixmapData *rasterClass = static_cast <QRasterPixmapData *> (origin); void *rawResource = static_cast <void *> (rasterClass->buffer()->data_ptr()->data); |