summaryrefslogtreecommitdiff
path: root/src/ffb_stubs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ffb_stubs.c')
-rw-r--r--src/ffb_stubs.c548
1 files changed, 0 insertions, 548 deletions
diff --git a/src/ffb_stubs.c b/src/ffb_stubs.c
deleted file mode 100644
index 2fdd746..0000000
--- a/src/ffb_stubs.c
+++ /dev/null
@@ -1,548 +0,0 @@
-/*
- * Acceleration for the Creator and Creator3D framebuffer - Unaccelerated stuff.
- *
- * Copyright (C) 1999 David S. Miller (davem@redhat.com)
- * Copyright (C) 1999 Jakub Jelinek (jakub@redhat.com)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * DAVID MILLER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_stubs.c,v 1.1 2000/05/18 23:21:38 dawes Exp $ */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "ffb.h"
-#include "ffb_regs.h"
-#include "ffb_rcache.h"
-#include "ffb_fifo.h"
-
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb32.h"
-
-/* CFB is just too clever for it's own good. There are paths
- * in cfb for 8bpp that just arbitrarily change the ROP of the
- * GC and assume it just works even without revalidating that
- * GC. So for now we turn this stuff off. -DaveM
- */
-#undef USE_SFB_TRICKS
-
-#ifdef USE_SFB_TRICKS
-/* Sorry, have to expose some CFB internals to get the stubs right. -DaveM */
-struct cfb_gcstate {
- unsigned long pmask;
- int alu, rop, and, xor;
-};
-
-#define CFB_STATE_SAVE(__statep, __gcp, __privp) \
-do { (__statep)->pmask = (__gcp)->planemask; \
- (__statep)->alu = (__gcp)->alu; \
- (__statep)->rop = (__privp)->rop; \
- (__statep)->and = (__privp)->and; \
- (__statep)->xor = (__privp)->xor; \
-} while(0)
-
-#define CFB_STATE_RESTORE(__statep, __gcp, __privp) \
-do { (__gcp)->planemask = (__statep)->pmask; \
- (__gcp)->alu = (__statep)->alu; \
- (__privp)->rop = (__statep)->rop; \
- (__privp)->and = (__statep)->and; \
- (__privp)->xor = (__statep)->xor; \
-} while(0)
-
-#define CFB_STATE_SET_SFB(__gcp, __privp) \
-do { (__gcp)->alu = GXcopy; \
- (__gcp)->planemask = (((__gcp)->depth==8)?0xff:0xffffff); \
- (__privp)->rop = GXcopy; \
- (__privp)->and = 0; \
- (__privp)->xor = (__gcp)->fgPixel; \
-} while(0)
-#endif
-
-/* Stubs so we can wait for the raster processor to
- * unbusy itself before we let the cfb code write
- * directly to the framebuffer.
- */
-void
-CreatorSolidSpansGeneralStub (DrawablePtr pDrawable, GCPtr pGC,
- int nInit, DDXPointPtr pptInit,
- int *pwidthInit, int fSorted)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8)
- cfbSolidSpansGeneral(pDrawable, pGC, nInit, pptInit,
- pwidthInit, fSorted);
- else
- cfb32SolidSpansGeneral(pDrawable, pGC, nInit, pptInit,
- pwidthInit, fSorted);
-}
-
-void
-CreatorSegmentSSStub (DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment *pSeg)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8) {
- if (devPriv->oneRect &&
- ((pDrawable->x >= pGC->pScreen->width - 32768) &&
- (pDrawable->y >= pGC->pScreen->height - 32768)))
- cfb8SegmentSS1Rect(pDrawable, pGC, nseg, pSeg);
- else
- cfbSegmentSS(pDrawable, pGC, nseg, pSeg);
- } else
- cfb32SegmentSS(pDrawable, pGC, nseg, pSeg);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8) {
- if (devPriv->oneRect &&
- ((pDrawable->x >= pGC->pScreen->width - 32768) &&
- (pDrawable->y >= pGC->pScreen->height - 32768)))
- cfb8SegmentSS1Rect(pDrawable, pGC, nseg, pSeg);
- else
- cfbSegmentSS(pDrawable, pGC, nseg, pSeg);
- } else
- cfb32SegmentSS(pDrawable, pGC, nseg, pSeg);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-CreatorLineSSStub (DrawablePtr pDrawable, GCPtr pGC,
- int mode, int npt, DDXPointPtr ppt)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8) {
- if (devPriv->oneRect &&
- ((pDrawable->x >= pGC->pScreen->width - 32768) &&
- (pDrawable->y >= pGC->pScreen->height - 32768)))
- cfb8LineSS1Rect(pDrawable, pGC, mode, npt, ppt);
- else
- cfbLineSS(pDrawable, pGC, mode, npt, ppt);
- } else
- cfb32LineSS(pDrawable, pGC, mode, npt, ppt);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8) {
- if (devPriv->oneRect &&
- ((pDrawable->x >= pGC->pScreen->width - 32768) &&
- (pDrawable->y >= pGC->pScreen->height - 32768)))
- cfb8LineSS1Rect(pDrawable, pGC, mode, npt, ppt);
- else
- cfbLineSS(pDrawable, pGC, mode, npt, ppt);
- } else
- cfb32LineSS(pDrawable, pGC, mode, npt, ppt);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-CreatorSegmentSDStub (DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment *pSeg)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8)
- cfbSegmentSD(pDrawable, pGC, nseg, pSeg);
- else
- cfb32SegmentSD(pDrawable, pGC, nseg, pSeg);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8)
- cfbSegmentSD(pDrawable, pGC, nseg, pSeg);
- else
- cfb32SegmentSD(pDrawable, pGC, nseg, pSeg);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-CreatorLineSDStub (DrawablePtr pDrawable, GCPtr pGC,
- int mode, int npt, DDXPointPtr ppt)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8)
- cfbLineSD(pDrawable, pGC, mode, npt, ppt);
- else
- cfb32LineSD(pDrawable, pGC, mode, npt, ppt);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8)
- cfbLineSD(pDrawable, pGC, mode, npt, ppt);
- else
- cfb32LineSD(pDrawable, pGC, mode, npt, ppt);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-CreatorPolyGlyphBlt8Stub (DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, unsigned int nglyph, CharInfoPtr *ppci,
- pointer pglyphBase)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8)
- cfbPolyGlyphBlt8(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- else
- cfb32PolyGlyphBlt8(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8)
- cfbPolyGlyphBlt8(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- else
- cfb32PolyGlyphBlt8(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-CreatorImageGlyphBlt8Stub (DrawablePtr pDrawable, GCPtr pGC,
- int x, int y, unsigned int nglyph,
- CharInfoPtr *ppci, pointer pglyphBase)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8)
- cfbImageGlyphBlt8(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- else
- cfb32ImageGlyphBlt8(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8)
- cfbImageGlyphBlt8(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- else
- cfb32ImageGlyphBlt8(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-CreatorTile32FSCopyStub(DrawablePtr pDrawable, GCPtr pGC,
- int nInit, DDXPointPtr pptInit,
- int *pwidthInit, int fSorted)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8)
- cfbTile32FSCopy(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- else
- cfb32Tile32FSCopy(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8)
- cfbTile32FSCopy(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- else
- cfb32Tile32FSCopy(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-CreatorTile32FSGeneralStub(DrawablePtr pDrawable, GCPtr pGC,
- int nInit, DDXPointPtr pptInit,
- int *pwidthInit, int fSorted)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8)
- cfbTile32FSGeneral(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- else
- cfb32Tile32FSGeneral(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8)
- cfbTile32FSGeneral(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- else
- cfb32Tile32FSGeneral(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-CreatorUnnaturalTileFSStub(DrawablePtr pDrawable, GCPtr pGC,
- int nInit, DDXPointPtr pptInit,
- int *pwidthInit, int fSorted)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8)
- cfbUnnaturalTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- else
- cfb32UnnaturalTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8)
- cfbUnnaturalTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- else
- cfb32UnnaturalTileFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-Creator8Stipple32FSStub(DrawablePtr pDrawable, GCPtr pGC,
- int nInit, DDXPointPtr pptInit,
- int *pwidthInit, int fSorted)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- cfb8Stipple32FS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- cfb8Stipple32FS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-CreatorUnnaturalStippleFSStub(DrawablePtr pDrawable, GCPtr pGC,
- int nInit, DDXPointPtr pptInit,
- int *pwidthInit, int fSorted)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8)
- cfbUnnaturalStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- else
- cfb32UnnaturalStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8)
- cfbUnnaturalStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- else
- cfb32UnnaturalStippleFS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-Creator8OpaqueStipple32FSStub(DrawablePtr pDrawable, GCPtr pGC,
- int nInit, DDXPointPtr pptInit,
- int *pwidthInit, int fSorted)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- cfb8OpaqueStipple32FS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- cfb8OpaqueStipple32FS(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}
-
-void
-CreatorPolyFillRectStub(DrawablePtr pDrawable, GCPtr pGC,
- int nrectFill, xRectangle *prectInit)
-{
- WindowPtr pWin = (WindowPtr) pDrawable;
- FFBPtr pFfb = GET_FFB_FROM_SCREEN (pDrawable->pScreen);
- ffb_fbcPtr ffb = pFfb->regs;
-#ifdef USE_SFB_TRICKS
- struct cfb_gcstate cfb_state;
- cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC);
-#endif
-
- FFBLOG(("STUB(%s:%d)\n", __FILE__, __LINE__));
-#ifndef USE_SFB_TRICKS
- FFB_ATTR_SFB_VAR_WIN(pFfb, 0xffffffff, GXcopy, pWin);
- FFBWait(pFfb, ffb);
- if (pGC->depth == 8)
- cfbPolyFillRect(pDrawable, pGC, nrectFill, prectInit);
- else
- cfb32PolyFillRect(pDrawable, pGC, nrectFill, prectInit);
-#else
- CFB_STATE_SAVE(&cfb_state, pGC, devPriv);
- FFB_ATTR_SFB_VAR_WIN(pFfb, cfb_state.pmask, cfb_state.alu, pWin);
- FFBWait(pFfb, ffb);
- CFB_STATE_SET_SFB(pGC, devPriv);
- if (pGC->depth == 8)
- cfbPolyFillRect(pDrawable, pGC, nrectFill, prectInit);
- else
- cfb32PolyFillRect(pDrawable, pGC, nrectFill, prectInit);
- CFB_STATE_RESTORE(&cfb_state, pGC, devPriv);
-#endif
-}