1
/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbbstore.c,v 1.2 1999/01/31 12:22:17 dawes Exp $ */
4
#ifdef HAVE_XORG_CONFIG_H
5
#include <xorg-config.h>
14
#include "regionstr.h"
15
#include "scrnintstr.h"
16
#include "pixmapstr.h"
17
#include "windowstr.h"
31
ScreenPtr pScreen = pPixmap->drawable.pScreen;
34
if(pPixmap->drawable.bitsPerPixel == 32) {
35
cfb32SaveAreas(pPixmap, prgnSave, xorg, yorg, pWin);
39
i = REGION_NUM_RECTS(prgnSave);
40
pPtsInit = (DDXPointPtr)ALLOCATE_LOCAL(i * sizeof(DDXPointRec));
44
pBox = REGION_RECTS(prgnSave);
47
pPt->x = pBox->x1 + xorg;
48
pPt->y = pBox->y1 + yorg;
53
pScrPix = (PixmapPtr) pScreen->devPrivate;
55
cfbDoBitblt32To8((DrawablePtr) pScrPix, (DrawablePtr)pPixmap,
56
GXcopy, prgnSave, pPtsInit, ~0L);
58
DEALLOCATE_LOCAL (pPtsInit);
65
RegionPtr prgnRestore,
74
ScreenPtr pScreen = pPixmap->drawable.pScreen;
77
i = REGION_NUM_RECTS(prgnRestore);
78
pPtsInit = (DDXPointPtr)ALLOCATE_LOCAL(i*sizeof(DDXPointRec));
82
pBox = REGION_RECTS(prgnRestore);
85
pPt->x = pBox->x1 - xorg;
86
pPt->y = pBox->y1 - yorg;
91
pScrPix = (PixmapPtr) pScreen->devPrivate;
93
if(pPixmap->drawable.bitsPerPixel == 32) {
94
if(pWin->drawable.depth == 24)
95
cfb32DoBitbltCopy((DrawablePtr)pPixmap, (DrawablePtr) pScrPix,
96
GXcopy, prgnRestore, pPtsInit, 0x00ffffff);
98
cfb32DoBitbltCopy((DrawablePtr)pPixmap, (DrawablePtr) pScrPix,
99
GXcopy, prgnRestore, pPtsInit, ~0);
101
cfbDoBitblt8To32((DrawablePtr)pPixmap, (DrawablePtr) pScrPix,
102
GXcopy, prgnRestore, pPtsInit, ~0L);
105
DEALLOCATE_LOCAL (pPtsInit);