mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
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.
This commit is contained in:
parent
c867c58c73
commit
3ab8211be4
4 changed files with 3 additions and 34 deletions
|
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue