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.
{
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);
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;
{
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)) {