diff options
Diffstat (limited to 'xc/programs/Xserver/miext/shadow/shplanar.c')
-rw-r--r-- | xc/programs/Xserver/miext/shadow/shplanar.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/xc/programs/Xserver/miext/shadow/shplanar.c b/xc/programs/Xserver/miext/shadow/shplanar.c index 1fec92790..15c778485 100644 --- a/xc/programs/Xserver/miext/shadow/shplanar.c +++ b/xc/programs/Xserver/miext/shadow/shplanar.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/programs/Xserver/miext/shadow/shplanar.c,v 1.2 2000/09/19 03:33:33 keithp Exp $ + * $XFree86: xc/programs/Xserver/miext/shadow/shplanar.c,v 1.3 2001/05/29 04:54:13 keithp Exp $ * * Copyright © 2000 Keith Packard * @@ -82,17 +82,18 @@ #endif void -shadowUpdatePlanar4 (ScreenPtr pScreen, - PixmapPtr pShadow, - RegionPtr damage) +shadowUpdatePlanar4 (ScreenPtr pScreen, + shadowBufPtr pBuf) { - shadowScrPriv(pScreen); + RegionPtr damage = &pBuf->damage; + PixmapPtr pShadow = pBuf->pPixmap; int nbox = REGION_NUM_RECTS (damage); BoxPtr pbox = REGION_RECTS (damage); CARD32 *shaBase, *shaLine, *sha; FbStride shaStride; int scrBase, scrLine, scr; int shaBpp; + int shaXoff, shaYoff; /* XXX assumed to be zero */ int x, y, w, h, width; int i; CARD32 *winBase, *winLine, *win; @@ -101,11 +102,11 @@ shadowUpdatePlanar4 (ScreenPtr pScreen, CARD32 m,m5,m6; CARD8 s1, s2, s3, s4; - fbGetStipDrawable (&pShadow->drawable, shaBase, shaStride, shaBpp); + fbGetStipDrawable (&pShadow->drawable, shaBase, shaStride, shaBpp, shaXoff, shaYoff); while (nbox--) { - x = pbox->x1 * shaBpp; - y = pbox->y1; + x = (pbox->x1) * shaBpp; + y = (pbox->y1); w = (pbox->x2 - pbox->x1) * shaBpp; h = pbox->y2 - pbox->y1; @@ -129,11 +130,12 @@ shadowUpdatePlanar4 (ScreenPtr pScreen, i = scrBase + winSize - scr; if (i <= 0 || scr < scrBase) { - winBase = (CARD32 *) (*pScrPriv->window) (pScreen, - y, - (scr << 4) | (plane), - SHADOW_WINDOW_WRITE, - &winSize); + winBase = (CARD32 *) (*pBuf->window) (pScreen, + y, + (scr << 4) | (plane), + SHADOW_WINDOW_WRITE, + &winSize, + pBuf->closure); if(!winBase) return; winSize >>= 2; |