From: Brian Date: Mon, 5 Nov 2007 16:59:34 +0000 (-0700) Subject: added st_notify_swapbuffers() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=74866737db739bef8b7593d5060e4f80d91ff33a;p=mesa.git added st_notify_swapbuffers() --- diff --git a/src/mesa/state_tracker/st_framebuffer.c b/src/mesa/state_tracker/st_framebuffer.c index 326773c505e..2e7687d9c91 100644 --- a/src/mesa/state_tracker/st_framebuffer.c +++ b/src/mesa/state_tracker/st_framebuffer.c @@ -132,3 +132,20 @@ st_get_framebuffer_surface(struct st_framebuffer *stfb, uint surfIndex) return strb->surface; return NULL; } + + +/** + * This function is to be called prior to SwapBuffers on the given + * framebuffer. It checks if the current context is bound to the framebuffer + * and flushes rendering if needed. + */ +void +st_notify_swapbuffers(struct st_framebuffer *stfb) +{ + GET_CURRENT_CONTEXT(ctx); + + if (ctx && ctx->DrawBuffer == &stfb->Base) { + st_flush(ctx->st); + } +} + diff --git a/src/mesa/state_tracker/st_public.h b/src/mesa/state_tracker/st_public.h index acbf54d5ab3..8162ceeffab 100644 --- a/src/mesa/state_tracker/st_public.h +++ b/src/mesa/state_tracker/st_public.h @@ -71,4 +71,6 @@ void st_invalidate_state(GLcontext * ctx, GLuint new_state); void st_flush( struct st_context *st ); +void st_notify_swapbuffers(struct st_framebuffer *stfb); + #endif