Matteo Bruni : wined3d: Fix context_apply_clear_state with ORM = backbuffer .
Alexandre Julliard
julliard at winehq.org
Mon Aug 16 12:25:07 CDT 2010
Module: wine
Branch: master
Commit: c1450356a7a7c01a607a9031200be0ba9c03b437
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c1450356a7a7c01a607a9031200be0ba9c03b437
Author: Matteo Bruni <matteo.mystral at gmail.com>
Date: Sat Aug 7 15:29:41 2010 +0200
wined3d: Fix context_apply_clear_state with ORM = backbuffer.
---
dlls/wined3d/context.c | 31 +++++++++++++++++++------------
1 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 93b4228..72b84c9 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1972,7 +1972,7 @@ static void context_apply_draw_buffer(struct wined3d_context *context, BOOL blit
{
ENTER_GL();
glDrawBuffer(surface_get_gl_buffer(rt));
- checkGLcall("glDrawBuffers()");
+ checkGLcall("glDrawBuffer()");
LEAVE_GL();
}
else
@@ -2172,22 +2172,29 @@ void context_apply_clear_state(struct wined3d_context *context, IWineD3DDeviceIm
}
else
{
- const struct wined3d_gl_info *gl_info = context->gl_info;
+ ENTER_GL();
- for (i = 0; i < gl_info->limits.buffers; ++i)
+ if (wined3d_settings.offscreen_rendering_mode == ORM_FBO)
{
- if (i < rt_count && rts[i])
- context->draw_buffers[i] = GL_COLOR_ATTACHMENT0 + i;
- else
- context->draw_buffers[i] = GL_NONE;
+ const struct wined3d_gl_info *gl_info = context->gl_info;
+ for (i = 0; i < gl_info->limits.buffers; ++i)
+ {
+ if (i < rt_count && rts[i])
+ context->draw_buffers[i] = GL_COLOR_ATTACHMENT0 + i;
+ else
+ context->draw_buffers[i] = GL_NONE;
+ }
+ GL_EXTCALL(glDrawBuffersARB(gl_info->limits.buffers, context->draw_buffers));
+ checkGLcall("glDrawBuffers()");
+ context->draw_buffer_dirty = TRUE;
+ }
+ else
+ {
+ glDrawBuffer(device->offscreenBuffer);
+ checkGLcall("glDrawBuffer()");
}
- ENTER_GL();
- GL_EXTCALL(glDrawBuffersARB(gl_info->limits.buffers, context->draw_buffers));
- checkGLcall("glDrawBuffers()");
LEAVE_GL();
-
- context->draw_buffer_dirty = TRUE;
}
if (context->last_was_blit)
More information about the wine-cvs
mailing list