prevent release of pre-existing buffers during a render cycle
@fix
{
//if (cs->subsurface)
//fprintf(stderr, "BUFFER(%d) COMMIT %d\n", wl_resource_get_id(buffer->res), wl_resource_get_id(cs->res));
- if ((!cs->post_render_queue) && ((!cs->buffer[1]) || (!cs->buffer[1]->post_renders)))
+ if ((!cs->c->rendering) && (!cs->post_render_queue) &&
+ ((!cs->buffer[1]) || (!cs->buffer[1]->post_renders)))
comp_surface_buffer_detach(&cs->buffer[1]);
}
else
{
Comp_Buffer *buffer;
//if (cs->subsurface) fprintf(stderr, "RENDER PRE\n");
+
+ comp_surface_buffer_detach(&cs->buffer[1]);
cs->buffer[1] = cs->buffer[0];
cs->buffer[0] = NULL;
cs->render_queue = 0;