This patch adds a new flip flag DSFLIP_ONCSYNC.
The old DSFLIP_WAITFORSYNC is renamed to DSFLIP_WAIT.
New DSFLIP_WAITFORSYNC = (DSFLIP_WAIT | DSFLIP_ONSYNC).

I changed almost all occurances of DSFLIP_WAITFORSYNC to DSFLIP_WAIT.
There's some unuesd code in the neo driver which I left untouched.

Matrox BES is the only user of DSFLIP_ONSYNC for now. Don't know if other
drivers could use it.

-- 
Ville Syrj�l�
[EMAIL PROTECTED]
http://www.sci.fi/~syrjala/
diff -urN DirectFB/gfxdrivers/i810/i810_overlay.c 
DirectFB/gfxdrivers/i810/i810_overlay.c
--- DirectFB/gfxdrivers/i810/i810_overlay.c     2003-03-26 19:22:29.000000000 +0200
+++ DirectFB/gfxdrivers/i810/i810_overlay.c     2003-04-01 18:04:40.000000000 +0300
@@ -414,7 +414,7 @@
        I810DriverData       *i810drv = (I810DriverData *) driver_data;
        I810OverlayLayerData *i810ovl = (I810OverlayLayerData *) layer_data;
        CoreSurface          *surface = dfb_layer_surface ( layer );
-       bool                  onsync  = (flags & DSFLIP_WAITFORSYNC);
+       bool                  onsync  = (flags & DSFLIP_WAIT);
        u32 current_buffer;
 
        dfb_surface_flip_buffers( surface );
diff -urN DirectFB/gfxdrivers/matrox/matrox_bes.c 
DirectFB/gfxdrivers/matrox/matrox_bes.c
--- DirectFB/gfxdrivers/matrox/matrox_bes.c     2003-01-31 20:40:29.000000000 +0200
+++ DirectFB/gfxdrivers/matrox/matrox_bes.c     2003-04-01 18:05:45.000000000 +0300
@@ -368,14 +368,13 @@
      MatroxDriverData   *mdrv    = (MatroxDriverData*) driver_data;
      MatroxBesLayerData *mbes    = (MatroxBesLayerData*) layer_data;
      CoreSurface        *surface = dfb_layer_surface( layer );
-     bool                onsync  = (flags & DSFLIP_WAITFORSYNC);
      
      dfb_surface_flip_buffers( surface );
      
      bes_calc_regs( mdrv, mbes, layer, &mbes->config );
-     bes_set_regs( mdrv, mbes, onsync );
+     bes_set_regs( mdrv, mbes, flags & DSFLIP_ONSYNC );
 
-     if (onsync)
+     if (flags & DSFLIP_WAIT)
           dfb_layer_wait_vsync( dfb_layer_at( DLID_PRIMARY ) );
      
      return DFB_OK;
diff -urN DirectFB/gfxdrivers/matrox/matrox_crtc2.c 
DirectFB/gfxdrivers/matrox/matrox_crtc2.c
--- DirectFB/gfxdrivers/matrox/matrox_crtc2.c   2003-02-13 19:35:47.000000000 +0200
+++ DirectFB/gfxdrivers/matrox/matrox_crtc2.c   2003-04-01 18:06:01.000000000 +0300
@@ -296,7 +296,7 @@
      }
      crtc2_set_buffer( mdrv, mcrtc2, layer );
 
-     if (flags & DSFLIP_WAITFORSYNC)
+     if (flags & DSFLIP_WAIT)
           crtc2_wait_vsync( mdrv );
 
      return DFB_OK;
diff -urN DirectFB/gfxdrivers/savage/savage_streams_old.c 
DirectFB/gfxdrivers/savage/savage_streams_old.c
--- DirectFB/gfxdrivers/savage/savage_streams_old.c     2003-01-31 20:43:36.000000000 
+0200
+++ DirectFB/gfxdrivers/savage/savage_streams_old.c     2003-04-01 18:06:43.000000000 
+0300
@@ -524,7 +524,7 @@
      secondary_calc_regs(sdrv, slay, layer, &slay->config);
      secondary_set_regs(sdrv, slay);
 
-     if (flags & DSFLIP_WAITFORSYNC)
+     if (flags & DSFLIP_WAIT)
           dfb_layer_wait_vsync( dfb_layer_at( DLID_PRIMARY ) );
 
      return DFB_OK;
diff -urN DirectFB/include/directfb.h DirectFB/include/directfb.h
--- DirectFB/include/directfb.h 2003-03-24 23:01:55.000000000 +0200
+++ DirectFB/include/directfb.h 2003-04-01 18:02:27.000000000 +0300
@@ -1781,13 +1781,15 @@
  * Flipping flags controlling the behaviour of Flip().
  */
 typedef enum {
-     DSFLIP_WAITFORSYNC  = 0x00000001,  /* flip during vertical retrace,
-                                           blocks until it occurs */
-     DSFLIP_BLIT         = 0x00000002   /* copy backbuffer into
+     DSFLIP_WAIT         = 0x00000001,  /* blocks until vertical retrace */
+     DSFLIP_BLIT         = 0x00000002,  /* copy backbuffer into
                                            frontbuffer rather than
                                            just swapping these buffers */
+     DSFLIP_ONSYNC       = 0x00000004   /* flip during vertical retrace */
 } DFBSurfaceFlipFlags;
 
+#define DSFLIP_WAITFORSYNC (DSFLIP_WAIT | DSFLIP_ONSYNC)
+
 /*
  * Flags controlling the text layout.
  */
diff -urN DirectFB/src/core/fbdev/fbdev.c DirectFB/src/core/fbdev/fbdev.c
--- DirectFB/src/core/fbdev/fbdev.c     2003-03-24 23:01:55.000000000 +0200
+++ DirectFB/src/core/fbdev/fbdev.c     2003-04-01 18:09:46.000000000 +0300
@@ -965,7 +965,7 @@
      DFBResult    ret;
      CoreSurface *surface = dfb_layer_surface( layer );
 
-     if ((flags & DSFLIP_WAITFORSYNC) && !dfb_config->pollvsync_after)
+     if ((flags & DSFLIP_WAIT) && !dfb_config->pollvsync_after)
           dfb_layer_wait_vsync( layer );
 
      ret = dfb_fbdev_pan( surface->back_buffer->video.offset /
@@ -973,7 +973,7 @@
      if (ret)
           return ret;
 
-     if ((flags & DSFLIP_WAITFORSYNC) && dfb_config->pollvsync_after)
+     if ((flags & DSFLIP_WAIT) && dfb_config->pollvsync_after)
           dfb_layer_wait_vsync( layer );
           
      dfb_surface_flip_buffers( surface );
diff -urN DirectFB/src/core/layers.c DirectFB/src/core/layers.c
--- DirectFB/src/core/layers.c  2003-03-24 23:01:55.000000000 +0200
+++ DirectFB/src/core/layers.c  2003-04-01 18:07:49.000000000 +0300
@@ -1049,7 +1049,7 @@
                                                  layer->layer_data, flags );
           
           case DLBM_BACKSYSTEM:
-               if (flags & DSFLIP_WAITFORSYNC)
+               if (flags & DSFLIP_WAIT)
                     dfb_layer_wait_vsync( layer );
                dfb_back_to_front_copy( shared->surface, NULL );
                dfb_layer_update_region( layer, NULL, flags );
diff -urN DirectFB/src/core/windows.c DirectFB/src/core/windows.c
--- DirectFB/src/core/windows.c 2003-03-24 23:01:55.000000000 +0200
+++ DirectFB/src/core/windows.c 2003-04-01 18:08:00.000000000 +0300
@@ -1474,7 +1474,7 @@
                                      region->x2 - region->x1 + 1,
                                      region->y2 - region->y1 + 1 };
 
-               if (flags & DSFLIP_WAITFORSYNC)
+               if (flags & DSFLIP_WAIT)
                     dfb_layer_wait_vsync( layer );
                
                dfb_back_to_front_copy( surface, &rect );
diff -urN DirectFB/src/display/idirectfbsurface_layer.c 
DirectFB/src/display/idirectfbsurface_layer.c
--- DirectFB/src/display/idirectfbsurface_layer.c       2003-03-24 23:01:55.000000000 
+0200
+++ DirectFB/src/display/idirectfbsurface_layer.c       2003-04-01 18:08:32.000000000 
+0300
@@ -99,7 +99,7 @@
 
 
      if (flags & DSFLIP_BLIT || region || data->base.caps & DSCAPS_SUBSURFACE) {
-          if (flags & DSFLIP_WAITFORSYNC)
+          if (flags & DSFLIP_WAIT)
                dfb_layer_wait_vsync( data->layer );
           
           if (region) {

Reply via email to