Commit 840b5af7 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Properly invalidate the context's draw buffer in color_fill_fbo().

parent 23cea50d
......@@ -2097,6 +2097,14 @@ static void context_apply_draw_buffer(struct wined3d_context *context, BOOL blit
}
}
/* GL locking is done by the caller. */
void context_set_draw_buffer(struct wined3d_context *context, GLenum buffer)
{
glDrawBuffer(buffer);
checkGLcall("glDrawBuffer()");
context->draw_buffer_dirty = TRUE;
}
/*****************************************************************************
* context_acquire
*
......
......@@ -5696,18 +5696,17 @@ static void color_fill_fbo(IWineD3DDevice *iface, IWineD3DSurface *surface,
IWineD3DSwapChain *swapchain;
swapchain = get_swapchain(surface);
if (!surface_is_offscreen(surface)) {
GLenum buffer;
if (!surface_is_offscreen(surface))
{
TRACE("Surface %p is onscreen\n", surface);
context = context_acquire(This, surface, CTXUSAGE_RESOURCELOAD);
ENTER_GL();
context_bind_fbo(context, GL_FRAMEBUFFER, NULL);
buffer = surface_get_gl_buffer(surface, swapchain);
glDrawBuffer(buffer);
checkGLcall("glDrawBuffer()");
} else {
context_set_draw_buffer(context, surface_get_gl_buffer(surface, swapchain));
}
else
{
TRACE("Surface %p is offscreen\n", surface);
context = context_acquire(This, NULL, CTXUSAGE_RESOURCELOAD);
......
......@@ -1187,6 +1187,7 @@ struct wined3d_context *context_get_current(void) DECLSPEC_HIDDEN;
DWORD context_get_tls_idx(void) DECLSPEC_HIDDEN;
void context_release(struct wined3d_context *context) DECLSPEC_HIDDEN;
BOOL context_set_current(struct wined3d_context *ctx) DECLSPEC_HIDDEN;
void context_set_draw_buffer(struct wined3d_context *context, GLenum buffer) DECLSPEC_HIDDEN;
void context_set_tls_idx(DWORD idx) DECLSPEC_HIDDEN;
void delete_opengl_contexts(IWineD3DDevice *iface, IWineD3DSwapChain *swapchain) DECLSPEC_HIDDEN;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment