diff options
author | Keith Packard <keithp@keithp.com> | 2008-04-04 12:11:14 -0700 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2008-10-23 09:56:45 -0400 |
commit | 8767fc8d47276c7489ae50dd556a446a462776ea (patch) | |
tree | 507817512bf1656ac14568c83bfb0e59d5b8fe8e /exa | |
parent | 4c926dbac65ceb699b91bb0d3fd0005a5854572d (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.c | 4 | ||||
-rw-r--r-- | exa/exa_priv.h | 8 | ||||
-rw-r--r-- | exa/exa_unaccel.c | 14 |
3 files changed, 26 insertions, 0 deletions
@@ -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, ®ion); } +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. |