Module: wine Branch: master Commit: 2e1e3d48f21e261376280cee2695393711308e6c URL: http://source.winehq.org/git/wine.git/?a=commit;h=2e1e3d48f21e261376280cee26...
Author: H. Verbeet hverbeet@gmail.com Date: Mon Apr 9 01:53:47 2007 +0200
wined3d: Make bind_fbo a bit more generic.
---
dlls/wined3d/device.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 2b5a168..99f0690 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -5093,14 +5093,14 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetDepthStencilSurface(IWineD3DDevice return WINED3D_OK; }
-static void bind_fbo(IWineD3DDevice *iface) { +static void bind_fbo(IWineD3DDevice *iface, GLenum target, GLuint *fbo) { IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
- if (!This->fbo) { - GL_EXTCALL(glGenFramebuffersEXT(1, &This->fbo)); + if (!*fbo) { + GL_EXTCALL(glGenFramebuffersEXT(1, fbo)); checkGLcall("glGenFramebuffersEXT()"); } - GL_EXTCALL(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, This->fbo)); + GL_EXTCALL(glBindFramebufferEXT(target, *fbo)); checkGLcall("glBindFramebuffer()"); }
@@ -5203,7 +5203,7 @@ void apply_fbo_state(IWineD3DDevice *iface) { unsigned int i;
if (This->render_offscreen) { - bind_fbo(iface); + bind_fbo(iface, GL_FRAMEBUFFER_EXT, &This->fbo);
/* Apply render targets */ for (i = 0; i < GL_LIMITS(buffers); ++i) { @@ -5787,13 +5787,13 @@ static void WINAPI IWineD3DDeviceImpl_ResourceReleased(IWineD3DDevice *iface, IW /* Cleanup any FBO attachments */ for (i = 0; i < GL_LIMITS(buffers); ++i) { if (This->fbo_color_attachments[i] == (IWineD3DSurface *)resource) { - bind_fbo(iface); + bind_fbo(iface, GL_FRAMEBUFFER_EXT, &This->fbo); set_render_target_fbo(iface, i, NULL); This->fbo_color_attachments[i] = NULL; } } if (This->fbo_depth_attachment == (IWineD3DSurface *)resource) { - bind_fbo(iface); + bind_fbo(iface, GL_FRAMEBUFFER_EXT, &This->fbo); set_depth_stencil_fbo(iface, NULL); This->fbo_depth_attachment = NULL; }