X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmain.c;h=35328543cbbb4cfc80329c8a531870ab6690aaa0;hb=42750151d3f9fed56dc333ec7949c9a8005570b0;hp=21189b6b2c30cacae8a87801632ee3ba4a982725;hpb=f67e90622350af6c05669586e2ea9e5da9fba0bb;p=geometrycompositor.git diff --git a/source/main.c b/source/main.c index 21189b6..3532854 100644 --- a/source/main.c +++ b/source/main.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -328,6 +329,7 @@ int initialize_screen(Compositor *compositor, unsigned number) XSelectInput(compositor->display, screen->root, SubstructureNotifyMask); screen->overlay = XCompositeGetOverlayWindow(compositor->display, screen->root); XGetGeometry(compositor->display, screen->overlay, &dummy_root, &x, &y, &screen->width, &screen->height, &border, &depth); + XShapeCombineRectangles(compositor->display, screen->overlay, ShapeInput, 0, 0, NULL, 0, ShapeSet, Unsorted); if(!initialize_gl(compositor, screen)) return 0; @@ -382,6 +384,13 @@ int initialize_compositor(Compositor *compositor) else if(major_ver<1) return with_error("XDamage 1.0 or later is required"); + if(!XShapeQueryExtension(compositor->display, &event_base, &error_base)) + return with_error("XShape is required but was not found"); + else if(!XShapeQueryVersion(compositor->display, &major_ver, &minor_ver)) + return with_error("Cannot determine XShape version"); + else if(major_ver<1 || (major_ver==1 && minor_ver<1)) + return with_error("XShape 1.1 or later is required"); + compositor->glXCreateContextAttribsARB = (PFNGLXCREATECONTEXTATTRIBSARBPROC)glXGetProcAddress((unsigned char *)"glXCreateContextAttribsARB"); compositor->glXBindTexImageEXT = (PFNGLXBINDTEXIMAGEEXTPROC)glXGetProcAddress((unsigned char *)"glXBindTexImageEXT"); compositor->glXReleaseTexImageEXT = (PFNGLXRELEASETEXIMAGEEXTPROC)glXGetProcAddress((unsigned char *)"glXReleaseTexImageEXT");