X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmain.c;h=13038c29ef83f6b8292a6e970edd06225c4de652;hb=03938166b24208348b4ea25600b4d06c8fd2400a;hp=f34acb54885ac30a1e1d5ea18869f6aba83f5151;hpb=551624d89ac272ef91d99c6c51c6579adadbf5c5;p=geometrycompositor.git diff --git a/source/main.c b/source/main.c index f34acb5..13038c2 100644 --- a/source/main.c +++ b/source/main.c @@ -684,6 +684,22 @@ void shutdown_screen(Compositor *compositor, CompositedScreen *screen) } } + for(i=0; inmonitors; ++i) + if(screen->monitors[i].enabled) + { + glDeleteBuffers(1, &screen->monitors[i].vertex_buffer); + glDeleteBuffers(1, &screen->monitors[i].index_buffer); + glDeleteVertexArrays(1, &screen->monitors[i].vertex_array); + } + + glDeleteBuffers(1, &screen->window_vertex_buffer); + glDeleteVertexArrays(1, &screen->window_vertex_array); + glDeleteFramebuffers(1, &screen->framebuffer); + glDeleteTextures(1, &screen->fb_texture); + glDeleteProgram(screen->program); + glDeleteShader(screen->shaders[0]); + glDeleteShader(screen->shaders[1]); + glXMakeContextCurrent(compositor->display, 0, 0, NULL); glXDestroyContext(compositor->display, screen->glx_context); glXDestroyWindow(compositor->display, screen->glx_window); @@ -894,7 +910,7 @@ void refresh_screen(Compositor *compositor, CompositedScreen *screen) glBindTexture(GL_TEXTURE_2D, window->texture); compositor->glXBindTexImageEXT(compositor->display, window->glx_pixmap, GLX_FRONT_LEFT_EXT, NULL); glUniform4f(screen->geometry_loc, - (float)window->x/screen->width, (float)(screen->height-window->y-window->height)/screen->height, + (float)window->x/screen->width, ((float)screen->height-window->y-window->height)/screen->height, (float)(window->width+2*window->border)/screen->width, (float)(window->height+2*window->border)/screen->height); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); compositor->glXReleaseTexImageEXT(compositor->display, window->glx_pixmap, GLX_FRONT_LEFT_EXT);