summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2011-09-14 13:48:33 +0200
committerSamuel Rødal <samuel.rodal@nokia.com>2011-09-14 14:13:16 +0200
commite3aace811c9d53adf25853ef4e92681ecb983cc3 (patch)
treec0ef50011e6f321985b0cb633982b94ee8542a27
parent58115de07f644fdc936e6474ac4a63e4bce77e61 (diff)
Fixed XComposite hardware integration.
The root window needs to actually be mapped in order for XCompositeNameWindowPixmap to work. Also make sure to set both the window and pixmap bits in case we're on a stricter EGL / GLX implementation.
-rw-r--r--src/qt-compositor/hardware_integration/xcomposite_egl/xcompositeeglintegration.cpp2
-rw-r--r--src/qt-compositor/hardware_integration/xcomposite_glx/xcompositeglxintegration.cpp2
-rw-r--r--src/qt-compositor/hardware_integration/xcomposite_share/xcompositehandler.cpp2
3 files changed, 4 insertions, 2 deletions
diff --git a/src/qt-compositor/hardware_integration/xcomposite_egl/xcompositeeglintegration.cpp b/src/qt-compositor/hardware_integration/xcomposite_egl/xcompositeeglintegration.cpp
index 59617c6..e32183a 100644
--- a/src/qt-compositor/hardware_integration/xcomposite_egl/xcompositeeglintegration.cpp
+++ b/src/qt-compositor/hardware_integration/xcomposite_egl/xcompositeeglintegration.cpp
@@ -18,7 +18,7 @@ QVector<EGLint> eglbuildSpec()
{
QVector<EGLint> spec;
- spec.append(EGL_SURFACE_TYPE); spec.append(EGL_PIXMAP_BIT);
+ spec.append(EGL_SURFACE_TYPE); spec.append(EGL_WINDOW_BIT | EGL_PIXMAP_BIT);
spec.append(EGL_RENDERABLE_TYPE); spec.append(EGL_OPENGL_ES2_BIT);
spec.append(EGL_BIND_TO_TEXTURE_RGBA); spec.append(EGL_TRUE);
spec.append(EGL_ALPHA_SIZE); spec.append(8);
diff --git a/src/qt-compositor/hardware_integration/xcomposite_glx/xcompositeglxintegration.cpp b/src/qt-compositor/hardware_integration/xcomposite_glx/xcompositeglxintegration.cpp
index f109414..17c68d1 100644
--- a/src/qt-compositor/hardware_integration/xcomposite_glx/xcompositeglxintegration.cpp
+++ b/src/qt-compositor/hardware_integration/xcomposite_glx/xcompositeglxintegration.cpp
@@ -20,7 +20,7 @@ QVector<int> qglx_buildSpec()
spec[i++] = GLX_LEVEL;
spec[i++] = 0;
- spec[i++] = GLX_DRAWABLE_TYPE; spec[i++] = GLX_PIXMAP_BIT;
+ spec[i++] = GLX_DRAWABLE_TYPE; spec[i++] = GLX_PIXMAP_BIT | GLX_WINDOW_BIT;
spec[i++] = GLX_BIND_TO_TEXTURE_TARGETS_EXT; spec[i++] = GLX_TEXTURE_2D_BIT_EXT;
spec[i++] = GLX_BIND_TO_TEXTURE_RGB_EXT; spec[i++] = TRUE;
diff --git a/src/qt-compositor/hardware_integration/xcomposite_share/xcompositehandler.cpp b/src/qt-compositor/hardware_integration/xcomposite_share/xcompositehandler.cpp
index 4a64eb8..ef935e6 100644
--- a/src/qt-compositor/hardware_integration/xcomposite_share/xcompositehandler.cpp
+++ b/src/qt-compositor/hardware_integration/xcomposite_share/xcompositehandler.cpp
@@ -12,6 +12,8 @@ XCompositeHandler::XCompositeHandler(Wayland::Compositor *compositor, Display *d
{
mFakeRootWidget = new QWindow(mCompositor->window());
mFakeRootWidget->setGeometry(QRect(-1,-1,1,1));
+ mFakeRootWidget->create();
+ mFakeRootWidget->show();
int composite_event_base, composite_error_base;
if (XCompositeQueryExtension(mDisplay, &composite_event_base, &composite_error_base)) {