summaryrefslogtreecommitdiff
path: root/exa
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2008-04-04 12:11:14 -0700
committerAdam Jackson <ajax@redhat.com>2008-10-23 09:56:45 -0400
commit8767fc8d47276c7489ae50dd556a446a462776ea (patch)
tree507817512bf1656ac14568c83bfb0e59d5b8fe8e /exa
parent4c926dbac65ceb699b91bb0d3fd0005a5854572d (diff)
Wrap AddTraps in exa and damage.
This fine (and unused) function wasn't ever wrapped which made it not work under exa. (cherry picked from commit 06e7e1d0486e8c516a9b3219a2c86026f88825fc)
Diffstat (limited to 'exa')
-rw-r--r--exa/exa.c4
-rw-r--r--exa/exa_priv.h8
-rw-r--r--exa/exa_unaccel.c14
3 files changed, 26 insertions, 0 deletions
diff --git a/exa/exa.c b/exa/exa.c
index d24012645..6dfde4cdf 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -757,6 +757,7 @@ exaCloseScreen(int i, ScreenPtr pScreen)
ps->Glyphs = pExaScr->SavedGlyphs;
ps->Trapezoids = pExaScr->SavedTrapezoids;
ps->Triangles = pExaScr->SavedTriangles;
+ ps->AddTraps = pExaScr->SavedAddTraps;
}
#endif
@@ -928,6 +929,9 @@ exaDriverInit (ScreenPtr pScreen,
pExaScr->SavedTrapezoids = ps->Trapezoids;
ps->Trapezoids = exaTrapezoids;
+
+ pExaScr->SavedAddTraps = ps->AddTraps;
+ ps->AddTraps = ExaCheckAddTraps;
}
#endif
diff --git a/exa/exa_priv.h b/exa/exa_priv.h
index 078dc374a..00a3c9a6c 100644
--- a/exa/exa_priv.h
+++ b/exa/exa_priv.h
@@ -147,6 +147,7 @@ typedef struct {
TrianglesProcPtr SavedTriangles;
GlyphsProcPtr SavedGlyphs;
TrapezoidsProcPtr SavedTrapezoids;
+ AddTrapsProcPtr SavedAddTraps;
#endif
Bool swappedOut;
@@ -331,6 +332,13 @@ ExaCheckGetSpans (DrawablePtr pDrawable,
int nspans,
char *pdstStart);
+void
+ExaCheckAddTraps (PicturePtr pPicture,
+ INT16 x_off,
+ INT16 y_off,
+ int ntrap,
+ xTrap *traps);
+
/* exa_accel.c */
static _X_INLINE Bool
diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c
index d5d6a306a..64c06c7c0 100644
--- a/exa/exa_unaccel.c
+++ b/exa/exa_unaccel.c
@@ -353,6 +353,20 @@ ExaCheckComposite (CARD8 op,
REGION_UNINIT(pScreen, &region);
}
+void
+ExaCheckAddTraps (PicturePtr pPicture,
+ INT16 x_off,
+ INT16 y_off,
+ int ntrap,
+ xTrap *traps)
+{
+ EXA_FALLBACK(("to pict %p (%c)\n",
+ exaDrawableLocation(pPicture->pDrawable)));
+ exaPrepareAccess(pPicture->pDrawable, EXA_PREPARE_DEST);
+ fbAddTraps (pPicture, x_off, y_off, ntrap, traps);
+ exaFinishAccess(pPicture->pDrawable, EXA_PREPARE_DEST);
+}
+
/**
* Gets the 0,0 pixel of a pixmap. Used for doing solid fills of tiled pixmaps
* that happen to be 1x1. Pixmap must be at least 8bpp.