Commit 3ab8211b authored by Keith Whitwell's avatar Keith Whitwell

gallium: remove xlib_driver::display_surface

Just use flush_frontbuffer directly.  The flush_frontbuffer routine has
been somewhat devalued recently, but it is actually just the right
interface for our needs.

It is in pipe_screen, meaning that any wrapping (eg trace module)
will get properly unwrapped before we try and use the pipe_surface
argument for real.

If a particular co-state-tracker needs to implement this itself, it
should organize a way to allow the winsys to call back up to its
level, rather than hijacking the driver-supplied implementation.
parent c867c58c
......@@ -22,9 +22,6 @@ struct xlib_drawable {
struct xm_driver {
struct pipe_screen *(*create_pipe_screen)( Display *display );
void (*display_surface)( struct xlib_drawable *,
struct pipe_surface * );
};
/* Called by the libgl-xlib target code to build the rendering stack.
......
......@@ -1092,13 +1092,9 @@ void XMesaSwapBuffers( XMesaBuffer b )
st_swapbuffers(b->stfb, &frontLeftSurf, NULL);
if (frontLeftSurf) {
if (_screen != screen) {
struct trace_surface *tr_surf = trace_surface( frontLeftSurf );
struct pipe_surface *surf = tr_surf->surface;
frontLeftSurf = surf;
}
driver.display_surface(&b->ws, frontLeftSurf);
screen->flush_frontbuffer( screen,
frontLeftSurf,
&b->ws );
}
xmesa_check_and_update_buffer_size(NULL, b);
......
......@@ -69,22 +69,9 @@ fail:
}
static void
xlib_llvmpipe_display_surface(struct xlib_drawable *xm_buffer,
struct pipe_surface *surf)
{
struct llvmpipe_texture *texture = llvmpipe_texture(surf->texture);
assert(texture->dt);
if (texture->dt)
xlib_sw_display(xm_buffer, texture->dt);
}
struct xm_driver xlib_llvmpipe_driver =
{
.create_pipe_screen = xlib_create_llvmpipe_screen,
.display_surface = xlib_llvmpipe_display_surface
};
......
......@@ -57,22 +57,11 @@ fail:
}
static void
xlib_softpipe_display_surface(struct xlib_drawable *xm_buffer,
struct pipe_surface *surf)
{
struct softpipe_texture *texture = softpipe_texture(surf->texture);
assert(texture->dt);
if (texture->dt)
xlib_sw_display(xm_buffer, texture->dt);
}
struct xm_driver xlib_softpipe_driver =
{
.create_pipe_screen = xlib_create_softpipe_screen,
.display_surface = xlib_softpipe_display_surface
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment