On 12 April 2010 12:44, Roderick Colenbrander <[email protected]> wrote: > - context = context_acquire(This, (IWineD3DSurface *)target, > CTXUSAGE_CLEAR); > + if (wined3d_settings.offscreen_rendering_mode == ORM_FBO) > + { > + if (!surface_is_offscreen((IWineD3DSurface *)target)) > + { > + TRACE("Surface %p is onscreen\n", target); > + > + context = context_acquire(This, (IWineD3DSurface *)target, > CTXUSAGE_RESOURCELOAD); > + ENTER_GL(); > + context_bind_fbo(context, GL_FRAMEBUFFER, NULL); > + context_set_draw_buffer(context, > surface_get_gl_buffer((IWineD3DSurface *)target)); > + LEAVE_GL(); > + } > + else > + { > + TRACE("Surface %p is offscreen\n", target); > + > + context = context_acquire(This, NULL, CTXUSAGE_RESOURCELOAD); > + ENTER_GL(); > + context_bind_fbo(context, GL_FRAMEBUFFER, &context->dst_fbo); > + context_attach_surface_fbo(context, GL_FRAMEBUFFER, 0, > (IWineD3DSurface *)target); > + context_attach_depth_stencil_fbo(context, GL_FRAMEBUFFER, NULL, > FALSE); > + LEAVE_GL(); > + } > + } > + else > + { > + context = context_acquire(This, (IWineD3DSurface *)target, > CTXUSAGE_CLEAR); > + } > + That doesn't work of course, CTXUSAGE_CLEAR isn't there just for show.
