wined3d: Handle drawbuffers in context_apply_fbo_state() instead of context_set_render_target_fbo()
Henri Verbeet
hverbeet at codeweavers.com
Thu Sep 18 07:57:53 CDT 2008
---
dlls/wined3d/context.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index c3297ac..067db87 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -187,12 +187,9 @@ static void context_set_render_target_fbo(IWineD3DDevice *iface, DWORD idx, IWin
if (render_target)
{
context_attach_surface_fbo(This, GL_FRAMEBUFFER_EXT, idx, render_target);
- This->draw_buffers[idx] = GL_COLOR_ATTACHMENT0_EXT + idx;
} else {
GL_EXTCALL(glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT + idx, GL_TEXTURE_2D, 0, 0));
checkGLcall("glFramebufferTexture2DEXT()");
-
- This->draw_buffers[idx] = GL_NONE;
}
}
@@ -281,6 +278,14 @@ void context_apply_fbo_state(IWineD3DDevice *iface)
context_set_depth_stencil_fbo(iface, This->stencilBufferTarget);
context->fbo_depth_attachment = This->stencilBufferTarget;
}
+
+ for (i = 0; i < GL_LIMITS(buffers); ++i)
+ {
+ if (This->render_targets[i])
+ This->draw_buffers[i] = GL_COLOR_ATTACHMENT0_EXT + i;
+ else
+ This->draw_buffers[i] = GL_NONE;
+ }
} else {
GL_EXTCALL(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0));
}
--
1.5.6.4
--------------020102020207000508070605--
More information about the wine-patches
mailing list