wined3d: Properly invalidate the context's draw buffer in color_fill_fbo().
This commit is contained in:
parent
23cea50db2
commit
840b5af77e
|
@ -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
|
* context_acquire
|
||||||
*
|
*
|
||||||
|
|
|
@ -5696,18 +5696,17 @@ static void color_fill_fbo(IWineD3DDevice *iface, IWineD3DSurface *surface,
|
||||||
IWineD3DSwapChain *swapchain;
|
IWineD3DSwapChain *swapchain;
|
||||||
|
|
||||||
swapchain = get_swapchain(surface);
|
swapchain = get_swapchain(surface);
|
||||||
if (!surface_is_offscreen(surface)) {
|
if (!surface_is_offscreen(surface))
|
||||||
GLenum buffer;
|
{
|
||||||
|
|
||||||
TRACE("Surface %p is onscreen\n", surface);
|
TRACE("Surface %p is onscreen\n", surface);
|
||||||
|
|
||||||
context = context_acquire(This, surface, CTXUSAGE_RESOURCELOAD);
|
context = context_acquire(This, surface, CTXUSAGE_RESOURCELOAD);
|
||||||
ENTER_GL();
|
ENTER_GL();
|
||||||
context_bind_fbo(context, GL_FRAMEBUFFER, NULL);
|
context_bind_fbo(context, GL_FRAMEBUFFER, NULL);
|
||||||
buffer = surface_get_gl_buffer(surface, swapchain);
|
context_set_draw_buffer(context, surface_get_gl_buffer(surface, swapchain));
|
||||||
glDrawBuffer(buffer);
|
}
|
||||||
checkGLcall("glDrawBuffer()");
|
else
|
||||||
} else {
|
{
|
||||||
TRACE("Surface %p is offscreen\n", surface);
|
TRACE("Surface %p is offscreen\n", surface);
|
||||||
|
|
||||||
context = context_acquire(This, NULL, CTXUSAGE_RESOURCELOAD);
|
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;
|
DWORD context_get_tls_idx(void) DECLSPEC_HIDDEN;
|
||||||
void context_release(struct wined3d_context *context) DECLSPEC_HIDDEN;
|
void context_release(struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||||
BOOL context_set_current(struct wined3d_context *ctx) 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 context_set_tls_idx(DWORD idx) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
void delete_opengl_contexts(IWineD3DDevice *iface, IWineD3DSwapChain *swapchain) DECLSPEC_HIDDEN;
|
void delete_opengl_contexts(IWineD3DDevice *iface, IWineD3DSwapChain *swapchain) DECLSPEC_HIDDEN;
|
||||||
|
|
Loading…
Reference in New Issue