diff --git a/exa/exa.h b/exa/exa.h index 7c2f4c1fc..8d9bcea34 100644 --- a/exa/exa.h +++ b/exa/exa.h @@ -744,21 +744,36 @@ typedef struct _ExaDriver { /** @} */ +/* in exa.c */ ExaDriverPtr exaDriverAlloc(void); Bool -exaDriverInit(ScreenPtr pScreen, +exaDriverInit(ScreenPtr pScreen, ExaDriverPtr pScreenInfo); void -exaDriverFini(ScreenPtr pScreen); +exaDriverFini(ScreenPtr pScreen); void exaMarkSync(ScreenPtr pScreen); void exaWaitSync(ScreenPtr pScreen); +unsigned long +exaGetPixmapOffset(PixmapPtr pPix); + +unsigned long +exaGetPixmapPitch(PixmapPtr pPix); + +unsigned long +exaGetPixmapSize(PixmapPtr pPix); + +void * +exaGetPixmapDriverPrivate(PixmapPtr p); + + +/* in exa_offscreen.c */ ExaOffscreenArea * exaOffscreenAlloc(ScreenPtr pScreen, int size, int align, Bool locked, @@ -771,32 +786,22 @@ exaOffscreenFree(ScreenPtr pScreen, ExaOffscreenArea *area); void ExaOffscreenMarkUsed (PixmapPtr pPixmap); -unsigned long -exaGetPixmapOffset(PixmapPtr pPix); - -unsigned long -exaGetPixmapPitch(PixmapPtr pPix); - -unsigned long -exaGetPixmapSize(PixmapPtr pPix); - void exaEnableDisableFBAccess (int index, Bool enable); + +/* in exa_migration.c */ void exaMoveInPixmap (PixmapPtr pPixmap); void exaMoveOutPixmap (PixmapPtr pPixmap); -void * -exaGetPixmapDriverPrivate(PixmapPtr p); +/* in exa_unaccel.c */ CARD32 exaGetPixmapFirstPixel (PixmapPtr pPixmap); -Bool -exaDamageDestForMigration(PixmapPtr pPix, RegionPtr region); /** * Returns TRUE if the given planemask covers all the significant bits in the diff --git a/exa/exa_migration.c b/exa/exa_migration.c index 56515ab86..013781581 100644 --- a/exa/exa_migration.c +++ b/exa/exa_migration.c @@ -242,9 +242,9 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc, pBox->x1, pBox->y1, pBox->x2 - pBox->x1, pBox->y2 - pBox->y1, - pExaPixmap->sys_ptr + (char *) (pExaPixmap->sys_ptr + pBox->y1 * pExaPixmap->sys_pitch - + pBox->x1 * pPixmap->drawable.bitsPerPixel / 8, + + pBox->x1 * pPixmap->drawable.bitsPerPixel / 8), pExaPixmap->sys_pitch)) { if (!access_prepared) { diff --git a/exa/exa_priv.h b/exa/exa_priv.h index dc6a6e07c..7decf8f66 100644 --- a/exa/exa_priv.h +++ b/exa/exa_priv.h @@ -503,4 +503,7 @@ exaDoMigration (ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel); void exaPixmapSave (ScreenPtr pScreen, ExaOffscreenArea *area); +Bool +exaDamageDestForMigration(PixmapPtr pPix, RegionPtr region); + #endif /* EXAPRIV_H */