summaryrefslogtreecommitdiff
path: root/exa/exa_unaccel.c
diff options
context:
space:
mode:
authorZack Rusin <zack@kde.org>2005-07-04 14:15:57 +0000
committerZack Rusin <zack@kde.org>2005-07-04 14:15:57 +0000
commite34f31762e0454930f30547a9407cc8b941c70f2 (patch)
tree4e27ea8810e9cd1d65b75ac34a5cf567c5f7f493 /exa/exa_unaccel.c
parent4ef813961dc8dea8924a79e0954d5b6da12e77c0 (diff)
This fixes the close screen mess (crash reported by Thomas). Also hide the
private Exa screen definition. Properly cleanup on screen close and do not delete the private screen in the DriverFini call.
Diffstat (limited to 'exa/exa_unaccel.c')
-rw-r--r--exa/exa_unaccel.c100
1 files changed, 22 insertions, 78 deletions
diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c
index 79c407417..9925f354f 100644
--- a/exa/exa_unaccel.c
+++ b/exa/exa_unaccel.c
@@ -250,91 +250,35 @@ ExaCheckPaintWindow (WindowPtr pWin, RegionPtr pRegion, int what)
}
void
-ExaCheckCopyWindow (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
-{
- exaWaitSync (pWin->drawable.pScreen);
- exaDrawableDirty ((DrawablePtr)pWin);
- fbCopyWindow (pWin, ptOldOrg, prgnSrc);
-}
-
-#if EXA_MAX_FB > 1
-void
-ExaCheckPaintKey(DrawablePtr pDrawable,
- RegionPtr pRegion,
- CARD32 pixel,
- int layer)
-{
- exaWaitSync (pDrawable->pScreen);
- exaDrawableDirty (pDrawable);
- fbOverlayPaintKey (pDrawable, pRegion, pixel, layer);
-}
-
-void
-ExaCheckOverlayCopyWindow (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
-{
- exaWaitSync (pWin->drawable.pScreen);
- exaDrawableDirty ((DrawablePtr)pWin);
- fbOverlayCopyWindow (pWin, ptOldOrg, prgnSrc);
-}
-#endif
-
-void
-ExaScreenInitAsync (ScreenPtr pScreen)
-{
- pScreen->GetImage = ExaCheckGetImage;
- pScreen->GetSpans = ExaCheckGetSpans;
- pScreen->PaintWindowBackground = ExaCheckPaintWindow;
- pScreen->PaintWindowBorder = ExaCheckPaintWindow;
- pScreen->CopyWindow = ExaCheckCopyWindow;
- pScreen->BackingStoreFuncs.SaveAreas = ExaCheckSaveAreas;
- pScreen->BackingStoreFuncs.RestoreAreas = ExaCheckRestoreAreas;
-
-#ifdef RENDER
- ExaPictureInitAsync (pScreen);
-#endif
-}
-
-
-void
ExaCheckComposite (CARD8 op,
- PicturePtr pSrc,
- PicturePtr pMask,
- PicturePtr pDst,
- INT16 xSrc,
- INT16 ySrc,
- INT16 xMask,
- INT16 yMask,
- INT16 xDst,
- INT16 yDst,
- CARD16 width,
- CARD16 height)
+ PicturePtr pSrc,
+ PicturePtr pMask,
+ PicturePtr pDst,
+ INT16 xSrc,
+ INT16 ySrc,
+ INT16 xMask,
+ INT16 yMask,
+ INT16 xDst,
+ INT16 yDst,
+ CARD16 width,
+ CARD16 height)
{
exaWaitSync (pDst->pDrawable->pScreen);
exaDrawableDirty (pDst->pDrawable);
fbComposite (op,
- pSrc,
- pMask,
- pDst,
- xSrc,
- ySrc,
- xMask,
- yMask,
- xDst,
- yDst,
- width,
- height);
-}
-
-void
-ExaPictureInitAsync (ScreenPtr pScreen)
-{
- PictureScreenPtr ps;
-
- ps = GetPictureScreen(pScreen);
- ps->Composite = ExaCheckComposite;
+ pSrc,
+ pMask,
+ pDst,
+ xSrc,
+ ySrc,
+ xMask,
+ yMask,
+ xDst,
+ yDst,
+ width,
+ height);
}
-
/*
* Only need to stall for copyarea/copyplane
*/