Module: Mesa
Branch: gallium-sw-api-2
Commit: 3ab8211be40e3cd835bd1f6947b2c56f9a0c7a59
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ab8211be40e3cd835bd1f6947b2c56f9a0c7a59

Author: Keith Whitwell <[email protected]>
Date:   Mon Mar  8 19:23:10 2010 +0000

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.

---

 src/gallium/include/state_tracker/xlib_sw_winsys.h |    3 ---
 src/gallium/state_trackers/glx/xlib/xm_api.c       |   10 +++-------
 src/gallium/winsys/xlib/xlib_llvmpipe.c            |   13 -------------
 src/gallium/winsys/xlib/xlib_softpipe.c            |   11 -----------
 4 files changed, 3 insertions(+), 34 deletions(-)

diff --git a/src/gallium/include/state_tracker/xlib_sw_winsys.h 
b/src/gallium/include/state_tracker/xlib_sw_winsys.h
index c703d3b..915a7b3 100644
--- a/src/gallium/include/state_tracker/xlib_sw_winsys.h
+++ b/src/gallium/include/state_tracker/xlib_sw_winsys.h
@@ -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.
diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c 
b/src/gallium/state_trackers/glx/xlib/xm_api.c
index d878740..d8aa59b 100644
--- a/src/gallium/state_trackers/glx/xlib/xm_api.c
+++ b/src/gallium/state_trackers/glx/xlib/xm_api.c
@@ -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);
diff --git a/src/gallium/winsys/xlib/xlib_llvmpipe.c 
b/src/gallium/winsys/xlib/xlib_llvmpipe.c
index ceefc16..8b66b74 100644
--- a/src/gallium/winsys/xlib/xlib_llvmpipe.c
+++ b/src/gallium/winsys/xlib/xlib_llvmpipe.c
@@ -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
 };
 
 
diff --git a/src/gallium/winsys/xlib/xlib_softpipe.c 
b/src/gallium/winsys/xlib/xlib_softpipe.c
index 3b51d7c..08b7f08 100644
--- a/src/gallium/winsys/xlib/xlib_softpipe.c
+++ b/src/gallium/winsys/xlib/xlib_softpipe.c
@@ -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
 };
 
 

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to