[PATCH 09/10] wined3d: Improve FBO support in ClearSurface.

Henri Verbeet hverbeet at gmail.com
Mon Apr 12 07:31:40 CDT 2010


On 12 April 2010 12:44, Roderick Colenbrander <thunderbird2k at gmail.com> 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.



More information about the wine-devel mailing list