diff options
author | Brian <brian.paul@tungstengraphics.com> | 2007-11-01 18:37:00 -0600 |
---|---|---|
committer | Brian <brian.paul@tungstengraphics.com> | 2007-11-01 18:37:00 -0600 |
commit | d8e66aca8443c6802ecd8f1a353024ed1d0f32c3 (patch) | |
tree | c0038761beedea1e4854981c2fbfb7a6942ce722 /src/mesa/pipe | |
parent | 28bed6d355e7ea3acbc4dbef0490e269d560f89e (diff) |
Start re-working SwapBuffers.
intelCopyBuffer() is now intelDisplayBuffer(): it displays the given surface
in the on-screen window.
Added a pipe_surface parameter to winsys->flush_frontbuffer().
Front buffer rendering/flushing actually works now.
But, we should only allocate the front surface on demand...
Diffstat (limited to 'src/mesa/pipe')
-rw-r--r-- | src/mesa/pipe/p_winsys.h | 4 | ||||
-rw-r--r-- | src/mesa/pipe/xlib/xm_winsys.c | 14 |
2 files changed, 10 insertions, 8 deletions
diff --git a/src/mesa/pipe/p_winsys.h b/src/mesa/pipe/p_winsys.h index 10a2caf1a2..2d4432dbca 100644 --- a/src/mesa/pipe/p_winsys.h +++ b/src/mesa/pipe/p_winsys.h @@ -53,6 +53,7 @@ struct pipe_buffer_handle; struct pipe_region; +struct pipe_surface; /** Opaque type */ struct pipe_buffer_handle; @@ -63,7 +64,8 @@ struct pipe_winsys * Do any special operations to ensure frontbuffer contents are * displayed, eg copy fake frontbuffer. */ - void (*flush_frontbuffer)( struct pipe_winsys *sws ); + void (*flush_frontbuffer)( struct pipe_winsys *sws, + struct pipe_surface *surf ); /** Debug output */ void (*printf)( struct pipe_winsys *sws, diff --git a/src/mesa/pipe/xlib/xm_winsys.c b/src/mesa/pipe/xlib/xm_winsys.c index e6e98ed396..5de811a66f 100644 --- a/src/mesa/pipe/xlib/xm_winsys.c +++ b/src/mesa/pipe/xlib/xm_winsys.c @@ -157,14 +157,14 @@ xm_buffer_get_subdata(struct pipe_winsys *pws, struct pipe_buffer_handle *buf, } static void -xm_flush_frontbuffer(struct pipe_winsys *pws) +xm_flush_frontbuffer(struct pipe_winsys *pws, + struct pipe_surface *surf ) { - /* - struct intel_context *intel = intel_pipe_winsys(sws)->intel; - __DRIdrawablePrivate *dPriv = intel->driDrawable; - - intelCopyBuffer(dPriv, NULL); - */ + /* The Xlib driver's front color surfaces are actually X Windows so + * this flush is a no-op. + * If we instead did front buffer rendering to a temporary XImage, + * this would be the place to copy the Ximage to the on-screen Window. + */ } static void |