int y;
unsigned width;
unsigned height;
+ unsigned border;
int map_state;
Damage damage;
Pixmap pixmap;
window->y = win_attr.y;
window->width = win_attr.width;
window->height = win_attr.height;
+ window->border = win_attr.border_width;
window->map_state = win_attr.map_state;
window->damage = XDamageCreate(compositor->display, window->window, XDamageReportNonEmpty);
glUseProgram(screen->program);
glBindVertexArray(screen->vertex_array);
- XGrabServer(compositor->display);
- glXWaitX();
for(j=0; j<screen->nwindows; ++j)
{
CompositedWindow *window = &screen->windows[j];
{
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/screen->width, (float)window->height/screen->height);
+ 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);
}
}
- XUngrabServer(compositor->display);
glXSwapBuffers(compositor->display, screen->glx_window);
screen->dirty = 0;