Index: afb/afbbres.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/afb/afbbres.c,v retrieving revision 1.2 diff -u -r1.2 afbbres.c --- afb/afbbres.c 23 Apr 2004 18:59:39 -0000 1.2 +++ afb/afbbres.c 18 Aug 2004 16:20:12 -0000 @@ -79,8 +79,8 @@ register int yinc; /* increment to next scanline, in bytes */ register PixelType *addrl; /* bitmask long pointer */ register PixelType bit; /* current bit being set/cleared/etc. */ - PixelType leftbit = mask[0]; /* leftmost bit to process in new word */ - PixelType rightbit = mask[PPW-1]; /* rightmost bit to process in new word */ + PixelType leftbit = mfbGetmask(0); /* leftmost bit to process in new word */ + PixelType rightbit = mfbGetmask(PPW-1); /* rightmost bit to process in new word */ register int e3 = e2-e1; PixelType tmp; @@ -103,7 +103,7 @@ addrlbase += sizeDst; /* @@@ NEXT PLANE @@@ */ len = saveLen; e = saveE; - bit = mask[x1 & PIM]; + bit = mfbGetmask(x1 & PIM); switch (rrops[d]) { case RROP_BLACK: Index: afb/afbbresd.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/afb/afbbresd.c,v retrieving revision 1.2 diff -u -r1.2 afbbresd.c --- afb/afbbresd.c 23 Apr 2004 18:59:39 -0000 1.2 +++ afb/afbbresd.c 18 Aug 2004 16:20:12 -0000 @@ -93,8 +93,8 @@ register PixelType *addrl; register int e3 = e2-e1; register unsigned long bit; - PixelType leftbit = mask[0]; /* leftmost bit to process in new word */ - PixelType rightbit = mask[PPW-1]; /* rightmost bit to process in new word */ + PixelType leftbit = mfbGetmask(0); /* leftmost bit to process in new word */ + PixelType rightbit = mfbGetmask(PPW-1); /* rightmost bit to process in new word */ int dashIndex; int dashOffset; int dashRemaining; @@ -125,7 +125,7 @@ e = saveE; len = saveLen; - bit = mask[x1 & PIM]; + bit = mfbGetmask(x1 & PIM); rop = fgrop; if (!isDoubleDash) Index: afb/afbclip.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/afb/afbclip.c,v retrieving revision 1.2 diff -u -r1.2 afbclip.c --- afb/afbclip.c 23 Apr 2004 18:59:39 -0000 1.2 +++ afb/afbclip.c 18 Aug 2004 16:20:12 -0000 @@ -102,7 +102,7 @@ register BoxPtr prectO, prectN; BoxPtr FirstRect, rects, prectLineStart; Bool fInBox, fSame; - register PixelType mask0 = mask[0]; + register PixelType mask0 = mfbGetmask(0); PixelType *pwLine; int nWidth; Index: afb/afbhrzvert.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/afb/afbhrzvert.c,v retrieving revision 1.2 diff -u -r1.2 afbhrzvert.c --- afb/afbhrzvert.c 23 Apr 2004 18:59:39 -0000 1.2 +++ afb/afbhrzvert.c 18 Aug 2004 16:20:12 -0000 @@ -186,17 +186,17 @@ switch (rrops[d]) { case RROP_BLACK: - bitmask = rmask[x1 & PIM]; + bitmask = mfbGetrmask(x1 & PIM); Duff(len, *addrl &= bitmask; afbScanlineInc(addrl, nlwidth) ); break; case RROP_WHITE: - bitmask = mask[x1 & PIM]; + bitmask = mfbGetmask(x1 & PIM); Duff(len, *addrl |= bitmask; afbScanlineInc(addrl, nlwidth) ); break; case RROP_INVERT: - bitmask = mask[x1 & PIM]; + bitmask = mfbGetmask(x1 & PIM); Duff(len, *addrl ^= bitmask; afbScanlineInc(addrl, nlwidth) ); break; Index: afb/afbline.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/afb/afbline.c,v retrieving revision 1.2 diff -u -r1.2 afbline.c --- afb/afbline.c 23 Apr 2004 18:59:39 -0000 1.2 +++ afb/afbline.c 18 Aug 2004 16:20:12 -0000 @@ -401,13 +401,13 @@ switch(rrops[d]) { case RROP_BLACK: - *addrl &= rmask[x2 & PIM]; + *addrl &= mfbGetrmask(x2 & PIM); break; case RROP_WHITE: - *addrl |= mask[x2 & PIM]; + *addrl |= mfbGetmask(x2 & PIM); break; case RROP_INVERT: - *addrl ^= mask[x2 & PIM]; + *addrl ^= mfbGetmask(x2 & PIM); break; case RROP_NOP: break; @@ -679,14 +679,14 @@ switch (rop) { case RROP_BLACK: - *addrl &= rmask[x2 & PIM]; + *addrl &= mfbGetrmask(x2 & PIM); break; case RROP_WHITE: - *addrl |= mask[x2 & PIM]; + *addrl |= mfbGetmask(x2 & PIM); break; case RROP_INVERT: - *addrl ^= mask[x2 & PIM]; + *addrl ^= mfbGetmask(x2 & PIM); break; case RROP_NOP: Index: afb/afbmodule.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/afb/afbmodule.c,v retrieving revision 1.2 diff -u -r1.2 afbmodule.c --- afb/afbmodule.c 23 Apr 2004 18:59:39 -0000 1.2 +++ afb/afbmodule.c 18 Aug 2004 16:20:12 -0000 @@ -30,6 +30,8 @@ #include "xf86Module.h" #include "afb.h" +static MODULESETUPPROTO(afbSetup); + static XF86ModuleVersionInfo VersRec = { "afb", @@ -44,6 +46,14 @@ {0,0,0,0} /* signature, to be patched into the file by a tool */ }; -XF86ModuleData afbModuleData = { &VersRec, NULL, NULL }; +XF86ModuleData afbModuleData = { &VersRec, afbSetup, NULL }; + +static pointer +afbSetup(pointer module, pointer opts, int *errmaj, int *errmin) +{ + /* This modules requires mfb, so load it */ + return LoadSubModule(module, "mfb", NULL, NULL, NULL, NULL, + errmaj, errmin); +} #endif Index: afb/afbpixmap.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/afb/afbpixmap.c,v retrieving revision 1.2 diff -u -r1.2 afbpixmap.c --- afb/afbpixmap.c 23 Apr 2004 18:59:39 -0000 1.2 +++ afb/afbpixmap.c 18 Aug 2004 16:20:12 -0000 @@ -164,7 +164,7 @@ if (rep*width != PPW) return; - mask = endtab[width]; + mask = mfbGetendtab(width); p = (PixelType *)(pPixmap->devPrivate.ptr); @@ -206,7 +206,7 @@ while(pw < pwFinal) { t = *pw; *pw++ = SCRRIGHT(t, rw) | - (SCRLEFT(t, (PPW-rw)) & endtab[rw]); + (SCRLEFT(t, (PPW-rw)) & mfbGetendtab(rw)); } } else { /* We no longer do this. Validate doesn't try to rotate odd-size Index: afb/afbpolypnt.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/afb/afbpolypnt.c,v retrieving revision 1.2 diff -u -r1.2 afbpolypnt.c --- afb/afbpolypnt.c 23 Apr 2004 18:59:39 -0000 1.2 +++ afb/afbpolypnt.c 18 Aug 2004 16:20:12 -0000 @@ -113,7 +113,7 @@ y = ppt->y + pDrawable->y; if ((x >= pbox->x1) && (x < pbox->x2) && (y >= pbox->y1) && (y < pbox->y2)) - *afbScanline(addrl, x, y, nlwidth) &= rmask[x & PIM]; + *afbScanline(addrl, x, y, nlwidth) &= mfbGetrmask(x & PIM); } break; @@ -123,7 +123,7 @@ y = ppt->y + pDrawable->y; if ((x >= pbox->x1) && (x < pbox->x2) && (y >= pbox->y1) && (y < pbox->y2)) - *afbScanline(addrl, x, y, nlwidth) |= mask[x & PIM]; + *afbScanline(addrl, x, y, nlwidth) |= mfbGetmask(x & PIM); } break; @@ -133,7 +133,7 @@ y = ppt->y + pDrawable->y; if ((x >= pbox->x1) && (x < pbox->x2) && (y >= pbox->y1) && (y < pbox->y2)) - *afbScanline(addrl, x, y, nlwidth) ^= mask[x & PIM]; + *afbScanline(addrl, x, y, nlwidth) ^= mfbGetmask(x & PIM); } break; Index: afb/afbpushpxl.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/afb/afbpushpxl.c,v retrieving revision 1.2 diff -u -r1.2 afbpushpxl.c --- afb/afbpushpxl.c 23 Apr 2004 18:59:39 -0000 1.2 +++ afb/afbpushpxl.c 18 Aug 2004 16:20:12 -0000 @@ -184,7 +184,7 @@ pwEnd = pwLineStart + dxDivPPW; while(pw < pwEnd) { w = *pw; - mask = endtab[1]; + mask = mfbGetendtab(1); for(ib = 0; ib < PPW; ib++) { if(w & mask) { if(!fInBox) { @@ -214,7 +214,7 @@ if(ibEnd) { /* Process final partial word on line */ w = *pw; - mask = endtab[1]; + mask = mfbGetendtab(1); for(ib = 0; ib < ibEnd; ib++) { if(w & mask) { if(!fInBox) { Index: afb/afbtegblt.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/afb/afbtegblt.c,v retrieving revision 1.2 diff -u -r1.2 afbtegblt.c --- afb/afbtegblt.c 23 Apr 2004 18:59:39 -0000 1.2 +++ afb/afbtegblt.c 18 Aug 2004 16:20:12 -0000 @@ -296,7 +296,7 @@ widthGlyphs = widthGlyph * PGSZB; #ifdef USE_LEFTBITS - glyphMask = endtab[widthGlyph]; + glyphMask = mfbGetendtab(widthGlyph); glyphBytes = GLYPHWIDTHBYTESPADDED(*ppci); #endif Index: cfb/Imakefile.inc =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/Imakefile.inc,v retrieving revision 1.3 diff -u -r1.3 Imakefile.inc --- cfb/Imakefile.inc 26 Apr 2004 02:39:58 -0000 1.3 +++ cfb/Imakefile.inc 18 Aug 2004 16:20:12 -0000 @@ -65,6 +65,7 @@ XFMODOBJ = cfbmodule.o #endif +XCOMM THIS IS STUPID #if !(defined(IHaveModules) && defined(LinkDirectory)) CFBCMAP = cfbcmap.o #endif @@ -91,7 +92,7 @@ cfbtileoddC.o cfbtileoddG.o cfbtile32C.o cfbtile32G.o \ cfbfillsp.o cfbsetsp.o cfbscrinit.o cfballpriv.o \ cfbpntwin.o cfbmskbits.o cfbpixmap.o \ - $(CFBCMAP) cfbzerarcC.o cfbzerarcX.o cfbzerarcG.o \ + cfbcmap.o cfbzerarcC.o cfbzerarcX.o cfbzerarcG.o \ cfbfillarcC.o cfbfillarcG.o \ cfbigblt8.o cfbglblt8.o cfbtegblt.o cfbbstore.o \ cfbpolypnt.o \ Index: cfb/cfballpriv.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfballpriv.c,v retrieving revision 1.2 diff -u -r1.2 cfballpriv.c --- cfb/cfballpriv.c 23 Apr 2004 19:00:12 -0000 1.2 +++ cfb/cfballpriv.c 18 Aug 2004 16:20:12 -0000 @@ -42,7 +42,7 @@ #include "cfbmskbits.h" #include "mibstore.h" -#if PSZ==8 +#if 1 || PSZ==8 int cfbWindowPrivateIndex; int cfbGCPrivateIndex; #endif Index: cfb/cfbbitblt.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfbbitblt.c,v retrieving revision 1.2 diff -u -r1.2 cfbbitblt.c --- cfb/cfbbitblt.c 23 Apr 2004 19:00:12 -0000 1.2 +++ cfb/cfbbitblt.c 18 Aug 2004 16:20:13 -0000 @@ -973,15 +973,15 @@ #else /* PSZ == 8 */ #define mfbmaskbits(x, w, startmask, endmask, nlw) \ - startmask = starttab[(x)&0x1f]; \ - endmask = endtab[((x)+(w)) & 0x1f]; \ + startmask = mfbGetstarttab((x)&0x1f); \ + endmask = mfbGetendtab(((x)+(w)) & 0x1f); \ if (startmask) \ nlw = (((w) - (32 - ((x)&0x1f))) >> 5); \ else \ nlw = (w) >> 5; #define mfbmaskpartialbits(x, w, mask) \ - mask = partmasks[(x)&0x1f][(w)&0x1f]; + mask = mfbGetpartmasks((x)&0x1f,(w)&0x1f); #define LeftMost 0 #define StepBit(bit, inc) ((bit) += (inc)) @@ -1389,7 +1389,7 @@ oldalu = pGC->alu; if ((pGC->fgPixel & 1) == 0 && (pGC->bgPixel&1) == 1) - pGC->alu = InverseAlu[pGC->alu]; + pGC->alu = mfbGetInverseAlu(pGC->alu); else if ((pGC->fgPixel & 1) == (pGC->bgPixel & 1)) pGC->alu = mfbReduceRop(pGC->alu, pGC->fgPixel); ret = cfbCopyPlaneReduce(pSrcDrawable, pDstDrawable, Index: cfb/cfbcppl.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfbcppl.c,v retrieving revision 1.2 diff -u -r1.2 cfbcppl.c --- cfb/cfbcppl.c 23 Apr 2004 19:00:12 -0000 1.2 +++ cfb/cfbcppl.c 18 Aug 2004 16:20:13 -0000 @@ -245,15 +245,15 @@ #else /* PSZ == 8 */ #define mfbmaskbits(x, w, startmask, endmask, nlw) \ - startmask = starttab[(x)&0x1f]; \ - endmask = endtab[((x)+(w)) & 0x1f]; \ + startmask = mfbGetstarttab((x)&0x1f); \ + endmask = mfbGetendtab(((x)+(w)) & 0x1f); \ if (startmask) \ nlw = (((w) - (32 - ((x)&0x1f))) >> 5); \ else \ nlw = (w) >> 5; #define mfbmaskpartialbits(x, w, mask) \ - mask = partmasks[(x)&0x1f][(w)&0x1f]; + mask = mfbGetpartmasks((x)&0x1f,(w)&0x1f); #define LeftMost 0 #define StepBit(bit, inc) ((bit) += (inc)) Index: cfb/cfbgc.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfbgc.c,v retrieving revision 1.2 diff -u -r1.2 cfbgc.c --- cfb/cfbgc.c 23 Apr 2004 19:00:12 -0000 1.2 +++ cfb/cfbgc.c 18 Aug 2004 16:20:13 -0000 @@ -85,11 +85,13 @@ # define usePolyGlyphBlt miPolyGlyphBlt #endif +void cfbUnPushPixels (GCPtr, PixmapPtr, DrawablePtr, int, int, int, int); + #ifdef FOUR_BIT_CODE # define usePushPixels cfbPushPixels8 #else #ifndef LOWMEMFTPT -# define usePushPixels mfbPushPixels +# define usePushPixels cfbUnPushPixels #else # define usePushPixels miPushPixels #endif /* ifndef LOWMEMFTPT */ @@ -284,6 +286,14 @@ pGC->clientClip = NULL; pGC->clientClipType = CT_NONE; + if (cfbNonTEOps.PushPixels == cfbUnPushPixels) + { + cfbTEOps1Rect.PushPixels = mfbPushPixelsWeak(); + cfbNonTEOps1Rect.PushPixels = mfbPushPixelsWeak(); + cfbTEOps.PushPixels = mfbPushPixelsWeak(); + cfbNonTEOps.PushPixels = mfbPushPixelsWeak(); + } + /* * some of the output primitives aren't really necessary, since they * will be filled in ValidateGC because of dix/CreateGC() setting all @@ -767,7 +777,7 @@ #endif #ifdef FOUR_BIT_CODE #ifndef LOWMEMFTPT - pGC->ops->PushPixels = mfbPushPixels; + pGC->ops->PushPixels = mfbPushPixelsWeak(); #else pGC->ops->PushPixels = miPushPixels; #endif /* ifndef LOWMEMFTPT */ @@ -789,3 +799,17 @@ } } } + +/* + * this is never called, it just exists to have its address + * taken in mfbCreateGC. + */ +static void +cfbUnPushPixels (pGC, pBitmap, pDrawable, dx, dy, xOrg, yOrg) + GCPtr pGC; + PixmapPtr pBitmap; + DrawablePtr pDrawable; + int dx, dy, xOrg, yOrg; +{ + return; +} Index: cfb/cfbglblt8.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfbglblt8.c,v retrieving revision 1.2 diff -u -r1.2 cfbglblt8.c --- cfb/cfbglblt8.c 23 Apr 2004 19:00:12 -0000 1.2 +++ cfb/cfbglblt8.c 18 Aug 2004 16:20:13 -0000 @@ -64,7 +64,6 @@ #ifdef USE_LEFTBITS typedef unsigned char *glyphPointer; -extern CfbBits endtab[]; #define GlyphBits(bits,width,dst) getleftbits(bits,width,dst); \ (dst) &= widthMask; \ @@ -251,7 +250,7 @@ #ifdef USE_LEFTBITS w = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing; widthGlyph = PADGLYPHWIDTHBYTES(w); - widthMask = endtab[w]; + widthMask = mfbGetendtab(w); #endif do { dst = dstLine; @@ -380,7 +379,7 @@ #ifdef USE_LEFTBITS w = pci->metrics.rightSideBearing - pci->metrics.leftSideBearing; widthGlyph = PADGLYPHWIDTHBYTES(w); - widthMask = endtab[w]; + widthMask = mfbGetendtab(w); #endif switch (cfb8ComputeClipMasks32 (pBox, numRects, xG, yG, w, hTmp, clips)) { Index: cfb/cfbmap.h =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfbmap.h,v retrieving revision 1.2 diff -u -r1.2 cfbmap.h --- cfb/cfbmap.h 23 Apr 2004 19:00:12 -0000 1.2 +++ cfb/cfbmap.h 18 Aug 2004 16:20:13 -0000 @@ -94,13 +94,17 @@ #undef cfbFillSpanTileOddGeneral #undef cfbFinishScreenInit #undef cfbGCFuncs +#undef cfbGCPrivateIndex #undef cfbGetImage #undef cfbGetScreenPixmap #undef cfbGetSpans #undef cfbHorzS #undef cfbImageGlyphBlt8 +#undef cfbInitializeColormap +#undef cfbInstallColormap #undef cfbLineSD #undef cfbLineSS +#undef cfbListInstalledColormaps #undef cfbMapWindow #undef cfbMatchCommon #undef cfbNonTEOps @@ -116,6 +120,7 @@ #undef cfbPositionWindow #undef cfbPutImage #undef cfbReduceRasterOp +#undef cfbResolveColor #undef cfbRestoreAreas #undef cfbSaveAreas #undef cfbScreenInit @@ -136,11 +141,13 @@ #undef cfbTEOps1Rect #undef cfbTile32FSCopy #undef cfbTile32FSGeneral +#undef cfbUninstallColormap #undef cfbUnmapWindow #undef cfbUnnaturalStippleFS #undef cfbUnnaturalTileFS #undef cfbValidateGC #undef cfbVertS +#undef cfbWindowPrivateIndex #undef cfbXRotatePixmap #undef cfbYRotatePixmap #undef cfbZeroPolyArcSS8Copy @@ -263,13 +270,17 @@ #define cfbFillSpanTileOddGeneral CFBNAME(FillSpanTileOddGeneral) #define cfbFinishScreenInit CFBNAME(FinishScreenInit) #define cfbGCFuncs CFBNAME(GCFuncs) +#define cfbGCPrivateIndex CFBNAME(GCPrivateIndex) #define cfbGetImage CFBNAME(GetImage) #define cfbGetScreenPixmap CFBNAME(GetScreenPixmap) #define cfbGetSpans CFBNAME(GetSpans) #define cfbHorzS CFBNAME(HorzS) #define cfbImageGlyphBlt8 CFBNAME(ImageGlyphBlt8) +#define cfbInitializeColormap CFBNAME(InitializeColormap) +#define cfbInstallColormap CFBNAME(InstallColormap) #define cfbLineSD CFBNAME(LineSD) #define cfbLineSS CFBNAME(LineSS) +#define cfbListInstalledColormaps CFBNAME(ListInstalledColormaps) #define cfbMapWindow CFBNAME(MapWindow) #define cfbMatchCommon CFBNAME(MatchCommon) #define cfbNonTEOps CFBNAME(NonTEOps) @@ -285,6 +296,7 @@ #define cfbPositionWindow CFBNAME(PositionWindow) #define cfbPutImage CFBNAME(PutImage) #define cfbReduceRasterOp CFBNAME(ReduceRasterOp) +#define cfbResolveColor CFBNAME(ResolveColor) #define cfbRestoreAreas CFBNAME(RestoreAreas) #define cfbSaveAreas CFBNAME(SaveAreas) #define cfbScreenInit CFBNAME(ScreenInit) @@ -305,11 +317,13 @@ #define cfbTEOps1Rect CFBNAME(TEOps1Rect) #define cfbTile32FSCopy CFBNAME(Tile32FSCopy) #define cfbTile32FSGeneral CFBNAME(Tile32FSGeneral) +#define cfbUninstallColormap CFBNAME(UninstallColormap) #define cfbUnmapWindow CFBNAME(UnmapWindow) #define cfbUnnaturalStippleFS CFBNAME(UnnaturalStippleFS) #define cfbUnnaturalTileFS CFBNAME(UnnaturalTileFS) #define cfbValidateGC CFBNAME(ValidateGC) #define cfbVertS CFBNAME(VertS) +#define cfbWindowPrivateIndex CFBNAME(WindowPrivateIndex) #define cfbXRotatePixmap CFBNAME(XRotatePixmap) #define cfbYRotatePixmap CFBNAME(YRotatePixmap) #define cfbZeroPolyArcSS8Copy CFBNAME(ZeroPolyArcSSCopy) Index: cfb/cfbpixmap.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfbpixmap.c,v retrieving revision 1.2 diff -u -r1.2 cfbpixmap.c --- cfb/cfbpixmap.c 23 Apr 2004 19:00:12 -0000 1.2 +++ cfb/cfbpixmap.c 18 Aug 2004 16:20:13 -0000 @@ -60,8 +60,6 @@ #include "cfb.h" #include "cfbmskbits.h" -extern CfbBits endtab[]; - PixmapPtr cfbCreatePixmap (pScreen, width, height, depth) ScreenPtr pScreen; @@ -160,7 +158,7 @@ if (rep*width != PGSZ) return; - mask = endtab[width]; + mask = mfbGetendtab(width); p = (CfbBits *)(pPixmap->devPrivate.ptr); for (h=0; h < pPixmap->drawable.height; h++) Index: cfb/cfbscrinit.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfbscrinit.c,v retrieving revision 1.2 diff -u -r1.2 cfbscrinit.c --- cfb/cfbscrinit.c 23 Apr 2004 19:00:12 -0000 1.2 +++ cfb/cfbscrinit.c 18 Aug 2004 16:20:13 -0000 @@ -99,7 +99,7 @@ pScreen->defColormap = FakeClientID(0); /* let CreateDefColormap do whatever it wants for pixels */ pScreen->blackPixel = pScreen->whitePixel = (Pixel) 0; - pScreen->QueryBestSize = mfbQueryBestSize; + pScreen->QueryBestSize = mfbQueryBestSizeWeak(); /* SaveScreen */ pScreen->GetImage = cfbGetImage; pScreen->GetSpans = cfbGetSpans; @@ -114,8 +114,8 @@ pScreen->CopyWindow = cfbCopyWindow; pScreen->CreatePixmap = cfbCreatePixmap; pScreen->DestroyPixmap = cfbDestroyPixmap; - pScreen->RealizeFont = mfbRealizeFont; - pScreen->UnrealizeFont = mfbUnrealizeFont; + pScreen->RealizeFont = mfbRealizeFontWeak(); + pScreen->UnrealizeFont = mfbUnrealizeFontWeak(); pScreen->CreateGC = cfbCreateGC; pScreen->CreateColormap = cfbInitializeColormap; pScreen->DestroyColormap = DestroyColormapNoop; @@ -124,7 +124,7 @@ pScreen->ListInstalledColormaps = cfbListInstalledColormaps; pScreen->StoreColors = StoreColorsNoop; pScreen->ResolveColor = cfbResolveColor; - pScreen->BitmapToRegion = mfbPixmapToRegion; + pScreen->BitmapToRegion = mfbPixmapToRegionWeak(); mfbRegisterCopyPlaneProc (pScreen, cfbCopyPlane); return TRUE; Index: cfb/cfbtab.h =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfbtab.h,v retrieving revision 1.2 diff -u -r1.2 cfbtab.h --- cfb/cfbtab.h 23 Apr 2004 19:00:12 -0000 1.2 +++ cfb/cfbtab.h 18 Aug 2004 16:20:13 -0000 @@ -4,7 +4,9 @@ #define _CFBTAB_H_ /* prototypes */ +#if 0 extern int starttab[32], endtab[32]; extern unsigned int partmasks[32][32]; +#endif #endif /* _CFBTAB_H_ */ Index: cfb/cfbteblt8.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfbteblt8.c,v retrieving revision 1.2 diff -u -r1.2 cfbteblt8.c --- cfb/cfbteblt8.c 23 Apr 2004 19:00:12 -0000 1.2 +++ cfb/cfbteblt8.c 18 Aug 2004 16:20:14 -0000 @@ -160,7 +160,6 @@ #endif #ifdef USE_LEFTBITS -extern CfbBits endtab[]; #define IncChar(c) (c = (glyphPointer) (((char *) c) + glyphBytes)) @@ -408,7 +407,7 @@ #endif #ifdef USE_LEFTBITS - glyphMask = endtab[widthGlyph]; + glyphMask = mfbGetendtab(widthGlyph); glyphBytes = GLYPHWIDTHBYTESPADDED(*ppci); #endif Index: cfb/cfbunmap.h =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/cfb/cfbunmap.h,v retrieving revision 1.1.1.2 diff -u -r1.1.1.2 cfbunmap.h --- cfb/cfbunmap.h 25 Nov 2003 19:28:27 -0000 1.1.1.2 +++ cfb/cfbunmap.h 18 Aug 2004 16:20:14 -0000 @@ -93,13 +93,17 @@ #undef cfbFillSpanTileOddGeneral #undef cfbFinishScreenInit #undef cfbGCFuncs +#undef cfbGCPrivateIndex #undef cfbGetImage #undef cfbGetScreenPixmap #undef cfbGetSpans #undef cfbHorzS #undef cfbImageGlyphBlt8 +#undef cfbInitializeColormap +#undef cfbInstallColormap #undef cfbLineSD #undef cfbLineSS +#undef cfbListInstalledColormaps #undef cfbMapWindow #undef cfbMatchCommon #undef cfbNonTEOps @@ -115,6 +119,7 @@ #undef cfbPositionWindow #undef cfbPutImage #undef cfbReduceRasterOp +#undef cfbResolveColor #undef cfbRestoreAreas #undef cfbSaveAreas #undef cfbScreenInit @@ -135,11 +140,13 @@ #undef cfbTEOps1Rect #undef cfbTile32FSCopy #undef cfbTile32FSGeneral +#undef cfbUninstallColormap #undef cfbUnmapWindow #undef cfbUnnaturalStippleFS #undef cfbUnnaturalTileFS #undef cfbValidateGC #undef cfbVertS +#undef cfbWindowPrivateIndex #undef cfbXRotatePixmap #undef cfbYRotatePixmap #undef cfbZeroPolyArcSS8Copy Index: mfb/maskbits.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/mfb/maskbits.c,v retrieving revision 1.3 diff -u -r1.3 maskbits.c --- mfb/maskbits.c 30 Jul 2004 20:30:57 -0000 1.3 +++ mfb/maskbits.c 18 Aug 2004 16:20:14 -0000 @@ -1053,5 +1053,9 @@ { O,O,O,I, }, /* set 0xf 1 */ }; +mergeRopPtr mergeGetRopBits(int i) { + return &mergeRopBits[i]; +} + #undef O #undef I Index: mfb/maskbits.h =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/mfb/maskbits.h,v retrieving revision 1.3 diff -u -r1.3 maskbits.h --- mfb/maskbits.h 30 Jul 2004 20:30:57 -0000 1.3 +++ mfb/maskbits.h 18 Aug 2004 16:20:14 -0000 @@ -396,7 +396,7 @@ else \ { \ register int d = PPW-(x); \ - *(pdst) = (*(pdst) & endtab[x]) | (SCRRIGHT((src), x)); \ + *(pdst) = (*(pdst) & mfbGetendtab(x)) | (SCRRIGHT((src), x)); \ (pdst)[1] = ((pdst)[1] & mfbGetstarttab(n)) | \ (SCRLEFT(src, d) & mfbGetendtab(n)); \ } \ Index: mfb/mergerop.h =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/mfb/mergerop.h,v retrieving revision 1.2 diff -u -r1.2 mergerop.h --- mfb/mergerop.h 23 Apr 2004 19:54:25 -0000 1.2 +++ mfb/mergerop.h 18 Aug 2004 16:20:14 -0000 @@ -39,6 +39,7 @@ } mergeRopRec, *mergeRopPtr; extern mergeRopRec mergeRopBits[16]; +extern mergeRopPtr mergeGetRopBits(int i); #if defined(PPW) && defined(PGSZ) && (PPW != PGSZ) /* cfb */ #define DeclareMergeRop() MfbBits _ca1 = 0, _cx1 = 0, _ca2 = 0, _cx2 = 0; @@ -59,7 +60,7 @@ MfbBits _pm; \ mergeRopPtr _bits; \ _pm = PFILL(pm); \ - _bits = &mergeRopBits[alu]; \ + _bits = mergeGetRopBits(alu); \ _ca1 = _bits->ca1 & _pm; \ _cx1 = _bits->cx1 | ~_pm; \ _ca2 = _bits->ca2 & _pm; \ @@ -70,7 +71,7 @@ #define InitializeMergeRop24(alu,pm) {\ register int i; \ register MfbBits _pm = (pm) & 0xFFFFFF; \ - mergeRopPtr _bits = &mergeRopBits[alu]; \ + mergeRopPtr _bits = mergeGetRopBits(alu); \ MfbBits _bits_ca1 = _bits->ca1; \ MfbBits _bits_cx1 = _bits->cx1; \ MfbBits _bits_ca2 = _bits->ca2; \ @@ -88,7 +89,7 @@ #define InitializeMergeRop24(alu,pm) {\ register int i; \ register MfbBits _pm = (pm) & cfbmask[0]; \ - mergeRopPtr _bits = &mergeRopBits[alu]; \ + mergeRopPtr _bits = mergeGetRopBits(alu); \ MfbBits _bits_ca1 = _bits->ca1 & cfbmask[0]; \ MfbBits _bits_cx1 = _bits->cx1 & cfbmask[0]; \ MfbBits _bits_ca2 = _bits->ca2 & cfbmask[0]; \ @@ -111,7 +112,7 @@ #else /* mfb */ #define InitializeMergeRop(alu,pm) {\ mergeRopPtr _bits; \ - _bits = &mergeRopBits[alu]; \ + _bits = mergeGetRopBits(alu); \ _ca1 = _bits->ca1; \ _cx1 = _bits->cx1; \ _ca2 = _bits->ca2; \ @@ -328,7 +329,7 @@ #define MROP_DECLARE_REG() register MROP_DECLARE() #define MROP_INITIALIZE(alu,pm) { \ mergeRopPtr _bits; \ - _bits = &mergeRopBits[alu]; \ + _bits = mergeGetRopBits(alu); \ _ca1 = _bits->ca1; \ _cx1 = _bits->cx1; \ } Index: mfb/mfb.h =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/mfb/mfb.h,v retrieving revision 1.3 diff -u -r1.3 mfb.h --- mfb/mfb.h 30 Jul 2004 20:30:57 -0000 1.3 +++ mfb/mfb.h 18 Aug 2004 16:20:15 -0000 @@ -64,7 +64,7 @@ #include "mibstore.h" extern int InverseAlu[]; - +extern int mfbGetInverseAlu(int i); /* warning: PixelType definition duplicated in maskbits.h */ #ifndef PixelType @@ -229,6 +229,13 @@ extern RegionPtr mfbPixmapToRegion( PixmapPtr /*pPix*/ ); + +#ifndef MFB_PROTOTYPES_ONLY +typedef RegionPtr (*mfbPixmapToRegionProc)(PixmapPtr); + +extern mfbPixmapToRegionProc *mfbPixmapToRegionWeak(void); +#endif + /* mfbcmap.c */ extern int mfbListInstalledColormaps( @@ -371,6 +378,15 @@ ScreenPtr /*pscr*/, FontPtr /*pFont*/ ); + +#ifndef MFB_PROTOTYPES_ONLY +typedef void (*mfbRealizeFontProc)(ScreenPtr, FontPtr); +typedef void (*mfbUnrealizeFontProc)(ScreenPtr, FontPtr); + +extern mfbRealizeFontProc *mfbRealizeFontWeak(void); +extern mfbUnrealizeFontProc *mfbUnrealizeFontWeak(void); +#endif + /* mfbgc.c */ extern Bool mfbCreateGC( @@ -490,6 +506,14 @@ unsigned short * /*pheight*/, ScreenPtr /*pScreen*/ ); + +#ifndef MFB_PROTOTYPES_ONLY +typedef void (*mfbQueryBestSizeProc)(int, unsigned short *, unsigned short *, + ScreenPtr); + +extern mfbQueryBestSizeProc *mfbQueryBestSizeWeak(void); +#endif + /* mfbpablack.c */ extern void mfbSolidBlackArea( @@ -680,6 +704,14 @@ int /*xOrg*/, int /*yOrg*/ ); + +#ifndef MFB_PROTOTYPES_ONLY +typedef void (*mfbPushPixelsProc)(GCPtr, PixmapPtr, DrawablePtr, int, int, + int, int); + +extern mfbPushPixelsProc *mfbPushPixelsWeak(void); +#endif + /* mfbscrclse.c */ extern Bool mfbCloseScreen( Index: mfb/mfbclip.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/mfb/mfbclip.c,v retrieving revision 1.2 diff -u -r1.2 mfbclip.c --- mfb/mfbclip.c 23 Apr 2004 19:54:25 -0000 1.2 +++ mfb/mfbclip.c 18 Aug 2004 16:20:15 -0000 @@ -268,3 +268,9 @@ #endif return(pReg); } + +mfbPixmapToRegionProc * +mfbPixmapToRegionWeak(void) +{ + return mfbPixmapToRegion; +} Index: mfb/mfbfont.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/mfb/mfbfont.c,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 mfbfont.c --- mfb/mfbfont.c 14 Nov 2003 16:48:57 -0000 1.1.1.1 +++ mfb/mfbfont.c 18 Aug 2004 16:20:15 -0000 @@ -62,6 +62,12 @@ return (TRUE); } +mfbRealizeFontProc * +mfbRealizeFontWeak(void) +{ + return mfbRealizeFont; +} + /*ARGSUSED*/ Bool mfbUnrealizeFont( pscr, pFont) @@ -70,3 +76,9 @@ { return (TRUE); } + +mfbUnrealizeFontProc * +mfbUnrealizeFontWeak(void) +{ + return mfbUnrealizeFont; +} Index: mfb/mfbgc.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/mfb/mfbgc.c,v retrieving revision 1.2 diff -u -r1.2 mfbgc.c --- mfb/mfbgc.c 23 Apr 2004 19:54:25 -0000 1.2 +++ mfb/mfbgc.c 18 Aug 2004 16:20:15 -0000 @@ -1454,6 +1454,12 @@ GXset }; +int mfbGetInverseAlu(i) + int i; +{ + return InverseAlu[i]; +} + int mfbReduceRop(alu, src) register int alu; Index: mfb/mfbmisc.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/mfb/mfbmisc.c,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 mfbmisc.c --- mfb/mfbmisc.c 14 Nov 2003 16:48:57 -0000 1.1.1.1 +++ mfb/mfbmisc.c 18 Aug 2004 16:20:15 -0000 @@ -89,3 +89,8 @@ } } +mfbQueryBestSizeProc * +mfbQueryBestSizeWeak(void) +{ + return mfbQueryBestSize; +} Index: mfb/mfbpushpxl.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/mfb/mfbpushpxl.c,v retrieving revision 1.2 diff -u -r1.2 mfbpushpxl.c --- mfb/mfbpushpxl.c 23 Apr 2004 19:54:25 -0000 1.2 +++ mfb/mfbpushpxl.c 18 Aug 2004 16:20:15 -0000 @@ -276,3 +276,8 @@ (*pGC->ops->FillSpans)(pDrawable, pGC, ipt, pt, width, TRUE); } } + +mfbPushPixelsProc *mfbPushPixelsWeak(void) +{ + return mfbPushPixels; +}