- glUseProgram(screen->program);
- glBindVertexArray(screen->vertex_array);
- for(j=0; j<screen->nwindows; ++j)
- {
- CompositedWindow *window = &screen->windows[j];
- if(window->map_state==IsViewable)
- {
- 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->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);
- XDamageSubtract(compositor->display, window->damage, None, None);
- }
- }
- glXSwapBuffers(compositor->display, screen->glx_window);