summaryrefslogtreecommitdiffstats
path: root/src/gui/egl
diff options
context:
space:
mode:
authorRobin Burchell <robin.burchell@collabora.com>2011-10-27 10:58:57 +0200
committerQt by Nokia <qt-info@nokia.com>2011-10-28 16:29:13 +0200
commita2337f79ffd229aa1e91f6bfec6294570eb3fe44 (patch)
tree48d68ba1c19bb629a096344453cf69cd692affba /src/gui/egl
parent1cae2fdb864f2b67333a7c80742b8e493865b3f9 (diff)
Remove Windows and X11 from src/widgets/platforms.
This is dead code, unused with QPA in place, so remove it to avoid confusion caused through grepping for class names existing in both old and new places. Mac code is left in place for now, as some of it is still in use. Change-Id: Ia82cd5bbabe71285ca997f79d8fd9c0504e32c28 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/gui/egl')
-rw-r--r--src/gui/egl/egl.pri8
-rw-r--r--src/gui/egl/qegl_symbian.cpp88
-rw-r--r--src/gui/egl/qegl_wince.cpp85
-rw-r--r--src/gui/egl/qegl_x11.cpp471
-rw-r--r--src/gui/egl/qeglproperties_p.h1
5 files changed, 1 insertions, 652 deletions
diff --git a/src/gui/egl/egl.pri b/src/gui/egl/egl.pri
index b13c43e371..59af997477 100644
--- a/src/gui/egl/egl.pri
+++ b/src/gui/egl/egl.pri
@@ -22,13 +22,7 @@ contains(QT_CONFIG, egl): {
!isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL
}
- wince*: SOURCES += egl/qegl_wince.cpp
-
- symbian {
- SOURCES += egl/qegl_symbian.cpp
- } else {
- SOURCES += egl/qegl_qpa.cpp
- }
+ SOURCES += egl/qegl_qpa.cpp
} else:symbian: {
DEFINES += QT_NO_EGL
SOURCES += egl/qegl_stub.cpp
diff --git a/src/gui/egl/qegl_symbian.cpp b/src/gui/egl/qegl_symbian.cpp
deleted file mode 100644
index f5ba4289f5..0000000000
--- a/src/gui/egl/qegl_symbian.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui/qpaintdevice.h>
-#include <QtGui/qpixmap.h>
-#include <QtGui/qwidget.h>
-#include <QtGui/private/qapplication_p.h>
-
-#include "qegl_p.h"
-#include "qeglcontext_p.h"
-
-#include <coecntrl.h>
-
-QT_BEGIN_NAMESPACE
-
-EGLNativeDisplayType QEgl::nativeDisplay()
-{
- return EGL_DEFAULT_DISPLAY;
-}
-
-EGLNativeWindowType QEgl::nativeWindow(QWidget* widget)
-{
- return (EGLNativeWindowType)(widget->winId()->DrawableWindow());
-}
-
-EGLNativePixmapType QEgl::nativePixmap(QPixmap*)
-{
- qWarning("QEgl: EGL pixmap surfaces not implemented yet on Symbian");
- return (EGLNativePixmapType)0;
-}
-
-// Set pixel format and other properties based on a paint device.
-void QEglProperties::setPaintDeviceFormat(QPaintDevice *dev)
-{
- if(!dev)
- return;
-
- int devType = dev->devType();
- if (devType == QInternal::Image) {
- setPixelFormat(static_cast<QImage *>(dev)->format());
- } else {
- QImage::Format format = QImage::Format_RGB32;
- if (QApplicationPrivate::instance() && QApplicationPrivate::instance()->useTranslucentEGLSurfaces)
- format = QImage::Format_ARGB32_Premultiplied;
- setPixelFormat(format);
- }
-}
-
-
-QT_END_NAMESPACE
diff --git a/src/gui/egl/qegl_wince.cpp b/src/gui/egl/qegl_wince.cpp
deleted file mode 100644
index 00d440b178..0000000000
--- a/src/gui/egl/qegl_wince.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui/qpaintdevice.h>
-#include <QtGui/qpixmap.h>
-#include <QtGui/qwidget.h>
-
-#include "qegl_p.h"
-#include "qeglcontext_p.h"
-
-#include <windows.h>
-
-
-QT_BEGIN_NAMESPACE
-
-EGLNativeDisplayType QEgl::nativeDisplay()
-{
- HDC myDc = GetDC(0);
- if (!myDc) {
- qWarning("QEglContext::nativeDisplay(): WinCE display is not open");
- return EGL_DEFAULT_DISPLAY;
- }
- return EGLNativeDisplayType(myDc);
-}
-
-EGLNativeWindowType QEgl::nativeWindow(QWidget* widget)
-{
- return (EGLNativeWindowType)(widget->winId());
-}
-
-EGLNativePixmapType QEgl::nativePixmap(QPixmap*)
-{
- qWarning("QEgl: EGL pixmap surfaces not supported on WinCE");
- return (EGLNativePixmapType)0;
-}
-
-// Set pixel format and other properties based on a paint device.
-void QEglProperties::setPaintDeviceFormat(QPaintDevice *dev)
-{
- int devType = dev->devType();
- if (devType == QInternal::Image)
- setPixelFormat(static_cast<QImage *>(dev)->format());
- else
- setPixelFormat(QImage::Format_RGB16); // XXX
-}
-
-QT_END_NAMESPACE
diff --git a/src/gui/egl/qegl_x11.cpp b/src/gui/egl/qegl_x11.cpp
deleted file mode 100644
index 4fd8a15157..0000000000
--- a/src/gui/egl/qegl_x11.cpp
+++ /dev/null
@@ -1,471 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtCore/qdebug.h>
-
-#include <QtGui/private/qt_x11_p.h>
-#include <QtGui/qx11info_x11.h>
-#include <QtGui/qplatformpixmap_qpa.h>
-#include <QtGui/private/qpixmap_x11_p.h>
-#include <QtGui/private/qimagepixmapcleanuphooks_p.h>
-
-#include <QtGui/qpaintdevice.h>
-#include <QtGui/qpixmap.h>
-#include <QtGui/qwidget.h>
-#include <QtGui/qcolormap.h>
-
-#include "QtGui/private/qegl_p.h"
-#include "QtGui/private/qeglcontext_p.h"
-
-QT_BEGIN_NAMESPACE
-
-
-EGLNativeDisplayType QEgl::nativeDisplay()
-{
- Display *xdpy = QX11Info::display();
- if (!xdpy) {
- qWarning("QEglContext::getDisplay(): X11 display is not open");
- return EGLNativeDisplayType(EGL_DEFAULT_DISPLAY);
- }
- return EGLNativeDisplayType(xdpy);
-}
-
-EGLNativeWindowType QEgl::nativeWindow(QWidget* widget)
-{
- return (EGLNativeWindowType)(widget->winId());
-}
-
-EGLNativePixmapType QEgl::nativePixmap(QPixmap* pixmap)
-{
- return (EGLNativePixmapType)(pixmap->handle());
-}
-
-static int countBits(unsigned long mask)
-{
- int count = 0;
- while (mask != 0) {
- if (mask & 1)
- ++count;
- mask >>= 1;
- }
- return count;
-}
-
-// Set the pixel format parameters from the visual in "xinfo".
-void QEglProperties::setVisualFormat(const QX11Info *xinfo)
-{
- if (!xinfo)
- return;
- Visual *visual = (Visual*)xinfo->visual();
- if (!visual)
- return;
- if (visual->c_class != TrueColor && visual->c_class != DirectColor)
- return;
- setValue(EGL_RED_SIZE, countBits(visual->red_mask));
- setValue(EGL_GREEN_SIZE, countBits(visual->green_mask));
- setValue(EGL_BLUE_SIZE, countBits(visual->blue_mask));
-
- EGLint alphaBits = 0;
-#if !defined(QT_NO_XRENDER)
- XRenderPictFormat *format;
- format = XRenderFindVisualFormat(xinfo->display(), visual);
- if (format && (format->type == PictTypeDirect) && format->direct.alphaMask) {
- alphaBits = countBits(format->direct.alphaMask);
- qDebug("QEglProperties::setVisualFormat() - visual's alphaMask is %d", alphaBits);
- }
-#endif
- setValue(EGL_ALPHA_SIZE, alphaBits);
-}
-
-extern const QX11Info *qt_x11Info(const QPaintDevice *pd);
-
-// Set pixel format and other properties based on a paint device.
-void QEglProperties::setPaintDeviceFormat(QPaintDevice *dev)
-{
- if (!dev)
- return;
- if (dev->devType() == QInternal::Image)
- setPixelFormat(static_cast<QImage *>(dev)->format());
- else
- setVisualFormat(qt_x11Info(dev));
-}
-
-//#define QT_DEBUG_X11_VISUAL_SELECTION 1
-
-VisualID QEgl::getCompatibleVisualId(EGLConfig config)
-{
- VisualID visualId = 0;
- EGLint eglValue = 0;
-
- EGLint configRedSize = 0;
- eglGetConfigAttrib(display(), config, EGL_RED_SIZE, &configRedSize);
-
- EGLint configGreenSize = 0;
- eglGetConfigAttrib(display(), config, EGL_GREEN_SIZE, &configGreenSize);
-
- EGLint configBlueSize = 0;
- eglGetConfigAttrib(display(), config, EGL_BLUE_SIZE, &configBlueSize);
-
- EGLint configAlphaSize = 0;
- eglGetConfigAttrib(display(), config, EGL_ALPHA_SIZE, &configAlphaSize);
-
- eglGetConfigAttrib(display(), config, EGL_CONFIG_ID, &eglValue);
- int configId = eglValue;
-
- // See if EGL provided a valid VisualID:
- eglGetConfigAttrib(display(), config, EGL_NATIVE_VISUAL_ID, &eglValue);
- visualId = (VisualID)eglValue;
- if (visualId) {
- // EGL has suggested a visual id, so get the rest of the visual info for that id:
- XVisualInfo visualInfoTemplate;
- memset(&visualInfoTemplate, 0, sizeof(XVisualInfo));
- visualInfoTemplate.visualid = visualId;
-
- XVisualInfo *chosenVisualInfo;
- int matchingCount = 0;
- chosenVisualInfo = XGetVisualInfo(X11->display, VisualIDMask, &visualInfoTemplate, &matchingCount);
- if (chosenVisualInfo) {
- // Skip size checks if implementation supports non-matching visual
- // and config (http://bugreports.qt.nokia.com/browse/QTBUG-9444).
- if (QEgl::hasExtension("EGL_NV_post_convert_rounding")) {
- XFree(chosenVisualInfo);
- return visualId;
- }
-
- int visualRedSize = countBits(chosenVisualInfo->red_mask);
- int visualGreenSize = countBits(chosenVisualInfo->green_mask);
- int visualBlueSize = countBits(chosenVisualInfo->blue_mask);
- int visualAlphaSize = -1; // Need XRender to tell us the alpha channel size
-
-#if !defined(QT_NO_XRENDER)
- if (X11->use_xrender) {
- // If we have XRender, actually check the visual supplied by EGL is ARGB
- XRenderPictFormat *format;
- format = XRenderFindVisualFormat(X11->display, chosenVisualInfo->visual);
- if (format && (format->type == PictTypeDirect))
- visualAlphaSize = countBits(format->direct.alphaMask);
- }
-#endif
-
- bool visualMatchesConfig = false;
- if ( visualRedSize == configRedSize &&
- visualGreenSize == configGreenSize &&
- visualBlueSize == configBlueSize )
- {
- // We need XRender to check the alpha channel size of the visual. If we don't have
- // the alpha size, we don't check it against the EGL config's alpha size.
- if (visualAlphaSize >= 0)
- visualMatchesConfig = visualAlphaSize == configAlphaSize;
- else
- visualMatchesConfig = true;
- }
-
- if (!visualMatchesConfig) {
- if (visualAlphaSize >= 0) {
- qWarning("Warning: EGL suggested using X Visual ID %d (ARGB%d%d%d%d) for EGL config %d (ARGB%d%d%d%d), but this is incompatable",
- (int)visualId, visualAlphaSize, visualRedSize, visualGreenSize, visualBlueSize,
- configId, configAlphaSize, configRedSize, configGreenSize, configBlueSize);
- } else {
- qWarning("Warning: EGL suggested using X Visual ID %d (RGB%d%d%d) for EGL config %d (RGB%d%d%d), but this is incompatable",
- (int)visualId, visualRedSize, visualGreenSize, visualBlueSize,
- configId, configRedSize, configGreenSize, configBlueSize);
- }
- visualId = 0;
- }
- } else {
- qWarning("Warning: EGL suggested using X Visual ID %d for EGL config %d, but that isn't a valid ID",
- (int)visualId, configId);
- visualId = 0;
- }
- XFree(chosenVisualInfo);
- }
-#ifdef QT_DEBUG_X11_VISUAL_SELECTION
- else
- qDebug("EGL did not suggest a VisualID (EGL_NATIVE_VISUAL_ID was zero) for EGLConfig %d", configId);
-#endif
-
- if (visualId) {
-#ifdef QT_DEBUG_X11_VISUAL_SELECTION
- if (configAlphaSize > 0)
- qDebug("Using ARGB Visual ID %d provided by EGL for config %d", (int)visualId, configId);
- else
- qDebug("Using Opaque Visual ID %d provided by EGL for config %d", (int)visualId, configId);
-#endif
- return visualId;
- }
-
-
- // If EGL didn't give us a valid visual ID, try XRender
-#if !defined(QT_NO_XRENDER)
- if (!visualId && X11->use_xrender) {
- XVisualInfo visualInfoTemplate;
- memset(&visualInfoTemplate, 0, sizeof(XVisualInfo));
-
- visualInfoTemplate.c_class = TrueColor;
-
- XVisualInfo *matchingVisuals;
- int matchingCount = 0;
- matchingVisuals = XGetVisualInfo(X11->display,
- VisualClassMask,
- &visualInfoTemplate,
- &matchingCount);
-
- for (int i = 0; i < matchingCount; ++i) {
- XRenderPictFormat *format;
- format = XRenderFindVisualFormat(X11->display, matchingVisuals[i].visual);
-
- // Check the format for the visual matches the EGL config
- if ( (countBits(format->direct.redMask) == configRedSize) &&
- (countBits(format->direct.greenMask) == configGreenSize) &&
- (countBits(format->direct.blueMask) == configBlueSize) &&
- (countBits(format->direct.alphaMask) == configAlphaSize) )
- {
- visualId = matchingVisuals[i].visualid;
- break;
- }
- }
- if (matchingVisuals)
- XFree(matchingVisuals);
-
- }
- if (visualId) {
-# ifdef QT_DEBUG_X11_VISUAL_SELECTION
- if (configAlphaSize > 0)
- qDebug("Using ARGB Visual ID %d provided by XRender for EGL config %d", (int)visualId, configId);
- else
- qDebug("Using Opaque Visual ID %d provided by XRender for EGL config %d", (int)visualId, configId);
-# endif // QT_DEBUG_X11_VISUAL_SELECTION
- return visualId;
- }
-# ifdef QT_DEBUG_X11_VISUAL_SELECTION
- else
- qDebug("Failed to find an XVisual which matches EGL config %d using XRender", configId);
-# endif // QT_DEBUG_X11_VISUAL_SELECTION
-
-#endif //!defined(QT_NO_XRENDER)
-
-
- // Finally, if XRender also failed to find a visual (or isn't present), try to
- // use XGetVisualInfo and only use the bit depths to match on:
- if (!visualId) {
- XVisualInfo visualInfoTemplate;
- memset(&visualInfoTemplate, 0, sizeof(XVisualInfo));
- XVisualInfo *matchingVisuals;
- int matchingCount = 0;
-
- visualInfoTemplate.depth = configRedSize + configGreenSize + configBlueSize + configAlphaSize;
- matchingVisuals = XGetVisualInfo(X11->display,
- VisualDepthMask,
- &visualInfoTemplate,
- &matchingCount);
- if (!matchingVisuals) {
- // Try again without taking the alpha channel into account:
- visualInfoTemplate.depth = configRedSize + configGreenSize + configBlueSize;
- matchingVisuals = XGetVisualInfo(X11->display,
- VisualDepthMask,
- &visualInfoTemplate,
- &matchingCount);
- }
-
- if (matchingVisuals) {
- visualId = matchingVisuals[0].visualid;
- XFree(matchingVisuals);
- }
- }
-
- if (visualId) {
-#ifdef QT_DEBUG_X11_VISUAL_SELECTION
- qDebug("Using Visual ID %d provided by XGetVisualInfo for EGL config %d", (int)visualId, configId);
-#endif
- return visualId;
- }
-
- qWarning("Unable to find an X11 visual which matches EGL config %d", configId);
- return (VisualID)0;
-}
-
-void qt_set_winid_on_widget(QWidget* w, Qt::HANDLE id)
-{
- w->create(id);
-}
-
-
-// NOTE: The X11 version of createSurface will re-create the native drawable if it's visual doesn't
-// match the one for the passed in EGLConfig
-EGLSurface QEgl::createSurface(QPaintDevice *device, EGLConfig config, const QEglProperties *properties)
-{
- int devType = device->devType();
-
- if (devType == QInternal::Pbuffer) {
- // TODO
- return EGL_NO_SURFACE;
- }
-
- QX11PlatformPixmap *x11PlatformPixmap = 0;
- if (devType == QInternal::Pixmap) {
- QPlatformPixmap *pmd = static_cast<QPixmap*>(device)->data_ptr().data();
- if (pmd->classId() == QPlatformPixmap::X11Class)
- x11PlatformPixmap = static_cast<QX11PlatformPixmap*>(pmd);
- else {
- // TODO: Replace the pixmap's data with a new QX11PlatformPixmap
- qWarning("WARNING: Creating an EGL surface on a QPixmap is only supported for QX11PlatformPixmap");
- return EGL_NO_SURFACE;
- }
- } else if ((devType != QInternal::Widget) && (devType != QInternal::Pbuffer)) {
- qWarning("WARNING: Creating an EGLSurface for device type %d isn't supported", devType);
- return EGL_NO_SURFACE;
- }
-
- VisualID visualId = QEgl::getCompatibleVisualId(config);
- EGLint alphaSize;
- eglGetConfigAttrib(QEgl::display(), config, EGL_ALPHA_SIZE, &alphaSize);
-
- if (devType == QInternal::Widget) {
- QWidget *widget = static_cast<QWidget*>(device);
-
- VisualID currentVisualId = 0;
- if (widget->testAttribute(Qt::WA_WState_Created))
- currentVisualId = XVisualIDFromVisual((Visual*)widget->x11Info().visual());
-
- if (currentVisualId != visualId) {
- // The window is either not created or has the wrong visual. Either way, we need
- // to create a window with the correct visual and call create() on the widget:
-
- bool visible = widget->isVisible();
- if (visible)
- widget->hide();
-
- XVisualInfo visualInfo;
- visualInfo.visualid = visualId;
- {
- XVisualInfo *visualInfoPtr;
- int matchingCount = 0;
- visualInfoPtr = XGetVisualInfo(widget->x11Info().display(), VisualIDMask,
- &visualInfo, &matchingCount);
- Q_ASSERT(visualInfoPtr); // visualId really should be valid!
- visualInfo = *visualInfoPtr;
- XFree(visualInfoPtr);
- }
-
- Window parentWindow = RootWindow(widget->x11Info().display(), widget->x11Info().screen());
- if (widget->parentWidget())
- parentWindow = widget->parentWidget()->winId();
-
- XSetWindowAttributes windowAttribs;
- QColormap colmap = QColormap::instance(widget->x11Info().screen());
- windowAttribs.background_pixel = colmap.pixel(widget->palette().color(widget->backgroundRole()));
- windowAttribs.border_pixel = colmap.pixel(Qt::black);
-
- unsigned int valueMask = CWBackPixel|CWBorderPixel;
- if (alphaSize > 0) {
- windowAttribs.colormap = XCreateColormap(widget->x11Info().display(), parentWindow,
- visualInfo.visual, AllocNone);
- valueMask |= CWColormap;
- }
-
- Window window = XCreateWindow(widget->x11Info().display(), parentWindow,
- widget->x(), widget->y(), widget->width(), widget->height(),
- 0, visualInfo.depth, InputOutput, visualInfo.visual,
- valueMask, &windowAttribs);
-
- // This is a nasty hack to get round the fact that we can't be a friend of QWidget:
- qt_set_winid_on_widget(widget, window);
-
- if (visible)
- widget->show();
- }
-
- // At this point, the widget's window should be created and have the correct visual. Now we
- // just need to create the EGL surface for it:
- const int *props;
- if (properties)
- props = properties->properties();
- else
- props = 0;
- EGLSurface surf = eglCreateWindowSurface(QEgl::display(), config, (EGLNativeWindowType)widget->winId(), props);
- if (surf == EGL_NO_SURFACE)
- qWarning("QEglContext::createSurface(): Unable to create EGL surface, error = 0x%x", eglGetError());
- return surf;
- }
-
- if (x11PlatformPixmap) {
- // X11 Pixmaps are only created with a depth, so that's all we need to check
- EGLint configDepth;
- eglGetConfigAttrib(QEgl::display(), config, EGL_BUFFER_SIZE , &configDepth);
- if (x11PlatformPixmap->depth() != configDepth) {
- // The bit depths are wrong which means the EGLConfig isn't compatable with
- // this pixmap. So we need to replace the pixmap's existing data with a new
- // one which is created with the correct depth:
-
-#ifndef QT_NO_XRENDER
- if (configDepth == 32) {
- qWarning("Warning: EGLConfig's depth (32) != pixmap's depth (%d), converting to ARGB32",
- x11PlatformPixmap->depth());
- x11PlatformPixmap->convertToARGB32(true);
- } else
-#endif
- {
- qWarning("Warning: EGLConfig's depth (%d) != pixmap's depth (%d)",
- configDepth, x11PlatformPixmap->depth());
- }
- }
-
- QEglProperties surfaceAttribs;
-
- // If the pixmap can't be bound to a texture, it's pretty useless
- surfaceAttribs.setValue(EGL_TEXTURE_TARGET, EGL_TEXTURE_2D);
- if (alphaSize > 0)
- surfaceAttribs.setValue(EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGBA);
- else
- surfaceAttribs.setValue(EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB);
-
- EGLSurface surf = eglCreatePixmapSurface(QEgl::display(), config,
- (EGLNativePixmapType) x11PlatformPixmap->handle(),
- surfaceAttribs.properties());
- x11PlatformPixmap->gl_surface = (void*)surf;
- QImagePixmapCleanupHooks::enableCleanupHooks(x11PlatformPixmap);
- return surf;
- }
-
- return EGL_NO_SURFACE;
-}
-
-QT_END_NAMESPACE
diff --git a/src/gui/egl/qeglproperties_p.h b/src/gui/egl/qeglproperties_p.h
index 23f3000923..ec596200fb 100644
--- a/src/gui/egl/qeglproperties_p.h
+++ b/src/gui/egl/qeglproperties_p.h
@@ -60,7 +60,6 @@
QT_BEGIN_NAMESPACE
-class QX11Info;
class QPaintDevice;
class Q_GUI_EXPORT QEglProperties