3 #ifdef HAVE_XORG_CONFIG_H
4 #include <xorg-config.h>
13 #include "regionstr.h"
14 #include "scrnintstr.h"
15 #include "pixmapstr.h"
16 #include "windowstr.h"
30 ScreenPtr pScreen
= pPixmap
->drawable
.pScreen
;
33 if(pPixmap
->drawable
.bitsPerPixel
== 32) {
34 cfb32SaveAreas(pPixmap
, prgnSave
, xorg
, yorg
, pWin
);
38 i
= REGION_NUM_RECTS(prgnSave
);
39 pPtsInit
= (DDXPointPtr
)ALLOCATE_LOCAL(i
* sizeof(DDXPointRec
));
43 pBox
= REGION_RECTS(prgnSave
);
46 pPt
->x
= pBox
->x1
+ xorg
;
47 pPt
->y
= pBox
->y1
+ yorg
;
52 pScrPix
= (PixmapPtr
) pScreen
->devPrivate
;
54 cfbDoBitblt32To8((DrawablePtr
) pScrPix
, (DrawablePtr
)pPixmap
,
55 GXcopy
, prgnSave
, pPtsInit
, ~0L);
57 DEALLOCATE_LOCAL (pPtsInit
);
64 RegionPtr prgnRestore
,
73 ScreenPtr pScreen
= pPixmap
->drawable
.pScreen
;
76 i
= REGION_NUM_RECTS(prgnRestore
);
77 pPtsInit
= (DDXPointPtr
)ALLOCATE_LOCAL(i
*sizeof(DDXPointRec
));
81 pBox
= REGION_RECTS(prgnRestore
);
84 pPt
->x
= pBox
->x1
- xorg
;
85 pPt
->y
= pBox
->y1
- yorg
;
90 pScrPix
= (PixmapPtr
) pScreen
->devPrivate
;
92 if(pPixmap
->drawable
.bitsPerPixel
== 32) {
93 if(pWin
->drawable
.depth
== 24)
94 cfb32DoBitbltCopy((DrawablePtr
)pPixmap
, (DrawablePtr
) pScrPix
,
95 GXcopy
, prgnRestore
, pPtsInit
, 0x00ffffff);
97 cfb32DoBitbltCopy((DrawablePtr
)pPixmap
, (DrawablePtr
) pScrPix
,
98 GXcopy
, prgnRestore
, pPtsInit
, ~0);
100 cfbDoBitblt8To32((DrawablePtr
)pPixmap
, (DrawablePtr
) pScrPix
,
101 GXcopy
, prgnRestore
, pPtsInit
, ~0L);
104 DEALLOCATE_LOCAL (pPtsInit
);