wined3d: Handle drawbuffers in context_apply_fbo_state() instead of context_set_render_target_fbo().

This commit is contained in:
Henri Verbeet 2008-09-18 14:57:53 +02:00 committed by Alexandre Julliard
parent 9533a5cbbf
commit 734b31e00b
1 changed files with 8 additions and 3 deletions

View File

@ -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));
}