Esempio n. 1
0
static DFBResult
ovlFlipRegion(  CoreLayer             *layer,
                void                  *driver_data,
                void                  *layer_data,
                void                  *region_data,
                CoreSurface           *surface,
                DFBSurfaceFlipFlags    flags,
                const DFBRegion       *left_update,
                CoreSurfaceBufferLock *left_lock,
                const DFBRegion       *right_update,
                CoreSurfaceBufferLock *right_lock )
{
     I830DriverData       *idrv = driver_data;
     I830DeviceData       *idev = idrv->idev;
     I830OverlayLayerData *iovl = layer_data;

     dfb_surface_flip( surface, false );

     ovl_calc_regs ( idrv, idev, iovl, layer, surface, &iovl->config, true, left_lock );

     update_overlay( idrv, idev );

     if (flags & DSFLIP_WAIT)
          dfb_screen_wait_vsync( dfb_screens_at( DSCID_PRIMARY ) );

     return DFB_OK;
}
Esempio n. 2
0
static DFBResult
ovlSetRegion( CoreLayer                  *layer,
              void                       *driver_data,
              void                       *layer_data,
              void                       *region_data,
              CoreLayerRegionConfig      *config,
              CoreLayerRegionConfigFlags  updated,
              CoreSurface                *surface,
              CorePalette                *palette,
              CoreSurfaceBufferLock      *lock )
{
     I830DriverData       *idrv = driver_data;
     I830DeviceData       *idev = idrv->idev;
     I830OverlayLayerData *iovl = layer_data;

     iovl->config = *config;

     ovl_calc_regs ( idrv, idev, iovl, layer, surface, config, false, lock );

     i830ovlOnOff( idrv, idev, true );

     return DFB_OK;
}