summaryrefslogtreecommitdiffstats
path: root/src/opengl/qgl_egl.cpp
diff options
context:
space:
mode:
authorTom Cooksey <thomas.cooksey@nokia.com>2010-03-05 16:29:53 (GMT)
committerTom Cooksey <thomas.cooksey@nokia.com>2010-03-05 16:31:28 (GMT)
commit7d587efef35b3adbb3433a4baec1c5ee7105cf0b (patch)
tree9a91ea4dd498684fb5236512f427d2dc2ea03b47 /src/opengl/qgl_egl.cpp
parentee07fff45d49e69d9a4f4474861a219af8d557f2 (diff)
downloadQt-7d587efef35b3adbb3433a4baec1c5ee7105cf0b.zip
Qt-7d587efef35b3adbb3433a4baec1c5ee7105cf0b.tar.gz
Qt-7d587efef35b3adbb3433a4baec1c5ee7105cf0b.tar.bz2
Port QX11GLPixmapData & QX11GLWindowSurface to new QEgl API
It's still just as buggy, but at least it allows us to remove a lot of crud from qgl_x11egl.cpp. Reviewed-By: TrustMe
Diffstat (limited to 'src/opengl/qgl_egl.cpp')
-rw-r--r--src/opengl/qgl_egl.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/opengl/qgl_egl.cpp b/src/opengl/qgl_egl.cpp
index 7bfcf27..91b271b 100644
--- a/src/opengl/qgl_egl.cpp
+++ b/src/opengl/qgl_egl.cpp
@@ -210,23 +210,26 @@ void QGLContextPrivate::destroyEglSurfaceForDevice()
EGLSurface QGLContextPrivate::eglSurfaceForDevice() const
{
- if (paintDevice->devType() == QInternal::Widget)
+ // If a QPixmapData had to create the QGLContext, we don't have a paintDevice
+ if (!paintDevice)
return eglSurface;
- if (paintDevice->devType() == QInternal::Pixmap) {
+
#ifdef Q_WS_X11
+ if (paintDevice->devType() == QInternal::Pixmap) {
QPixmapData *pmd = static_cast<QPixmap*>(paintDevice)->data_ptr().data();
if (pmd->classId() == QPixmapData::X11Class) {
QX11PixmapData* x11PixmapData = static_cast<QX11PixmapData*>(pmd);
return (EGLSurface)x11PixmapData->gl_surface;
- } else
-#endif
- return eglSurface;
+ }
}
+#endif
+
if (paintDevice->devType() == QInternal::Pbuffer) {
QGLPixelBuffer* pbuf = static_cast<QGLPixelBuffer*>(paintDevice);
return pbuf->d_func()->pbuf;
}
- return EGL_NO_SURFACE;
+
+ return eglSurface;
}
void QGLWidget::setMouseTracking(bool enable)