aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/xf8_32bpp/cfbimage.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-07-25 19:39:46 +0000
committermarha <marha@users.sourceforge.net>2009-07-25 19:39:46 +0000
commit4a3dbb926ae3f5410198d7cc4f4ebe4f62eebf05 (patch)
treec1e02b9d3509aa97703aa4b540d4cd22ec4600ed /xorg-server/hw/xfree86/xf8_32bpp/cfbimage.c
parentdc3c299dd0995549e2a6973ca0f25b254afd38a5 (diff)
downloadvcxsrv-4a3dbb926ae3f5410198d7cc4f4ebe4f62eebf05.tar.gz
vcxsrv-4a3dbb926ae3f5410198d7cc4f4ebe4f62eebf05.tar.bz2
vcxsrv-4a3dbb926ae3f5410198d7cc4f4ebe4f62eebf05.zip
Added xorg-server-1.6.2.tar.gz
Diffstat (limited to 'xorg-server/hw/xfree86/xf8_32bpp/cfbimage.c')
-rw-r--r--xorg-server/hw/xfree86/xf8_32bpp/cfbimage.c174
1 files changed, 0 insertions, 174 deletions
diff --git a/xorg-server/hw/xfree86/xf8_32bpp/cfbimage.c b/xorg-server/hw/xfree86/xf8_32bpp/cfbimage.c
deleted file mode 100644
index 01a5a5eb6..000000000
--- a/xorg-server/hw/xfree86/xf8_32bpp/cfbimage.c
+++ /dev/null
@@ -1,174 +0,0 @@
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <X11/X.h>
-#include "windowstr.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "gcstruct.h"
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb32.h"
-#include "cfb8_32.h"
-#include "servermd.h"
-#include "mi.h"
-
-
-void
-cfb8_32GetImage (
- DrawablePtr pDraw,
- int sx, int sy, int w, int h,
- unsigned int format,
- unsigned long planemask,
- char *pdstLine
-){
- if(!w || !h) return;
-
- if (!cfbDrawableEnabled (pDraw))
- return;
-
- if(pDraw->depth == 24){
- cfb32GetImage(pDraw, sx, sy, w, h, format, planemask, pdstLine);
- return;
- }
-
- if((pDraw->bitsPerPixel == 8) || (pDraw->bitsPerPixel == 1)){
- cfbGetImage(pDraw, sx, sy, w, h, format, planemask, pdstLine);
- return;
- }
-
- /* source is depth 8, 32 bpp */
- if(format != ZPixmap) {
- miGetImage(pDraw, sx, sy, w, h, format, planemask, pdstLine);
- return;
- } else {
- BoxRec box;
- DDXPointRec ptSrc;
- RegionRec rgnDst;
- ScreenPtr pScreen;
- PixmapPtr pPixmap;
-
- pScreen = pDraw->pScreen;
- pPixmap = GetScratchPixmapHeader(pScreen, w, h, 8, 8,
- PixmapBytePad(w,8), (pointer)pdstLine);
- if (!pPixmap)
- return;
- if ((planemask & 0xff) != 0xff)
- memset((char *)pdstLine, 0, pPixmap->devKind * h);
- ptSrc.x = sx + pDraw->x;
- ptSrc.y = sy + pDraw->y;
- box.x1 = 0;
- box.y1 = 0;
- box.x2 = w;
- box.y2 = h;
- REGION_INIT(pScreen, &rgnDst, &box, 1);
- cfbDoBitblt32To8(pDraw, (DrawablePtr)pPixmap, GXcopy, &rgnDst,
- &ptSrc, planemask);
- REGION_UNINIT(pScreen, &rgnDst);
- FreeScratchPixmapHeader(pPixmap);
- }
-}
-
-void
-cfb8_32PutImage (
- DrawablePtr pDraw,
- GCPtr pGC,
- int depth,
- int x, int y, int w, int h,
- int leftPad,
- int format,
- char *pImage
-){
- if(!w || !h) return;
-
- if((pDraw->bitsPerPixel == 8) || (format != XYPixmap)){
- cfbPutImage(pDraw, pGC, depth, x, y, w, h, leftPad, format, pImage);
- return;
- } else { /* moving an 8bpp XYPixmap to a 32bpp screen */
- unsigned long oldFg, oldBg;
- XID gcv[3];
- unsigned long oldPlanemask;
- unsigned long i;
- long bytesPer;
-
- oldPlanemask = pGC->planemask;
- oldFg = pGC->fgPixel;
- oldBg = pGC->bgPixel;
- gcv[0] = ~0L;
- gcv[1] = 0;
- DoChangeGC(pGC, GCForeground | GCBackground, gcv, 0);
- bytesPer = (long)h * BitmapBytePad(w + leftPad);
-
- for (i = 0x80000000; i & 0xff000000; i >>= 1, pImage += bytesPer)
- {
- if (i & oldPlanemask)
- {
- gcv[0] = i;
- DoChangeGC(pGC, GCPlaneMask, gcv, 0);
- ValidateGC(pDraw, pGC);
- (*pGC->ops->PutImage)(pDraw, pGC, 1, x, y, w, h, leftPad,
- XYBitmap, pImage);
- }
- }
- gcv[0] = oldPlanemask;
- gcv[1] = oldFg;
- gcv[2] = oldBg;
- DoChangeGC(pGC, GCPlaneMask | GCForeground | GCBackground, gcv, 0);
- ValidateGC(pDraw, pGC);
- }
-}
-
-
-
-
-void
-cfb8_32GetSpans(
- DrawablePtr pDraw,
- int wMax,
- DDXPointPtr ppt,
- int *pwidth,
- int nspans,
- char *pDst
-){
- int pitch, i;
- CARD8 *ptr, *ptrBase;
-
- if (!cfbDrawableEnabled (pDraw))
- return;
-
- if(pDraw->bitsPerPixel == 1) {
- mfbGetSpans(pDraw, wMax, ppt, pwidth, nspans, pDst);
- return;
- }
-
- if(pDraw->depth == 24) {
- cfb32GetSpans(pDraw, wMax, ppt, pwidth, nspans, pDst);
- return;
- } else if(pDraw->bitsPerPixel == 8) {
- cfbGetSpans(pDraw, wMax, ppt, pwidth, nspans, pDst);
- return;
- }
-
- /* gotta get spans from a depth 8 window */
- cfbGetByteWidthAndPointer(pDraw, pitch, ptrBase);
- ptrBase += 3; /* point to top byte */
-
- while(nspans--) {
- ptr = ptrBase + (ppt->y * pitch) + (ppt->x << 2);
-
- for(i = *pwidth; i--; ptr += 4)
- *(pDst++) = *ptr;
-
- pDst = (char*)((long)(pDst + 3) & ~3L);
-
- ppt++; pwidth++;
- }
-}
-
-