gallium: add notify_swapbuffers_complete, use it to set surfaces to undefined state

This commit is contained in:
Keith Whitwell 2008-01-21 20:23:32 +00:00 committed by José Fonseca
parent 596a92ee75
commit 6d2d41294c
2 changed files with 21 additions and 0 deletions

View file

@ -177,6 +177,26 @@ st_notify_swapbuffers(struct st_framebuffer *stfb)
}
}
/**
* Quick hack - allows the winsys to inform the driver that surface
* states are now undefined after a glXSwapBuffers or similar.
*/
void
st_notify_swapbuffers_complete(struct st_framebuffer *stfb)
{
GET_CURRENT_CONTEXT(ctx);
if (ctx && ctx->DrawBuffer == &stfb->Base) {
struct st_renderbuffer *strb;
int i;
for (i = 0; i < BUFFER_COUNT; i++) {
if (stfb->Base.Attachment[i].Renderbuffer) {
strb = st_renderbuffer(stfb->Base.Attachment[i].Renderbuffer);
strb->surface->status = PIPE_SURFACE_STATUS_UNDEFINED;
}
}
}
}

View file

@ -81,5 +81,6 @@ void st_make_current(struct st_context *st,
void st_flush( struct st_context *st, uint pipeFlushFlags );
void st_notify_swapbuffers(struct st_framebuffer *stfb);
void st_notify_swapbuffers_complete(struct st_framebuffer *stfb);
#endif