summaryrefslogtreecommitdiff
path: root/exa/exa_unaccel.c
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2006-03-14 21:30:12 +0000
committerEric Anholt <anholt@freebsd.org>2006-03-14 21:30:12 +0000
commit693e42114f1127528448126d78a5209dd1198d8d (patch)
tree4ad88c1d3ae4b2b7b34028c18a771f92ebd5df73 /exa/exa_unaccel.c
parentd30905478078036383977ae9d4a3685c2e2c642f (diff)
Move migration logic to a new function, exaDoMigration(). This is largely a
manual conversion to allow for different migration schemes to be implemented reasonably, but does include some minor improvements such as accounting for pinned pixmaps not being acceleratable, and for our current GetImage and GetSpans not being accelerated.
Diffstat (limited to 'exa/exa_unaccel.c')
-rw-r--r--exa/exa_unaccel.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c
index 361147cea..1ffecb811 100644
--- a/exa/exa_unaccel.c
+++ b/exa/exa_unaccel.c
@@ -279,6 +279,11 @@ ExaCheckRestoreAreas (PixmapPtr pPixmap,
exaFinishAccess ((DrawablePtr)pPixmap, EXA_PREPARE_DEST);
}
+/* XXX: Note the lack of a prepare on the tile, if the window has a tiled
+ * background. This function happens to only be called if pExaScr->swappedOut,
+ * so we actually end up not having to do it since the tile won't be in fb.
+ * That doesn't make this not dirty, though.
+ */
void
ExaCheckPaintWindow (WindowPtr pWin, RegionPtr pRegion, int what)
{
@@ -334,8 +339,12 @@ CARD32
exaGetPixmapFirstPixel (PixmapPtr pPixmap)
{
CARD32 pixel;
+ ExaMigrationRec pixmaps[1];
- exaDrawableUseMemory(&pPixmap->drawable);
+ pixmaps[0].as_dst = FALSE;
+ pixmaps[0].as_src = TRUE;
+ pixmaps[0].pPix = pPixmap;
+ exaDoMigration (pixmaps, 1, TRUE);
exaPrepareAccess(&pPixmap->drawable, EXA_PREPARE_SRC);
switch (pPixmap->drawable.bitsPerPixel) {