}
}
+ for(i=0; i<screen->nmonitors; ++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);
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);