X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmain.c;h=23c061b86fc3a5557dfba3b2266499f29b36ef1c;hb=6f6754fda1a75575ac37ee685f24d585369d9fde;hp=a1d0f1cf43537d0ab1162981415c5344f214b0a3;hpb=74572308adfaf62f0669df4e2369e1b31203042d;p=geometrycompositor.git diff --git a/source/main.c b/source/main.c index a1d0f1c..23c061b 100644 --- a/source/main.c +++ b/source/main.c @@ -815,6 +815,12 @@ void update_root_pixmap(Compositor *compositor, CompositedScreen *screen) unsigned long overflow; unsigned long length; long *pixmap; + Window root; + int x, y; + unsigned width; + unsigned height; + unsigned border; + unsigned depth; use_gl(compositor, screen); @@ -833,7 +839,10 @@ void update_root_pixmap(Compositor *compositor, CompositedScreen *screen) } screen->root_pixmap = pixmap[0]; - screen->root_glx_pixmap = pixmap_to_glx_pixmap(compositor, screen, screen->root_pixmap); + if(XGetGeometry(compositor->display, screen->root_pixmap, &root, &x, &y, &width, &height, &border, &depth)) + screen->root_glx_pixmap = pixmap_to_glx_pixmap(compositor, screen, screen->root_pixmap); + else + screen->root_pixmap = None; XFree(pixmap); } @@ -1002,6 +1011,9 @@ void shutdown_screen(Compositor *compositor, CompositedScreen *screen) } } + glDeleteTextures(1, &screen->root_texture); + glXDestroyPixmap(compositor->display, screen->root_glx_pixmap); + glDeleteBuffers(1, &screen->window_vertex_buffer); glDeleteVertexArrays(1, &screen->window_vertex_array); glDeleteFramebuffers(1, &screen->framebuffer);