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) {