From nobody Mon Sep 17 00:00:00 2001 From: George Fufutos Date: Thu Jun 22 04:19:20 2006 +0300 Subject: [PATCH] Move xf86RAC.c back to hw/xfree86/common. Now that rac is not built as a module, there is no reason to keep it separate. --- hw/xfree86/Makefile.am | 5 hw/xfree86/common/Makefile.am | 4 hw/xfree86/common/xf86RAC.c | 1254 +++++++++++++++++++++++++++++++++++++++++ hw/xfree86/common/xf86RAC.h | 18 + hw/xfree86/rac/Makefile.am | 8 hw/xfree86/rac/xf86RAC.c | 1254 ----------------------------------------- hw/xfree86/rac/xf86RAC.h | 18 - 7 files changed, 1276 insertions(+), 1285 deletions(-) create mode 100644 hw/xfree86/common/xf86RAC.c create mode 100644 hw/xfree86/common/xf86RAC.h delete mode 100644 hw/xfree86/rac/Makefile.am delete mode 100644 hw/xfree86/rac/xf86RAC.c delete mode 100644 hw/xfree86/rac/xf86RAC.h 5f4accee567c31cf3bb37969994b8cdea555d833 diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am index f4edf1f..1bc8e71 100644 --- a/hw/xfree86/Makefile.am +++ b/hw/xfree86/Makefile.am @@ -4,13 +4,13 @@ endif DOC_SUBDIR = doc -SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support parser rac \ +SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support parser \ ramdac shadowfb vbe vgahw xaa \ loader scanpci dixmods exa \ $(DRI_SUBDIR) utils $(DOC_SUBDIR) getconfig DIST_SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support \ - parser rac ramdac shadowfb vbe vgahw xaa \ + parser ramdac shadowfb vbe vgahw xaa \ loader scanpci dixmods dri exa \ utils doc getconfig @@ -38,7 +38,6 @@ XORG_LIBS = \ common/libinit.a \ loader/libloader.a \ libosandcommon.la \ - rac/librac.a \ parser/libxf86config.a \ dummylib/libdummy.a \ dixmods/libdixmods.la \ diff --git a/hw/xfree86/common/Makefile.am b/hw/xfree86/common/Makefile.am index 0fe8aff..8531624 100644 --- a/hw/xfree86/common/Makefile.am +++ b/hw/xfree86/common/Makefile.am @@ -37,7 +37,7 @@ libcommon_la_SOURCES = xf86Configure.c x xf86Globals.c xf86Io.c xf86AutoConfig.c \ xf86MiscExt.c xf86Option.c \ xf86VidMode.c xf86fbman.c xf86cmap.c \ - xf86Helper.c xf86PM.c \ + xf86Helper.c xf86PM.c xf86RAC.c \ xf86Mode.c xf86Build.h xorgHelper.c xf86Versions.c \ $(XVSOURCES) $(BUSSOURCES) $(XKBSOURCES) \ $(DEBUGSOURCES) $(XISOURCES) $(RANDRSOURCES) \ @@ -46,7 +46,7 @@ nodist_libcommon_la_SOURCES = xf86DefMod libinit_a_SOURCES = xf86Build.h xf86Init.c INCLUDES = $(XORG_INCS) -I$(srcdir)/../ddc -I$(srcdir)/../i2c \ - -I$(srcdir)/../loader -I$(srcdir)/../rac -I$(srcdir)/../parser \ + -I$(srcdir)/../loader -I$(srcdir)/../parser \ -I$(srcdir)/../scanpci -I$(srcdir)/../vbe -I$(srcdir)/../int10 \ -I$(srcdir)/../vgahw -I$(srcdir)/../dixmods/extmod diff --git a/hw/xfree86/common/xf86RAC.c b/hw/xfree86/common/xf86RAC.c new file mode 100644 index 0000000..aba8622 --- /dev/null +++ b/hw/xfree86/common/xf86RAC.c @@ -0,0 +1,1254 @@ +#ifdef HAVE_XORG_CONFIG_H +#include +#endif + +#include "misc.h" +#include "xf86.h" +#include "xf86_OSproc.h" + +#include +#include "colormapst.h" +#include "scrnintstr.h" +#include "screenint.h" +#include "gcstruct.h" +#include "pixmapstr.h" +#include "pixmap.h" +#include "windowstr.h" +#include "window.h" +#include "xf86str.h" +#include "xf86RAC.h" +#include "mipointer.h" +#include "mipointrst.h" +#ifdef RENDER +# include "picturestr.h" +#endif + +#ifdef DEBUG +#define DPRINT_S(x,y) ErrorF(x ": %i\n",y); +#define DPRINT(x) ErrorF(x "\n"); +#else +#define DPRINT_S(x,y) +#define DPRINT(x) +#endif + +#define WRAP_SCREEN(x,y) {pScreenPriv->x = pScreen->x;\ + pScreen->x = y;} +#define WRAP_SCREEN_COND(x,y,cond) \ + {pScreenPriv->x = pScreen->x;\ + if (flag & (cond))\ + pScreen->x = y;} +#define UNWRAP_SCREEN(x) pScreen->x = pScreenPriv->x + +#define SCREEN_PROLOG(x) \ + pScreen->x = \ + ((RACScreenPtr) (pScreen)->devPrivates[RACScreenIndex].ptr)->x +#define SCREEN_EPILOG(x,y) pScreen->x = y; + +#define WRAP_PICT_COND(x,y,cond) if (ps)\ + {pScreenPriv->x = ps->x;\ + if (flag & (cond))\ + ps->x = y;} +#define UNWRAP_PICT(x) if (ps) {ps->x = pScreenPriv->x;} + +#define PICTURE_PROLOGUE(field) \ + ps->field = \ + ((RACScreenPtr) (pScreen)->devPrivates[RACScreenIndex].ptr)->field +#define PICTURE_EPILOGUE(field, wrap) \ + ps->field = wrap + +#define WRAP_SCREEN_INFO(x,y) {pScreenPriv->x = pScrn->x;\ + pScrn->x = y;} +#define WRAP_SCREEN_INFO_COND(x,y,cond) \ + {pScreenPriv->x = pScrn->x;\ + if (flag & (cond))\ + pScrn->x = y;} +#define UNWRAP_SCREEN_INFO(x) pScrn->x = pScreenPriv->x + +#define SPRITE_PROLOG miPointerScreenPtr PointPriv = \ +(miPointerScreenPtr)pScreen->devPrivates[miPointerScreenIndex].ptr;\ + RACScreenPtr pScreenPriv = \ +((RACScreenPtr) (pScreen)->devPrivates[RACScreenIndex].ptr);\ + PointPriv->spriteFuncs = pScreenPriv->miSprite; +#define SPRITE_EPILOG pScreenPriv->miSprite = PointPriv->spriteFuncs;\ + PointPriv->spriteFuncs = &RACSpriteFuncs; +#define WRAP_SPRITE_COND(cond){pScreenPriv->miSprite = PointPriv->spriteFuncs;\ + if(flag & (cond))\ + PointPriv->spriteFuncs = &RACSpriteFuncs;} +#define UNWRAP_SPRITE PointPriv->spriteFuncs = pScreenPriv->miSprite + + +#define GC_WRAP(x) pGCPriv->wrapOps = (x)->ops;\ + pGCPriv->wrapFuncs = (x)->funcs;\ + (x)->ops = &RACGCOps;\ + (x)->funcs = &RACGCFuncs; +#define GC_UNWRAP(x)\ + RACGCPtr pGCPriv = (RACGCPtr) (x)->devPrivates[RACGCIndex].ptr;\ + (x)->ops = pGCPriv->wrapOps;\ + (x)->funcs = pGCPriv->wrapFuncs; + +#define GC_SCREEN register ScrnInfoPtr pScrn \ + = xf86Screens[pGC->pScreen->myNum] + +#define ENABLE xf86EnableAccess(xf86Screens[pScreen->myNum]) +#define ENABLE_GC xf86EnableAccess(xf86Screens[pGC->pScreen->myNum]) + +typedef struct _RACScreen { + CreateGCProcPtr CreateGC; + CloseScreenProcPtr CloseScreen; + GetImageProcPtr GetImage; + GetSpansProcPtr GetSpans; + SourceValidateProcPtr SourceValidate; + PaintWindowBackgroundProcPtr PaintWindowBackground; + PaintWindowBorderProcPtr PaintWindowBorder; + CopyWindowProcPtr CopyWindow; + ClearToBackgroundProcPtr ClearToBackground; + BSFuncRec BackingStoreFuncs; + CreatePixmapProcPtr CreatePixmap; + SaveScreenProcPtr SaveScreen; + /* Colormap */ + StoreColorsProcPtr StoreColors; + /* Cursor */ + DisplayCursorProcPtr DisplayCursor; + RealizeCursorProcPtr RealizeCursor; + UnrealizeCursorProcPtr UnrealizeCursor; + RecolorCursorProcPtr RecolorCursor; + SetCursorPositionProcPtr SetCursorPosition; + void (*AdjustFrame)(int,int,int,int); + Bool (*SwitchMode)(int, DisplayModePtr,int); + Bool (*EnterVT)(int, int); + void (*LeaveVT)(int, int); + void (*FreeScreen)(int, int); + miPointerSpriteFuncPtr miSprite; +#ifdef RENDER + CompositeProcPtr Composite; + GlyphsProcPtr Glyphs; + CompositeRectsProcPtr CompositeRects; +#endif +} RACScreenRec, *RACScreenPtr; + +typedef struct _RACGC { + GCOps *wrapOps; + GCFuncs *wrapFuncs; +} RACGCRec, *RACGCPtr; + +/* Screen funcs */ +static Bool RACCloseScreen (int i, ScreenPtr pScreen); +static void RACGetImage (DrawablePtr pDrawable, int sx, int sy, + int w, int h, unsigned int format, + unsigned long planemask, char *pdstLine); +static void RACGetSpans (DrawablePtr pDrawable, int wMax, DDXPointPtr ppt, + int *pwidth, int nspans, char *pdstStart); +static void RACSourceValidate (DrawablePtr pDrawable, + int x, int y, int width, int height ); +static void RACPaintWindowBackground(WindowPtr pWin, RegionPtr prgn, int what); +static void RACPaintWindowBorder(WindowPtr pWin, RegionPtr prgn, int what); +static void RACCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, + RegionPtr prgnSrc ); +static void RACClearToBackground (WindowPtr pWin, int x, int y, + int w, int h, Bool generateExposures ); +static void RACSaveAreas (PixmapPtr pPixmap, RegionPtr prgnSave, + int xorg, int yorg, WindowPtr pWin); +static void RACRestoreAreas (PixmapPtr pPixmap, RegionPtr prgnRestore, + int xorg, int yorg, WindowPtr pWin); +static PixmapPtr RACCreatePixmap(ScreenPtr pScreen, int w, int h, int depth); +static Bool RACCreateGC(GCPtr pGC); +static Bool RACSaveScreen(ScreenPtr pScreen, Bool unblank); +static void RACStoreColors (ColormapPtr pmap, int ndef, xColorItem *pdefs); +static void RACRecolorCursor (ScreenPtr pScreen, CursorPtr pCurs, + Bool displayed); +static Bool RACRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor); +static Bool RACUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor); +static Bool RACDisplayCursor (ScreenPtr pScreen, CursorPtr pCursor); +static Bool RACSetCursorPosition (ScreenPtr pScreen, int x, int y, + Bool generateEvent); +static void RACAdjustFrame(int index, int x, int y, int flags); +static Bool RACSwitchMode(int index, DisplayModePtr mode, int flags); +static Bool RACEnterVT(int index, int flags); +static void RACLeaveVT(int index, int flags); +static void RACFreeScreen(int index, int flags); +/* GC funcs */ +static void RACValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); +static void RACChangeGC(GCPtr pGC, unsigned long mask); +static void RACCopyGC(GCPtr pGCSrc, unsigned long mask, GCPtr pGCDst); +static void RACDestroyGC(GCPtr pGC); +static void RACChangeClip(GCPtr pGC, int type, pointer pvalue, int nrects); +static void RACDestroyClip(GCPtr pGC); +static void RACCopyClip(GCPtr pgcDst, GCPtr pgcSrc); +/* GC ops */ +static void RACFillSpans( DrawablePtr pDraw, GC *pGC, int nInit, + DDXPointPtr pptInit, int *pwidthInit, int fSorted ); +static void RACSetSpans(DrawablePtr pDraw, GCPtr pGC, char *pcharsrc, + register DDXPointPtr ppt, int *pwidth, int nspans, + int fSorted ); +static void RACPutImage(DrawablePtr pDraw, GCPtr pGC, int depth, + int x, int y, int w, int h, int leftPad, + int format, char *pImage ); +static RegionPtr RACCopyArea(DrawablePtr pSrc, DrawablePtr pDst, + GC *pGC, int srcx, int srcy, + int width, int height, + int dstx, int dsty ); +static RegionPtr RACCopyPlane(DrawablePtr pSrc, DrawablePtr pDst, + GCPtr pGC, int srcx, int srcy, + int width, int height, int dstx, int dsty, + unsigned long bitPlane ); +static void RACPolyPoint(DrawablePtr pDraw, GCPtr pGC, int mode, + int npt, xPoint *pptInit ); +static void RACPolylines(DrawablePtr pDraw, GCPtr pGC, int mode, + int npt, DDXPointPtr pptInit ); +static void RACPolySegment(DrawablePtr pDraw, GCPtr pGC, int nseg, + xSegment *pSeg ); +static void RACPolyRectangle(DrawablePtr pDraw, GCPtr pGC, int nRectsInit, + xRectangle *pRectsInit ); +static void RACPolyArc(DrawablePtr pDraw, GCPtr pGC, int narcs, + xArc *parcs ); +static void RACFillPolygon(DrawablePtr pDraw, GCPtr pGC, int shape, int mode, + int count, DDXPointPtr ptsIn ); +static void RACPolyFillRect( DrawablePtr pDraw, GCPtr pGC, int nrectFill, + xRectangle *prectInit ); +static void RACPolyFillArc(DrawablePtr pDraw, GCPtr pGC, int narcs, + xArc *parcs ); +static int RACPolyText8(DrawablePtr pDraw, GCPtr pGC, int x, int y, + int count, char *chars ); +static int RACPolyText16(DrawablePtr pDraw, GCPtr pGC, int x, int y, + int count, unsigned short *chars ); +static void RACImageText8(DrawablePtr pDraw, GCPtr pGC, int x, int y, + int count, char *chars ); +static void RACImageText16(DrawablePtr pDraw, GCPtr pGC, int x, int y, + int count, unsigned short *chars ); +static void RACImageGlyphBlt(DrawablePtr pDraw, GCPtr pGC, int xInit, + int yInit, unsigned int nglyph, + CharInfoPtr *ppci, pointer pglyphBase ); +static void RACPolyGlyphBlt(DrawablePtr pDraw, GCPtr pGC, int xInit, + int yInit, unsigned int nglyph, + CharInfoPtr *ppci, pointer pglyphBase ); +static void RACPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDraw, + int dx, int dy, int xOrg, int yOrg ); +/* miSpriteFuncs */ +static Bool RACSpriteRealizeCursor(ScreenPtr pScreen, CursorPtr pCur); +static Bool RACSpriteUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCur); +static void RACSpriteSetCursor(ScreenPtr pScreen, CursorPtr pCur, + int x, int y); +static void RACSpriteMoveCursor(ScreenPtr pScreen, int x, int y); +#ifdef RENDER +static void RACComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, + PicturePtr pDst, INT16 xSrc, INT16 ySrc, + INT16 xMask, INT16 yMask, INT16 xDst, + INT16 yDst, CARD16 width, CARD16 height); +static void RACGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, + PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, + int nlist, GlyphListPtr list, GlyphPtr *glyphs); +static void RACCompositeRects(CARD8 op, PicturePtr pDst, xRenderColor *color, + int nRect, xRectangle *rects); +#endif + +static GCFuncs RACGCFuncs = { + RACValidateGC, RACChangeGC, RACCopyGC, RACDestroyGC, + RACChangeClip, RACDestroyClip, RACCopyClip +}; + +static GCOps RACGCOps = { + RACFillSpans, RACSetSpans, RACPutImage, RACCopyArea, + RACCopyPlane, RACPolyPoint, RACPolylines, RACPolySegment, + RACPolyRectangle, RACPolyArc, RACFillPolygon, RACPolyFillRect, + RACPolyFillArc, RACPolyText8, RACPolyText16, RACImageText8, + RACImageText16, RACImageGlyphBlt, RACPolyGlyphBlt, RACPushPixels, + {NULL} /* devPrivate */ +}; + +static miPointerSpriteFuncRec RACSpriteFuncs = { + RACSpriteRealizeCursor, RACSpriteUnrealizeCursor, RACSpriteSetCursor, + RACSpriteMoveCursor +}; + +static int RACScreenIndex = -1; +static int RACGCIndex = -1; +static unsigned long RACGeneration = 0; + + +Bool +xf86RACInit(ScreenPtr pScreen, unsigned int flag) +{ + ScrnInfoPtr pScrn; + RACScreenPtr pScreenPriv; + miPointerScreenPtr PointPriv; +#ifdef RENDER + PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); +#endif + + pScrn = xf86Screens[pScreen->myNum]; + PointPriv = (miPointerScreenPtr)pScreen->devPrivates[miPointerScreenIndex].ptr; + + DPRINT_S("RACInit",pScreen->myNum); + if (RACGeneration != serverGeneration) { + if ( ((RACScreenIndex = AllocateScreenPrivateIndex()) < 0) || + ((RACGCIndex = AllocateGCPrivateIndex()) < 0)) + return FALSE; + + RACGeneration = serverGeneration; + } + + if (!AllocateGCPrivate(pScreen, RACGCIndex, sizeof(RACGCRec))) + return FALSE; + + if (!(pScreenPriv = xalloc(sizeof(RACScreenRec)))) + return FALSE; + + pScreen->devPrivates[RACScreenIndex].ptr = (pointer)pScreenPriv; + + WRAP_SCREEN(CloseScreen, RACCloseScreen); + WRAP_SCREEN(SaveScreen, RACSaveScreen); + WRAP_SCREEN_COND(CreateGC, RACCreateGC, RAC_FB); + WRAP_SCREEN_COND(GetImage, RACGetImage, RAC_FB); + WRAP_SCREEN_COND(GetSpans, RACGetSpans, RAC_FB); + WRAP_SCREEN_COND(SourceValidate, RACSourceValidate, RAC_FB); + WRAP_SCREEN_COND(PaintWindowBackground, RACPaintWindowBackground, RAC_FB); + WRAP_SCREEN_COND(PaintWindowBorder, RACPaintWindowBorder, RAC_FB); + WRAP_SCREEN_COND(CopyWindow, RACCopyWindow, RAC_FB); + WRAP_SCREEN_COND(ClearToBackground, RACClearToBackground, RAC_FB); + WRAP_SCREEN_COND(CreatePixmap, RACCreatePixmap, RAC_FB); + WRAP_SCREEN_COND(BackingStoreFuncs.RestoreAreas, RACRestoreAreas, RAC_FB); + WRAP_SCREEN_COND(BackingStoreFuncs.SaveAreas, RACSaveAreas, RAC_FB); + WRAP_SCREEN_COND(StoreColors, RACStoreColors, RAC_COLORMAP); + WRAP_SCREEN_COND(DisplayCursor, RACDisplayCursor, RAC_CURSOR); + WRAP_SCREEN_COND(RealizeCursor, RACRealizeCursor, RAC_CURSOR); + WRAP_SCREEN_COND(UnrealizeCursor, RACUnrealizeCursor, RAC_CURSOR); + WRAP_SCREEN_COND(RecolorCursor, RACRecolorCursor, RAC_CURSOR); + WRAP_SCREEN_COND(SetCursorPosition, RACSetCursorPosition, RAC_CURSOR); +#ifdef RENDER + WRAP_PICT_COND(Composite,RACComposite,RAC_FB); + WRAP_PICT_COND(Glyphs,RACGlyphs,RAC_FB); + WRAP_PICT_COND(CompositeRects,RACCompositeRects,RAC_FB); +#endif + WRAP_SCREEN_INFO_COND(AdjustFrame, RACAdjustFrame, RAC_VIEWPORT); + WRAP_SCREEN_INFO(SwitchMode, RACSwitchMode); + WRAP_SCREEN_INFO(EnterVT, RACEnterVT); + WRAP_SCREEN_INFO(LeaveVT, RACLeaveVT); + WRAP_SCREEN_INFO(FreeScreen, RACFreeScreen); + WRAP_SPRITE_COND(RAC_CURSOR); + + return TRUE; +} + +/* Screen funcs */ +static Bool +RACCloseScreen (int i, ScreenPtr pScreen) +{ + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + RACScreenPtr pScreenPriv = + (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; + miPointerScreenPtr PointPriv + = (miPointerScreenPtr)pScreen->devPrivates[miPointerScreenIndex].ptr; +#ifdef RENDER + PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); +#endif + + DPRINT_S("RACCloseScreen",pScreen->myNum); + UNWRAP_SCREEN(CreateGC); + UNWRAP_SCREEN(CloseScreen); + UNWRAP_SCREEN(GetImage); + UNWRAP_SCREEN(GetSpans); + UNWRAP_SCREEN(SourceValidate); + UNWRAP_SCREEN(PaintWindowBackground); + UNWRAP_SCREEN(PaintWindowBorder); + UNWRAP_SCREEN(CopyWindow); + UNWRAP_SCREEN(ClearToBackground); + UNWRAP_SCREEN(BackingStoreFuncs.RestoreAreas); + UNWRAP_SCREEN(BackingStoreFuncs.SaveAreas); + UNWRAP_SCREEN(SaveScreen); + UNWRAP_SCREEN(StoreColors); + UNWRAP_SCREEN(DisplayCursor); + UNWRAP_SCREEN(RealizeCursor); + UNWRAP_SCREEN(UnrealizeCursor); + UNWRAP_SCREEN(RecolorCursor); + UNWRAP_SCREEN(SetCursorPosition); +#ifdef RENDER + UNWRAP_PICT(Composite); + UNWRAP_PICT(Glyphs); + UNWRAP_PICT(CompositeRects); +#endif + UNWRAP_SCREEN_INFO(AdjustFrame); + UNWRAP_SCREEN_INFO(SwitchMode); + UNWRAP_SCREEN_INFO(EnterVT); + UNWRAP_SCREEN_INFO(LeaveVT); + UNWRAP_SCREEN_INFO(FreeScreen); + UNWRAP_SPRITE; + + xfree ((pointer) pScreenPriv); + + if (xf86Screens[pScreen->myNum]->vtSema) { + xf86EnterServerState(SETUP); + ENABLE; + } + return (*pScreen->CloseScreen) (i, pScreen); +} + +static void +RACGetImage ( + DrawablePtr pDrawable, + int sx, int sy, int w, int h, + unsigned int format, + unsigned long planemask, + char *pdstLine + ) +{ + ScreenPtr pScreen = pDrawable->pScreen; + DPRINT_S("RACGetImage",pScreen->myNum); + SCREEN_PROLOG(GetImage); + if (xf86Screens[pScreen->myNum]->vtSema) { + ENABLE; + } + (*pScreen->GetImage) (pDrawable, sx, sy, w, h, + format, planemask, pdstLine); + SCREEN_EPILOG (GetImage, RACGetImage); +} + +static void +RACGetSpans ( + DrawablePtr pDrawable, + int wMax, + DDXPointPtr ppt, + int *pwidth, + int nspans, + char *pdstStart + ) +{ + ScreenPtr pScreen = pDrawable->pScreen; + + DPRINT_S("RACGetSpans",pScreen->myNum); + SCREEN_PROLOG (GetSpans); + ENABLE; + (*pScreen->GetSpans) (pDrawable, wMax, ppt, pwidth, nspans, pdstStart); + SCREEN_EPILOG (GetSpans, RACGetSpans); +} + +static void +RACSourceValidate ( + DrawablePtr pDrawable, + int x, int y, int width, int height ) +{ + ScreenPtr pScreen = pDrawable->pScreen; + DPRINT_S("RACSourceValidate",pScreen->myNum); + SCREEN_PROLOG (SourceValidate); + ENABLE; + if (pScreen->SourceValidate) + (*pScreen->SourceValidate) (pDrawable, x, y, width, height); + SCREEN_EPILOG (SourceValidate, RACSourceValidate); +} + +static void +RACPaintWindowBackground( + WindowPtr pWin, + RegionPtr prgn, + int what + ) +{ + ScreenPtr pScreen = pWin->drawable.pScreen; + + DPRINT_S("RACPaintWindowBackground",pScreen->myNum); + SCREEN_PROLOG (PaintWindowBackground); + ENABLE; + (*pScreen->PaintWindowBackground) (pWin, prgn, what); + SCREEN_EPILOG (PaintWindowBackground, RACPaintWindowBackground); +} + +static void +RACPaintWindowBorder( + WindowPtr pWin, + RegionPtr prgn, + int what +) +{ + ScreenPtr pScreen = pWin->drawable.pScreen; + + DPRINT_S("RACPaintWindowBorder",pScreen->myNum); + SCREEN_PROLOG (PaintWindowBorder); + ENABLE; + (*pScreen->PaintWindowBorder) (pWin, prgn, what); + SCREEN_EPILOG (PaintWindowBorder, RACPaintWindowBorder); +} + +static void +RACCopyWindow( + WindowPtr pWin, + DDXPointRec ptOldOrg, + RegionPtr prgnSrc ) +{ + ScreenPtr pScreen = pWin->drawable.pScreen; + + DPRINT_S("RACCopyWindow",pScreen->myNum); + SCREEN_PROLOG (CopyWindow); + ENABLE; + (*pScreen->CopyWindow) (pWin, ptOldOrg, prgnSrc); + SCREEN_EPILOG (CopyWindow, RACCopyWindow); +} + +static void +RACClearToBackground ( + WindowPtr pWin, + int x, int y, + int w, int h, + Bool generateExposures ) +{ + ScreenPtr pScreen = pWin->drawable.pScreen; + + DPRINT_S("RACClearToBackground",pScreen->myNum); + SCREEN_PROLOG ( ClearToBackground); + ENABLE; + (*pScreen->ClearToBackground) (pWin, x, y, w, h, generateExposures); + SCREEN_EPILOG (ClearToBackground, RACClearToBackground); +} + +static void +RACSaveAreas ( + PixmapPtr pPixmap, + RegionPtr prgnSave, + int xorg, + int yorg, + WindowPtr pWin + ) +{ + ScreenPtr pScreen = pPixmap->drawable.pScreen; + DPRINT_S("RACSaveAreas",pScreen->myNum); + SCREEN_PROLOG (BackingStoreFuncs.SaveAreas); + ENABLE; + (*pScreen->BackingStoreFuncs.SaveAreas) ( + pPixmap, prgnSave, xorg, yorg, pWin); + + SCREEN_EPILOG (BackingStoreFuncs.SaveAreas, RACSaveAreas); +} + +static void +RACRestoreAreas ( + PixmapPtr pPixmap, + RegionPtr prgnRestore, + int xorg, + int yorg, + WindowPtr pWin + ) +{ + ScreenPtr pScreen = pPixmap->drawable.pScreen; + + DPRINT_S("RACRestoreAreas",pScreen->myNum); + SCREEN_PROLOG (BackingStoreFuncs.RestoreAreas); + ENABLE; + (*pScreen->BackingStoreFuncs.RestoreAreas) ( + pPixmap, prgnRestore, xorg, yorg, pWin); + + SCREEN_EPILOG ( BackingStoreFuncs.RestoreAreas, RACRestoreAreas); +} + +static PixmapPtr +RACCreatePixmap(ScreenPtr pScreen, int w, int h, int depth) +{ + PixmapPtr pPix; + + DPRINT_S("RACCreatePixmap",pScreen->myNum); + SCREEN_PROLOG ( CreatePixmap); + ENABLE; + pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth); + SCREEN_EPILOG (CreatePixmap, RACCreatePixmap); + + return pPix; +} + +static Bool +RACSaveScreen(ScreenPtr pScreen, Bool unblank) +{ + Bool val; + + DPRINT_S("RACSaveScreen",pScreen->myNum); + SCREEN_PROLOG (SaveScreen); + ENABLE; + val = (*pScreen->SaveScreen) (pScreen, unblank); + SCREEN_EPILOG (SaveScreen, RACSaveScreen); + + return val; +} + +static void +RACStoreColors ( + ColormapPtr pmap, + int ndef, + xColorItem *pdefs) +{ + ScreenPtr pScreen = pmap->pScreen; + + DPRINT_S("RACStoreColors",pScreen->myNum); + SCREEN_PROLOG (StoreColors); + ENABLE; + (*pScreen->StoreColors) (pmap,ndef,pdefs); + + SCREEN_EPILOG ( StoreColors, RACStoreColors); +} + +static void +RACRecolorCursor ( + ScreenPtr pScreen, + CursorPtr pCurs, + Bool displayed + ) +{ + DPRINT_S("RACRecolorCursor",pScreen->myNum); + SCREEN_PROLOG (RecolorCursor); + ENABLE; + (*pScreen->RecolorCursor) (pScreen,pCurs,displayed); + + SCREEN_EPILOG ( RecolorCursor, RACRecolorCursor); +} + +static Bool +RACRealizeCursor ( + ScreenPtr pScreen, + CursorPtr pCursor + ) +{ + Bool val; + + DPRINT_S("RACRealizeCursor",pScreen->myNum); + SCREEN_PROLOG (RealizeCursor); + ENABLE; + val = (*pScreen->RealizeCursor) (pScreen,pCursor); + + SCREEN_EPILOG ( RealizeCursor, RACRealizeCursor); + return val; +} + +static Bool +RACUnrealizeCursor ( + ScreenPtr pScreen, + CursorPtr pCursor + ) +{ + Bool val; + + DPRINT_S("RACUnrealizeCursor",pScreen->myNum); + SCREEN_PROLOG (UnrealizeCursor); + ENABLE; + val = (*pScreen->UnrealizeCursor) (pScreen,pCursor); + + SCREEN_EPILOG ( UnrealizeCursor, RACUnrealizeCursor); + return val; +} + +static Bool +RACDisplayCursor ( + ScreenPtr pScreen, + CursorPtr pCursor + ) +{ + Bool val; + + DPRINT_S("RACDisplayCursor",pScreen->myNum); + SCREEN_PROLOG (DisplayCursor); + ENABLE; + val = (*pScreen->DisplayCursor) (pScreen,pCursor); + + SCREEN_EPILOG ( DisplayCursor, RACDisplayCursor); + return val; +} + +static Bool +RACSetCursorPosition ( + ScreenPtr pScreen, + int x, int y, + Bool generateEvent) +{ + Bool val; + + DPRINT_S("RACSetCursorPosition",pScreen->myNum); + SCREEN_PROLOG (SetCursorPosition); + ENABLE; + val = (*pScreen->SetCursorPosition) (pScreen,x,y,generateEvent); + + SCREEN_EPILOG ( SetCursorPosition, RACSetCursorPosition); + return val; +} + +static void +RACAdjustFrame(int index, int x, int y, int flags) +{ + ScreenPtr pScreen = screenInfo.screens[index]; + RACScreenPtr pScreenPriv = + (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; + + DPRINT_S("RACAdjustFrame",index); + xf86EnableAccess(xf86Screens[index]); + + (*pScreenPriv->AdjustFrame)(index, x, y, flags); +} + +static Bool +RACSwitchMode(int index, DisplayModePtr mode, int flags) +{ + ScreenPtr pScreen = screenInfo.screens[index]; + RACScreenPtr pScreenPriv = + (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; + + DPRINT_S("RACSwitchMode",index); + xf86EnableAccess(xf86Screens[index]); + + return (*pScreenPriv->SwitchMode)(index, mode, flags); +} + +static Bool +RACEnterVT(int index, int flags) +{ + ScreenPtr pScreen = screenInfo.screens[index]; + RACScreenPtr pScreenPriv = + (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; + + DPRINT_S("RACEnterVT",index); + xf86EnableAccess(xf86Screens[index]); + + return (*pScreenPriv->EnterVT)(index, flags); +} + +static void +RACLeaveVT(int index, int flags) +{ + ScreenPtr pScreen = screenInfo.screens[index]; + RACScreenPtr pScreenPriv = + (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; + + DPRINT_S("RACLeaveVT",index); + xf86EnableAccess(xf86Screens[index]); + + (*pScreenPriv->LeaveVT)(index, flags); +} + +static void +RACFreeScreen(int index, int flags) +{ + ScreenPtr pScreen = screenInfo.screens[index]; + RACScreenPtr pScreenPriv = + (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; + + DPRINT_S("RACFreeScreen",index); + xf86EnableAccess(xf86Screens[index]); + + (*pScreenPriv->FreeScreen)(index, flags); +} + +static Bool +RACCreateGC(GCPtr pGC) +{ + ScreenPtr pScreen = pGC->pScreen; + RACGCPtr pGCPriv = (RACGCPtr) (pGC)->devPrivates[RACGCIndex].ptr; + Bool ret; + + DPRINT_S("RACCreateGC",pScreen->myNum); + SCREEN_PROLOG(CreateGC); + + ret = (*pScreen->CreateGC)(pGC); + + GC_WRAP(pGC); + SCREEN_EPILOG(CreateGC,RACCreateGC); + + return ret; +} + +/* GC funcs */ +static void +RACValidateGC( + GCPtr pGC, + unsigned long changes, + DrawablePtr pDraw ) +{ + GC_UNWRAP(pGC); + DPRINT("RACValidateGC"); + (*pGC->funcs->ValidateGC)(pGC, changes, pDraw); + GC_WRAP(pGC); +} + + +static void +RACDestroyGC(GCPtr pGC) +{ + GC_UNWRAP (pGC); + DPRINT("RACDestroyGC"); + (*pGC->funcs->DestroyGC)(pGC); + GC_WRAP (pGC); +} + +static void +RACChangeGC ( + GCPtr pGC, + unsigned long mask) +{ + GC_UNWRAP (pGC); + DPRINT("RACChangeGC"); + (*pGC->funcs->ChangeGC) (pGC, mask); + GC_WRAP (pGC); +} + +static void +RACCopyGC ( + GCPtr pGCSrc, + unsigned long mask, + GCPtr pGCDst) +{ + GC_UNWRAP (pGCDst); + DPRINT("RACCopyGC"); + (*pGCDst->funcs->CopyGC) (pGCSrc, mask, pGCDst); + GC_WRAP (pGCDst); +} + +static void +RACChangeClip ( + GCPtr pGC, + int type, + pointer pvalue, + int nrects ) +{ + GC_UNWRAP (pGC); + DPRINT("RACChangeClip"); + (*pGC->funcs->ChangeClip) (pGC, type, pvalue, nrects); + GC_WRAP (pGC); +} + +static void +RACCopyClip(GCPtr pgcDst, GCPtr pgcSrc) +{ + GC_UNWRAP (pgcDst); + DPRINT("RACCopyClip"); + (* pgcDst->funcs->CopyClip)(pgcDst, pgcSrc); + GC_WRAP (pgcDst); +} + +static void +RACDestroyClip(GCPtr pGC) +{ + GC_UNWRAP (pGC); + DPRINT("RACDestroyClip"); + (* pGC->funcs->DestroyClip)(pGC); + GC_WRAP (pGC); +} + +/* GC Ops */ +static void +RACFillSpans( + DrawablePtr pDraw, + GC *pGC, + int nInit, + DDXPointPtr pptInit, + int *pwidthInit, + int fSorted ) +{ + GC_UNWRAP(pGC); + DPRINT("RACFillSpans"); + ENABLE_GC; + (*pGC->ops->FillSpans)(pDraw, pGC, nInit, pptInit, pwidthInit, fSorted); + GC_WRAP(pGC); +} + +static void +RACSetSpans( + DrawablePtr pDraw, + GCPtr pGC, + char *pcharsrc, + register DDXPointPtr ppt, + int *pwidth, + int nspans, + int fSorted ) +{ + GC_UNWRAP(pGC); + DPRINT("RACSetSpans"); + ENABLE_GC; + (*pGC->ops->SetSpans)(pDraw, pGC, pcharsrc, ppt, pwidth, nspans, fSorted); + GC_WRAP(pGC); +} + +static void +RACPutImage( + DrawablePtr pDraw, + GCPtr pGC, + int depth, + int x, int y, int w, int h, + int leftPad, + int format, + char *pImage ) +{ + GC_UNWRAP(pGC); + DPRINT("RACPutImage"); + ENABLE_GC; + (*pGC->ops->PutImage)(pDraw, pGC, depth, x, y, w, h, + leftPad, format, pImage); + GC_WRAP(pGC); +} + +static RegionPtr +RACCopyArea( + DrawablePtr pSrc, + DrawablePtr pDst, + GC *pGC, + int srcx, int srcy, + int width, int height, + int dstx, int dsty ) +{ + RegionPtr ret; + + GC_UNWRAP(pGC); + DPRINT("RACCopyArea"); + ENABLE_GC; + ret = (*pGC->ops->CopyArea)(pSrc, pDst, + pGC, srcx, srcy, width, height, dstx, dsty); + GC_WRAP(pGC); + return ret; +} + +static RegionPtr +RACCopyPlane( + DrawablePtr pSrc, + DrawablePtr pDst, + GCPtr pGC, + int srcx, int srcy, + int width, int height, + int dstx, int dsty, + unsigned long bitPlane ) +{ + RegionPtr ret; + + GC_UNWRAP(pGC); + DPRINT("RACCopyPlane"); + ENABLE_GC; + ret = (*pGC->ops->CopyPlane)(pSrc, pDst, pGC, srcx, srcy, + width, height, dstx, dsty, bitPlane); + GC_WRAP(pGC); + return ret; +} + +static void +RACPolyPoint( + DrawablePtr pDraw, + GCPtr pGC, + int mode, + int npt, + xPoint *pptInit ) +{ + GC_UNWRAP(pGC); + DPRINT("RACPolyPoint"); + ENABLE_GC; + (*pGC->ops->PolyPoint)(pDraw, pGC, mode, npt, pptInit); + GC_WRAP(pGC); +} + + +static void +RACPolylines( + DrawablePtr pDraw, + GCPtr pGC, + int mode, + int npt, + DDXPointPtr pptInit ) +{ + GC_UNWRAP(pGC); + DPRINT("RACPolylines"); + ENABLE_GC; + (*pGC->ops->Polylines)(pDraw, pGC, mode, npt, pptInit); + GC_WRAP(pGC); +} + +static void +RACPolySegment( + DrawablePtr pDraw, + GCPtr pGC, + int nseg, + xSegment *pSeg ) +{ + GC_UNWRAP(pGC); + DPRINT("RACPolySegment"); + ENABLE_GC; + (*pGC->ops->PolySegment)(pDraw, pGC, nseg, pSeg); + GC_WRAP(pGC); +} + +static void +RACPolyRectangle( + DrawablePtr pDraw, + GCPtr pGC, + int nRectsInit, + xRectangle *pRectsInit ) +{ + GC_UNWRAP(pGC); + DPRINT("RACPolyRectangle"); + ENABLE_GC; + (*pGC->ops->PolyRectangle)(pDraw, pGC, nRectsInit, pRectsInit); + GC_WRAP(pGC); +} + +static void +RACPolyArc( + DrawablePtr pDraw, + GCPtr pGC, + int narcs, + xArc *parcs ) +{ + GC_UNWRAP(pGC); + DPRINT("RACPolyArc"); + ENABLE_GC; + (*pGC->ops->PolyArc)(pDraw, pGC, narcs, parcs); + GC_WRAP(pGC); +} + +static void +RACFillPolygon( + DrawablePtr pDraw, + GCPtr pGC, + int shape, + int mode, + int count, + DDXPointPtr ptsIn ) +{ + GC_UNWRAP(pGC); + DPRINT("RACFillPolygon"); + ENABLE_GC; + (*pGC->ops->FillPolygon)(pDraw, pGC, shape, mode, count, ptsIn); + GC_WRAP(pGC); +} + + +static void +RACPolyFillRect( + DrawablePtr pDraw, + GCPtr pGC, + int nrectFill, + xRectangle *prectInit ) +{ + GC_UNWRAP(pGC); + DPRINT("RACPolyFillRect"); + ENABLE_GC; + (*pGC->ops->PolyFillRect)(pDraw, pGC, nrectFill, prectInit); + GC_WRAP(pGC); +} + + +static void +RACPolyFillArc( + DrawablePtr pDraw, + GCPtr pGC, + int narcs, + xArc *parcs ) +{ + GC_UNWRAP(pGC); + DPRINT("RACPolyFillArc"); + ENABLE_GC; + (*pGC->ops->PolyFillArc)(pDraw, pGC, narcs, parcs); + GC_WRAP(pGC); +} + +static int +RACPolyText8( + DrawablePtr pDraw, + GCPtr pGC, + int x, + int y, + int count, + char *chars ) +{ + int ret; + + GC_UNWRAP(pGC); + DPRINT("RACPolyText8"); + ENABLE_GC; + ret = (*pGC->ops->PolyText8)(pDraw, pGC, x, y, count, chars); + GC_WRAP(pGC); + return ret; +} + +static int +RACPolyText16( + DrawablePtr pDraw, + GCPtr pGC, + int x, + int y, + int count, + unsigned short *chars ) +{ + int ret; + + GC_UNWRAP(pGC); + DPRINT("RACPolyText16"); + ENABLE_GC; + ret = (*pGC->ops->PolyText16)(pDraw, pGC, x, y, count, chars); + GC_WRAP(pGC); + return ret; +} + +static void +RACImageText8( + DrawablePtr pDraw, + GCPtr pGC, + int x, + int y, + int count, + char *chars ) +{ + GC_UNWRAP(pGC); + DPRINT("RACImageText8"); + ENABLE_GC; + (*pGC->ops->ImageText8)(pDraw, pGC, x, y, count, chars); + GC_WRAP(pGC); +} + +static void +RACImageText16( + DrawablePtr pDraw, + GCPtr pGC, + int x, + int y, + int count, + unsigned short *chars ) +{ + GC_UNWRAP(pGC); + DPRINT("RACImageText16"); + ENABLE_GC; + (*pGC->ops->ImageText16)(pDraw, pGC, x, y, count, chars); + GC_WRAP(pGC); +} + + +static void +RACImageGlyphBlt( + DrawablePtr pDraw, + GCPtr pGC, + int xInit, int yInit, + unsigned int nglyph, + CharInfoPtr *ppci, + pointer pglyphBase ) +{ + GC_UNWRAP(pGC); + DPRINT("RACImageGlyphBlt"); + ENABLE_GC; + (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, xInit, yInit, + nglyph, ppci, pglyphBase); + GC_WRAP(pGC); +} + +static void +RACPolyGlyphBlt( + DrawablePtr pDraw, + GCPtr pGC, + int xInit, int yInit, + unsigned int nglyph, + CharInfoPtr *ppci, + pointer pglyphBase ) +{ + GC_UNWRAP(pGC); + DPRINT("RACPolyGlyphBlt"); + ENABLE_GC; + (*pGC->ops->PolyGlyphBlt)(pDraw, pGC, xInit, yInit, + nglyph, ppci, pglyphBase); + GC_WRAP(pGC); +} + +static void +RACPushPixels( + GCPtr pGC, + PixmapPtr pBitMap, + DrawablePtr pDraw, + int dx, int dy, int xOrg, int yOrg ) +{ + GC_UNWRAP(pGC); + DPRINT("RACPushPixels"); + ENABLE_GC; + (*pGC->ops->PushPixels)(pGC, pBitMap, pDraw, dx, dy, xOrg, yOrg); + GC_WRAP(pGC); +} + + +/* miSpriteFuncs */ +static Bool +RACSpriteRealizeCursor(ScreenPtr pScreen, CursorPtr pCur) +{ + Bool val; + SPRITE_PROLOG; + DPRINT_S("RACSpriteRealizeCursor",pScreen->myNum); + ENABLE; + val = PointPriv->spriteFuncs->RealizeCursor(pScreen, pCur); + SPRITE_EPILOG; + return val; +} + +static Bool +RACSpriteUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCur) +{ + Bool val; + SPRITE_PROLOG; + DPRINT_S("RACSpriteUnrealizeCursor",pScreen->myNum); + ENABLE; + val = PointPriv->spriteFuncs->UnrealizeCursor(pScreen, pCur); + SPRITE_EPILOG; + return val; +} + +static void +RACSpriteSetCursor(ScreenPtr pScreen, CursorPtr pCur, int x, int y) +{ + SPRITE_PROLOG; + DPRINT_S("RACSpriteSetCursor",pScreen->myNum); + ENABLE; + PointPriv->spriteFuncs->SetCursor(pScreen, pCur, x, y); + SPRITE_EPILOG; +} + +static void +RACSpriteMoveCursor(ScreenPtr pScreen, int x, int y) +{ + SPRITE_PROLOG; + DPRINT_S("RACSpriteMoveCursor",pScreen->myNum); + ENABLE; + PointPriv->spriteFuncs->MoveCursor(pScreen, x, y); + SPRITE_EPILOG; +} + +#ifdef RENDER +static void +RACComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, + PicturePtr pDst, INT16 xSrc, INT16 ySrc, INT16 xMask, + INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, + CARD16 height) +{ + ScreenPtr pScreen = pDst->pDrawable->pScreen; + PictureScreenPtr ps = GetPictureScreen(pScreen); + + PICTURE_PROLOGUE(Composite); + + ENABLE; + (*ps->Composite) (op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, xDst, + yDst, width, height); + + PICTURE_EPILOGUE(Composite, RACComposite); +} + +static void +RACGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, + PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int nlist, + GlyphListPtr list, GlyphPtr *glyphs) +{ + ScreenPtr pScreen = pDst->pDrawable->pScreen; + PictureScreenPtr ps = GetPictureScreen(pScreen); + + PICTURE_PROLOGUE(Glyphs); + + ENABLE; + (*ps->Glyphs)(op, pSrc, pDst, maskFormat, xSrc, ySrc, nlist, list, glyphs); + + PICTURE_EPILOGUE (Glyphs, RACGlyphs); +} + +static void +RACCompositeRects(CARD8 op, PicturePtr pDst, xRenderColor *color, int nRect, + xRectangle *rects) +{ + ScreenPtr pScreen = pDst->pDrawable->pScreen; + PictureScreenPtr ps = GetPictureScreen(pScreen); + + PICTURE_PROLOGUE(CompositeRects); + + ENABLE; + (*ps->CompositeRects)(op, pDst, color, nRect, rects); + + PICTURE_EPILOGUE (CompositeRects, RACCompositeRects); +} +#endif + diff --git a/hw/xfree86/common/xf86RAC.h b/hw/xfree86/common/xf86RAC.h new file mode 100644 index 0000000..783d79b --- /dev/null +++ b/hw/xfree86/common/xf86RAC.h @@ -0,0 +1,18 @@ +/* $XFree86: xc/programs/Xserver/hw/xfree86/rac/xf86RAC.h,v 1.2 1999/05/15 12:10:33 dawes Exp $ */ + +#ifndef __XF86RAC_H +#define __XF86RAC_H 1 + +#include "screenint.h" +#include "misc.h" +#include "xf86.h" + +Bool xf86RACInit(ScreenPtr pScreen, unsigned int flag); + +/* flags */ +#define RAC_FB 0x01 +#define RAC_CURSOR 0x02 +#define RAC_COLORMAP 0x04 +#define RAC_VIEWPORT 0x08 + +#endif /* __XF86RAC_H */ diff --git a/hw/xfree86/rac/Makefile.am b/hw/xfree86/rac/Makefile.am deleted file mode 100644 index 0e7cc72..0000000 --- a/hw/xfree86/rac/Makefile.am +++ /dev/null @@ -1,8 +0,0 @@ -module_LIBRARIES = librac.a -librac_a_SOURCES = xf86RAC.c - -sdk_HEADERS = xf86RAC.h - -INCLUDES = $(XORG_INCS) - -AM_CFLAGS = $(XORG_CFLAGS) @SERVER_DEFINES@ @MODULE_DEFINES@ @LOADER_DEFINES@ diff --git a/hw/xfree86/rac/xf86RAC.c b/hw/xfree86/rac/xf86RAC.c deleted file mode 100644 index aba8622..0000000 --- a/hw/xfree86/rac/xf86RAC.c +++ /dev/null @@ -1,1254 +0,0 @@ -#ifdef HAVE_XORG_CONFIG_H -#include -#endif - -#include "misc.h" -#include "xf86.h" -#include "xf86_OSproc.h" - -#include -#include "colormapst.h" -#include "scrnintstr.h" -#include "screenint.h" -#include "gcstruct.h" -#include "pixmapstr.h" -#include "pixmap.h" -#include "windowstr.h" -#include "window.h" -#include "xf86str.h" -#include "xf86RAC.h" -#include "mipointer.h" -#include "mipointrst.h" -#ifdef RENDER -# include "picturestr.h" -#endif - -#ifdef DEBUG -#define DPRINT_S(x,y) ErrorF(x ": %i\n",y); -#define DPRINT(x) ErrorF(x "\n"); -#else -#define DPRINT_S(x,y) -#define DPRINT(x) -#endif - -#define WRAP_SCREEN(x,y) {pScreenPriv->x = pScreen->x;\ - pScreen->x = y;} -#define WRAP_SCREEN_COND(x,y,cond) \ - {pScreenPriv->x = pScreen->x;\ - if (flag & (cond))\ - pScreen->x = y;} -#define UNWRAP_SCREEN(x) pScreen->x = pScreenPriv->x - -#define SCREEN_PROLOG(x) \ - pScreen->x = \ - ((RACScreenPtr) (pScreen)->devPrivates[RACScreenIndex].ptr)->x -#define SCREEN_EPILOG(x,y) pScreen->x = y; - -#define WRAP_PICT_COND(x,y,cond) if (ps)\ - {pScreenPriv->x = ps->x;\ - if (flag & (cond))\ - ps->x = y;} -#define UNWRAP_PICT(x) if (ps) {ps->x = pScreenPriv->x;} - -#define PICTURE_PROLOGUE(field) \ - ps->field = \ - ((RACScreenPtr) (pScreen)->devPrivates[RACScreenIndex].ptr)->field -#define PICTURE_EPILOGUE(field, wrap) \ - ps->field = wrap - -#define WRAP_SCREEN_INFO(x,y) {pScreenPriv->x = pScrn->x;\ - pScrn->x = y;} -#define WRAP_SCREEN_INFO_COND(x,y,cond) \ - {pScreenPriv->x = pScrn->x;\ - if (flag & (cond))\ - pScrn->x = y;} -#define UNWRAP_SCREEN_INFO(x) pScrn->x = pScreenPriv->x - -#define SPRITE_PROLOG miPointerScreenPtr PointPriv = \ -(miPointerScreenPtr)pScreen->devPrivates[miPointerScreenIndex].ptr;\ - RACScreenPtr pScreenPriv = \ -((RACScreenPtr) (pScreen)->devPrivates[RACScreenIndex].ptr);\ - PointPriv->spriteFuncs = pScreenPriv->miSprite; -#define SPRITE_EPILOG pScreenPriv->miSprite = PointPriv->spriteFuncs;\ - PointPriv->spriteFuncs = &RACSpriteFuncs; -#define WRAP_SPRITE_COND(cond){pScreenPriv->miSprite = PointPriv->spriteFuncs;\ - if(flag & (cond))\ - PointPriv->spriteFuncs = &RACSpriteFuncs;} -#define UNWRAP_SPRITE PointPriv->spriteFuncs = pScreenPriv->miSprite - - -#define GC_WRAP(x) pGCPriv->wrapOps = (x)->ops;\ - pGCPriv->wrapFuncs = (x)->funcs;\ - (x)->ops = &RACGCOps;\ - (x)->funcs = &RACGCFuncs; -#define GC_UNWRAP(x)\ - RACGCPtr pGCPriv = (RACGCPtr) (x)->devPrivates[RACGCIndex].ptr;\ - (x)->ops = pGCPriv->wrapOps;\ - (x)->funcs = pGCPriv->wrapFuncs; - -#define GC_SCREEN register ScrnInfoPtr pScrn \ - = xf86Screens[pGC->pScreen->myNum] - -#define ENABLE xf86EnableAccess(xf86Screens[pScreen->myNum]) -#define ENABLE_GC xf86EnableAccess(xf86Screens[pGC->pScreen->myNum]) - -typedef struct _RACScreen { - CreateGCProcPtr CreateGC; - CloseScreenProcPtr CloseScreen; - GetImageProcPtr GetImage; - GetSpansProcPtr GetSpans; - SourceValidateProcPtr SourceValidate; - PaintWindowBackgroundProcPtr PaintWindowBackground; - PaintWindowBorderProcPtr PaintWindowBorder; - CopyWindowProcPtr CopyWindow; - ClearToBackgroundProcPtr ClearToBackground; - BSFuncRec BackingStoreFuncs; - CreatePixmapProcPtr CreatePixmap; - SaveScreenProcPtr SaveScreen; - /* Colormap */ - StoreColorsProcPtr StoreColors; - /* Cursor */ - DisplayCursorProcPtr DisplayCursor; - RealizeCursorProcPtr RealizeCursor; - UnrealizeCursorProcPtr UnrealizeCursor; - RecolorCursorProcPtr RecolorCursor; - SetCursorPositionProcPtr SetCursorPosition; - void (*AdjustFrame)(int,int,int,int); - Bool (*SwitchMode)(int, DisplayModePtr,int); - Bool (*EnterVT)(int, int); - void (*LeaveVT)(int, int); - void (*FreeScreen)(int, int); - miPointerSpriteFuncPtr miSprite; -#ifdef RENDER - CompositeProcPtr Composite; - GlyphsProcPtr Glyphs; - CompositeRectsProcPtr CompositeRects; -#endif -} RACScreenRec, *RACScreenPtr; - -typedef struct _RACGC { - GCOps *wrapOps; - GCFuncs *wrapFuncs; -} RACGCRec, *RACGCPtr; - -/* Screen funcs */ -static Bool RACCloseScreen (int i, ScreenPtr pScreen); -static void RACGetImage (DrawablePtr pDrawable, int sx, int sy, - int w, int h, unsigned int format, - unsigned long planemask, char *pdstLine); -static void RACGetSpans (DrawablePtr pDrawable, int wMax, DDXPointPtr ppt, - int *pwidth, int nspans, char *pdstStart); -static void RACSourceValidate (DrawablePtr pDrawable, - int x, int y, int width, int height ); -static void RACPaintWindowBackground(WindowPtr pWin, RegionPtr prgn, int what); -static void RACPaintWindowBorder(WindowPtr pWin, RegionPtr prgn, int what); -static void RACCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, - RegionPtr prgnSrc ); -static void RACClearToBackground (WindowPtr pWin, int x, int y, - int w, int h, Bool generateExposures ); -static void RACSaveAreas (PixmapPtr pPixmap, RegionPtr prgnSave, - int xorg, int yorg, WindowPtr pWin); -static void RACRestoreAreas (PixmapPtr pPixmap, RegionPtr prgnRestore, - int xorg, int yorg, WindowPtr pWin); -static PixmapPtr RACCreatePixmap(ScreenPtr pScreen, int w, int h, int depth); -static Bool RACCreateGC(GCPtr pGC); -static Bool RACSaveScreen(ScreenPtr pScreen, Bool unblank); -static void RACStoreColors (ColormapPtr pmap, int ndef, xColorItem *pdefs); -static void RACRecolorCursor (ScreenPtr pScreen, CursorPtr pCurs, - Bool displayed); -static Bool RACRealizeCursor (ScreenPtr pScreen, CursorPtr pCursor); -static Bool RACUnrealizeCursor (ScreenPtr pScreen, CursorPtr pCursor); -static Bool RACDisplayCursor (ScreenPtr pScreen, CursorPtr pCursor); -static Bool RACSetCursorPosition (ScreenPtr pScreen, int x, int y, - Bool generateEvent); -static void RACAdjustFrame(int index, int x, int y, int flags); -static Bool RACSwitchMode(int index, DisplayModePtr mode, int flags); -static Bool RACEnterVT(int index, int flags); -static void RACLeaveVT(int index, int flags); -static void RACFreeScreen(int index, int flags); -/* GC funcs */ -static void RACValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); -static void RACChangeGC(GCPtr pGC, unsigned long mask); -static void RACCopyGC(GCPtr pGCSrc, unsigned long mask, GCPtr pGCDst); -static void RACDestroyGC(GCPtr pGC); -static void RACChangeClip(GCPtr pGC, int type, pointer pvalue, int nrects); -static void RACDestroyClip(GCPtr pGC); -static void RACCopyClip(GCPtr pgcDst, GCPtr pgcSrc); -/* GC ops */ -static void RACFillSpans( DrawablePtr pDraw, GC *pGC, int nInit, - DDXPointPtr pptInit, int *pwidthInit, int fSorted ); -static void RACSetSpans(DrawablePtr pDraw, GCPtr pGC, char *pcharsrc, - register DDXPointPtr ppt, int *pwidth, int nspans, - int fSorted ); -static void RACPutImage(DrawablePtr pDraw, GCPtr pGC, int depth, - int x, int y, int w, int h, int leftPad, - int format, char *pImage ); -static RegionPtr RACCopyArea(DrawablePtr pSrc, DrawablePtr pDst, - GC *pGC, int srcx, int srcy, - int width, int height, - int dstx, int dsty ); -static RegionPtr RACCopyPlane(DrawablePtr pSrc, DrawablePtr pDst, - GCPtr pGC, int srcx, int srcy, - int width, int height, int dstx, int dsty, - unsigned long bitPlane ); -static void RACPolyPoint(DrawablePtr pDraw, GCPtr pGC, int mode, - int npt, xPoint *pptInit ); -static void RACPolylines(DrawablePtr pDraw, GCPtr pGC, int mode, - int npt, DDXPointPtr pptInit ); -static void RACPolySegment(DrawablePtr pDraw, GCPtr pGC, int nseg, - xSegment *pSeg ); -static void RACPolyRectangle(DrawablePtr pDraw, GCPtr pGC, int nRectsInit, - xRectangle *pRectsInit ); -static void RACPolyArc(DrawablePtr pDraw, GCPtr pGC, int narcs, - xArc *parcs ); -static void RACFillPolygon(DrawablePtr pDraw, GCPtr pGC, int shape, int mode, - int count, DDXPointPtr ptsIn ); -static void RACPolyFillRect( DrawablePtr pDraw, GCPtr pGC, int nrectFill, - xRectangle *prectInit ); -static void RACPolyFillArc(DrawablePtr pDraw, GCPtr pGC, int narcs, - xArc *parcs ); -static int RACPolyText8(DrawablePtr pDraw, GCPtr pGC, int x, int y, - int count, char *chars ); -static int RACPolyText16(DrawablePtr pDraw, GCPtr pGC, int x, int y, - int count, unsigned short *chars ); -static void RACImageText8(DrawablePtr pDraw, GCPtr pGC, int x, int y, - int count, char *chars ); -static void RACImageText16(DrawablePtr pDraw, GCPtr pGC, int x, int y, - int count, unsigned short *chars ); -static void RACImageGlyphBlt(DrawablePtr pDraw, GCPtr pGC, int xInit, - int yInit, unsigned int nglyph, - CharInfoPtr *ppci, pointer pglyphBase ); -static void RACPolyGlyphBlt(DrawablePtr pDraw, GCPtr pGC, int xInit, - int yInit, unsigned int nglyph, - CharInfoPtr *ppci, pointer pglyphBase ); -static void RACPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDraw, - int dx, int dy, int xOrg, int yOrg ); -/* miSpriteFuncs */ -static Bool RACSpriteRealizeCursor(ScreenPtr pScreen, CursorPtr pCur); -static Bool RACSpriteUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCur); -static void RACSpriteSetCursor(ScreenPtr pScreen, CursorPtr pCur, - int x, int y); -static void RACSpriteMoveCursor(ScreenPtr pScreen, int x, int y); -#ifdef RENDER -static void RACComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, - PicturePtr pDst, INT16 xSrc, INT16 ySrc, - INT16 xMask, INT16 yMask, INT16 xDst, - INT16 yDst, CARD16 width, CARD16 height); -static void RACGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, - PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, - int nlist, GlyphListPtr list, GlyphPtr *glyphs); -static void RACCompositeRects(CARD8 op, PicturePtr pDst, xRenderColor *color, - int nRect, xRectangle *rects); -#endif - -static GCFuncs RACGCFuncs = { - RACValidateGC, RACChangeGC, RACCopyGC, RACDestroyGC, - RACChangeClip, RACDestroyClip, RACCopyClip -}; - -static GCOps RACGCOps = { - RACFillSpans, RACSetSpans, RACPutImage, RACCopyArea, - RACCopyPlane, RACPolyPoint, RACPolylines, RACPolySegment, - RACPolyRectangle, RACPolyArc, RACFillPolygon, RACPolyFillRect, - RACPolyFillArc, RACPolyText8, RACPolyText16, RACImageText8, - RACImageText16, RACImageGlyphBlt, RACPolyGlyphBlt, RACPushPixels, - {NULL} /* devPrivate */ -}; - -static miPointerSpriteFuncRec RACSpriteFuncs = { - RACSpriteRealizeCursor, RACSpriteUnrealizeCursor, RACSpriteSetCursor, - RACSpriteMoveCursor -}; - -static int RACScreenIndex = -1; -static int RACGCIndex = -1; -static unsigned long RACGeneration = 0; - - -Bool -xf86RACInit(ScreenPtr pScreen, unsigned int flag) -{ - ScrnInfoPtr pScrn; - RACScreenPtr pScreenPriv; - miPointerScreenPtr PointPriv; -#ifdef RENDER - PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); -#endif - - pScrn = xf86Screens[pScreen->myNum]; - PointPriv = (miPointerScreenPtr)pScreen->devPrivates[miPointerScreenIndex].ptr; - - DPRINT_S("RACInit",pScreen->myNum); - if (RACGeneration != serverGeneration) { - if ( ((RACScreenIndex = AllocateScreenPrivateIndex()) < 0) || - ((RACGCIndex = AllocateGCPrivateIndex()) < 0)) - return FALSE; - - RACGeneration = serverGeneration; - } - - if (!AllocateGCPrivate(pScreen, RACGCIndex, sizeof(RACGCRec))) - return FALSE; - - if (!(pScreenPriv = xalloc(sizeof(RACScreenRec)))) - return FALSE; - - pScreen->devPrivates[RACScreenIndex].ptr = (pointer)pScreenPriv; - - WRAP_SCREEN(CloseScreen, RACCloseScreen); - WRAP_SCREEN(SaveScreen, RACSaveScreen); - WRAP_SCREEN_COND(CreateGC, RACCreateGC, RAC_FB); - WRAP_SCREEN_COND(GetImage, RACGetImage, RAC_FB); - WRAP_SCREEN_COND(GetSpans, RACGetSpans, RAC_FB); - WRAP_SCREEN_COND(SourceValidate, RACSourceValidate, RAC_FB); - WRAP_SCREEN_COND(PaintWindowBackground, RACPaintWindowBackground, RAC_FB); - WRAP_SCREEN_COND(PaintWindowBorder, RACPaintWindowBorder, RAC_FB); - WRAP_SCREEN_COND(CopyWindow, RACCopyWindow, RAC_FB); - WRAP_SCREEN_COND(ClearToBackground, RACClearToBackground, RAC_FB); - WRAP_SCREEN_COND(CreatePixmap, RACCreatePixmap, RAC_FB); - WRAP_SCREEN_COND(BackingStoreFuncs.RestoreAreas, RACRestoreAreas, RAC_FB); - WRAP_SCREEN_COND(BackingStoreFuncs.SaveAreas, RACSaveAreas, RAC_FB); - WRAP_SCREEN_COND(StoreColors, RACStoreColors, RAC_COLORMAP); - WRAP_SCREEN_COND(DisplayCursor, RACDisplayCursor, RAC_CURSOR); - WRAP_SCREEN_COND(RealizeCursor, RACRealizeCursor, RAC_CURSOR); - WRAP_SCREEN_COND(UnrealizeCursor, RACUnrealizeCursor, RAC_CURSOR); - WRAP_SCREEN_COND(RecolorCursor, RACRecolorCursor, RAC_CURSOR); - WRAP_SCREEN_COND(SetCursorPosition, RACSetCursorPosition, RAC_CURSOR); -#ifdef RENDER - WRAP_PICT_COND(Composite,RACComposite,RAC_FB); - WRAP_PICT_COND(Glyphs,RACGlyphs,RAC_FB); - WRAP_PICT_COND(CompositeRects,RACCompositeRects,RAC_FB); -#endif - WRAP_SCREEN_INFO_COND(AdjustFrame, RACAdjustFrame, RAC_VIEWPORT); - WRAP_SCREEN_INFO(SwitchMode, RACSwitchMode); - WRAP_SCREEN_INFO(EnterVT, RACEnterVT); - WRAP_SCREEN_INFO(LeaveVT, RACLeaveVT); - WRAP_SCREEN_INFO(FreeScreen, RACFreeScreen); - WRAP_SPRITE_COND(RAC_CURSOR); - - return TRUE; -} - -/* Screen funcs */ -static Bool -RACCloseScreen (int i, ScreenPtr pScreen) -{ - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; - RACScreenPtr pScreenPriv = - (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; - miPointerScreenPtr PointPriv - = (miPointerScreenPtr)pScreen->devPrivates[miPointerScreenIndex].ptr; -#ifdef RENDER - PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); -#endif - - DPRINT_S("RACCloseScreen",pScreen->myNum); - UNWRAP_SCREEN(CreateGC); - UNWRAP_SCREEN(CloseScreen); - UNWRAP_SCREEN(GetImage); - UNWRAP_SCREEN(GetSpans); - UNWRAP_SCREEN(SourceValidate); - UNWRAP_SCREEN(PaintWindowBackground); - UNWRAP_SCREEN(PaintWindowBorder); - UNWRAP_SCREEN(CopyWindow); - UNWRAP_SCREEN(ClearToBackground); - UNWRAP_SCREEN(BackingStoreFuncs.RestoreAreas); - UNWRAP_SCREEN(BackingStoreFuncs.SaveAreas); - UNWRAP_SCREEN(SaveScreen); - UNWRAP_SCREEN(StoreColors); - UNWRAP_SCREEN(DisplayCursor); - UNWRAP_SCREEN(RealizeCursor); - UNWRAP_SCREEN(UnrealizeCursor); - UNWRAP_SCREEN(RecolorCursor); - UNWRAP_SCREEN(SetCursorPosition); -#ifdef RENDER - UNWRAP_PICT(Composite); - UNWRAP_PICT(Glyphs); - UNWRAP_PICT(CompositeRects); -#endif - UNWRAP_SCREEN_INFO(AdjustFrame); - UNWRAP_SCREEN_INFO(SwitchMode); - UNWRAP_SCREEN_INFO(EnterVT); - UNWRAP_SCREEN_INFO(LeaveVT); - UNWRAP_SCREEN_INFO(FreeScreen); - UNWRAP_SPRITE; - - xfree ((pointer) pScreenPriv); - - if (xf86Screens[pScreen->myNum]->vtSema) { - xf86EnterServerState(SETUP); - ENABLE; - } - return (*pScreen->CloseScreen) (i, pScreen); -} - -static void -RACGetImage ( - DrawablePtr pDrawable, - int sx, int sy, int w, int h, - unsigned int format, - unsigned long planemask, - char *pdstLine - ) -{ - ScreenPtr pScreen = pDrawable->pScreen; - DPRINT_S("RACGetImage",pScreen->myNum); - SCREEN_PROLOG(GetImage); - if (xf86Screens[pScreen->myNum]->vtSema) { - ENABLE; - } - (*pScreen->GetImage) (pDrawable, sx, sy, w, h, - format, planemask, pdstLine); - SCREEN_EPILOG (GetImage, RACGetImage); -} - -static void -RACGetSpans ( - DrawablePtr pDrawable, - int wMax, - DDXPointPtr ppt, - int *pwidth, - int nspans, - char *pdstStart - ) -{ - ScreenPtr pScreen = pDrawable->pScreen; - - DPRINT_S("RACGetSpans",pScreen->myNum); - SCREEN_PROLOG (GetSpans); - ENABLE; - (*pScreen->GetSpans) (pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - SCREEN_EPILOG (GetSpans, RACGetSpans); -} - -static void -RACSourceValidate ( - DrawablePtr pDrawable, - int x, int y, int width, int height ) -{ - ScreenPtr pScreen = pDrawable->pScreen; - DPRINT_S("RACSourceValidate",pScreen->myNum); - SCREEN_PROLOG (SourceValidate); - ENABLE; - if (pScreen->SourceValidate) - (*pScreen->SourceValidate) (pDrawable, x, y, width, height); - SCREEN_EPILOG (SourceValidate, RACSourceValidate); -} - -static void -RACPaintWindowBackground( - WindowPtr pWin, - RegionPtr prgn, - int what - ) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - - DPRINT_S("RACPaintWindowBackground",pScreen->myNum); - SCREEN_PROLOG (PaintWindowBackground); - ENABLE; - (*pScreen->PaintWindowBackground) (pWin, prgn, what); - SCREEN_EPILOG (PaintWindowBackground, RACPaintWindowBackground); -} - -static void -RACPaintWindowBorder( - WindowPtr pWin, - RegionPtr prgn, - int what -) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - - DPRINT_S("RACPaintWindowBorder",pScreen->myNum); - SCREEN_PROLOG (PaintWindowBorder); - ENABLE; - (*pScreen->PaintWindowBorder) (pWin, prgn, what); - SCREEN_EPILOG (PaintWindowBorder, RACPaintWindowBorder); -} - -static void -RACCopyWindow( - WindowPtr pWin, - DDXPointRec ptOldOrg, - RegionPtr prgnSrc ) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - - DPRINT_S("RACCopyWindow",pScreen->myNum); - SCREEN_PROLOG (CopyWindow); - ENABLE; - (*pScreen->CopyWindow) (pWin, ptOldOrg, prgnSrc); - SCREEN_EPILOG (CopyWindow, RACCopyWindow); -} - -static void -RACClearToBackground ( - WindowPtr pWin, - int x, int y, - int w, int h, - Bool generateExposures ) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - - DPRINT_S("RACClearToBackground",pScreen->myNum); - SCREEN_PROLOG ( ClearToBackground); - ENABLE; - (*pScreen->ClearToBackground) (pWin, x, y, w, h, generateExposures); - SCREEN_EPILOG (ClearToBackground, RACClearToBackground); -} - -static void -RACSaveAreas ( - PixmapPtr pPixmap, - RegionPtr prgnSave, - int xorg, - int yorg, - WindowPtr pWin - ) -{ - ScreenPtr pScreen = pPixmap->drawable.pScreen; - DPRINT_S("RACSaveAreas",pScreen->myNum); - SCREEN_PROLOG (BackingStoreFuncs.SaveAreas); - ENABLE; - (*pScreen->BackingStoreFuncs.SaveAreas) ( - pPixmap, prgnSave, xorg, yorg, pWin); - - SCREEN_EPILOG (BackingStoreFuncs.SaveAreas, RACSaveAreas); -} - -static void -RACRestoreAreas ( - PixmapPtr pPixmap, - RegionPtr prgnRestore, - int xorg, - int yorg, - WindowPtr pWin - ) -{ - ScreenPtr pScreen = pPixmap->drawable.pScreen; - - DPRINT_S("RACRestoreAreas",pScreen->myNum); - SCREEN_PROLOG (BackingStoreFuncs.RestoreAreas); - ENABLE; - (*pScreen->BackingStoreFuncs.RestoreAreas) ( - pPixmap, prgnRestore, xorg, yorg, pWin); - - SCREEN_EPILOG ( BackingStoreFuncs.RestoreAreas, RACRestoreAreas); -} - -static PixmapPtr -RACCreatePixmap(ScreenPtr pScreen, int w, int h, int depth) -{ - PixmapPtr pPix; - - DPRINT_S("RACCreatePixmap",pScreen->myNum); - SCREEN_PROLOG ( CreatePixmap); - ENABLE; - pPix = (*pScreen->CreatePixmap) (pScreen, w, h, depth); - SCREEN_EPILOG (CreatePixmap, RACCreatePixmap); - - return pPix; -} - -static Bool -RACSaveScreen(ScreenPtr pScreen, Bool unblank) -{ - Bool val; - - DPRINT_S("RACSaveScreen",pScreen->myNum); - SCREEN_PROLOG (SaveScreen); - ENABLE; - val = (*pScreen->SaveScreen) (pScreen, unblank); - SCREEN_EPILOG (SaveScreen, RACSaveScreen); - - return val; -} - -static void -RACStoreColors ( - ColormapPtr pmap, - int ndef, - xColorItem *pdefs) -{ - ScreenPtr pScreen = pmap->pScreen; - - DPRINT_S("RACStoreColors",pScreen->myNum); - SCREEN_PROLOG (StoreColors); - ENABLE; - (*pScreen->StoreColors) (pmap,ndef,pdefs); - - SCREEN_EPILOG ( StoreColors, RACStoreColors); -} - -static void -RACRecolorCursor ( - ScreenPtr pScreen, - CursorPtr pCurs, - Bool displayed - ) -{ - DPRINT_S("RACRecolorCursor",pScreen->myNum); - SCREEN_PROLOG (RecolorCursor); - ENABLE; - (*pScreen->RecolorCursor) (pScreen,pCurs,displayed); - - SCREEN_EPILOG ( RecolorCursor, RACRecolorCursor); -} - -static Bool -RACRealizeCursor ( - ScreenPtr pScreen, - CursorPtr pCursor - ) -{ - Bool val; - - DPRINT_S("RACRealizeCursor",pScreen->myNum); - SCREEN_PROLOG (RealizeCursor); - ENABLE; - val = (*pScreen->RealizeCursor) (pScreen,pCursor); - - SCREEN_EPILOG ( RealizeCursor, RACRealizeCursor); - return val; -} - -static Bool -RACUnrealizeCursor ( - ScreenPtr pScreen, - CursorPtr pCursor - ) -{ - Bool val; - - DPRINT_S("RACUnrealizeCursor",pScreen->myNum); - SCREEN_PROLOG (UnrealizeCursor); - ENABLE; - val = (*pScreen->UnrealizeCursor) (pScreen,pCursor); - - SCREEN_EPILOG ( UnrealizeCursor, RACUnrealizeCursor); - return val; -} - -static Bool -RACDisplayCursor ( - ScreenPtr pScreen, - CursorPtr pCursor - ) -{ - Bool val; - - DPRINT_S("RACDisplayCursor",pScreen->myNum); - SCREEN_PROLOG (DisplayCursor); - ENABLE; - val = (*pScreen->DisplayCursor) (pScreen,pCursor); - - SCREEN_EPILOG ( DisplayCursor, RACDisplayCursor); - return val; -} - -static Bool -RACSetCursorPosition ( - ScreenPtr pScreen, - int x, int y, - Bool generateEvent) -{ - Bool val; - - DPRINT_S("RACSetCursorPosition",pScreen->myNum); - SCREEN_PROLOG (SetCursorPosition); - ENABLE; - val = (*pScreen->SetCursorPosition) (pScreen,x,y,generateEvent); - - SCREEN_EPILOG ( SetCursorPosition, RACSetCursorPosition); - return val; -} - -static void -RACAdjustFrame(int index, int x, int y, int flags) -{ - ScreenPtr pScreen = screenInfo.screens[index]; - RACScreenPtr pScreenPriv = - (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; - - DPRINT_S("RACAdjustFrame",index); - xf86EnableAccess(xf86Screens[index]); - - (*pScreenPriv->AdjustFrame)(index, x, y, flags); -} - -static Bool -RACSwitchMode(int index, DisplayModePtr mode, int flags) -{ - ScreenPtr pScreen = screenInfo.screens[index]; - RACScreenPtr pScreenPriv = - (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; - - DPRINT_S("RACSwitchMode",index); - xf86EnableAccess(xf86Screens[index]); - - return (*pScreenPriv->SwitchMode)(index, mode, flags); -} - -static Bool -RACEnterVT(int index, int flags) -{ - ScreenPtr pScreen = screenInfo.screens[index]; - RACScreenPtr pScreenPriv = - (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; - - DPRINT_S("RACEnterVT",index); - xf86EnableAccess(xf86Screens[index]); - - return (*pScreenPriv->EnterVT)(index, flags); -} - -static void -RACLeaveVT(int index, int flags) -{ - ScreenPtr pScreen = screenInfo.screens[index]; - RACScreenPtr pScreenPriv = - (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; - - DPRINT_S("RACLeaveVT",index); - xf86EnableAccess(xf86Screens[index]); - - (*pScreenPriv->LeaveVT)(index, flags); -} - -static void -RACFreeScreen(int index, int flags) -{ - ScreenPtr pScreen = screenInfo.screens[index]; - RACScreenPtr pScreenPriv = - (RACScreenPtr) pScreen->devPrivates[RACScreenIndex].ptr; - - DPRINT_S("RACFreeScreen",index); - xf86EnableAccess(xf86Screens[index]); - - (*pScreenPriv->FreeScreen)(index, flags); -} - -static Bool -RACCreateGC(GCPtr pGC) -{ - ScreenPtr pScreen = pGC->pScreen; - RACGCPtr pGCPriv = (RACGCPtr) (pGC)->devPrivates[RACGCIndex].ptr; - Bool ret; - - DPRINT_S("RACCreateGC",pScreen->myNum); - SCREEN_PROLOG(CreateGC); - - ret = (*pScreen->CreateGC)(pGC); - - GC_WRAP(pGC); - SCREEN_EPILOG(CreateGC,RACCreateGC); - - return ret; -} - -/* GC funcs */ -static void -RACValidateGC( - GCPtr pGC, - unsigned long changes, - DrawablePtr pDraw ) -{ - GC_UNWRAP(pGC); - DPRINT("RACValidateGC"); - (*pGC->funcs->ValidateGC)(pGC, changes, pDraw); - GC_WRAP(pGC); -} - - -static void -RACDestroyGC(GCPtr pGC) -{ - GC_UNWRAP (pGC); - DPRINT("RACDestroyGC"); - (*pGC->funcs->DestroyGC)(pGC); - GC_WRAP (pGC); -} - -static void -RACChangeGC ( - GCPtr pGC, - unsigned long mask) -{ - GC_UNWRAP (pGC); - DPRINT("RACChangeGC"); - (*pGC->funcs->ChangeGC) (pGC, mask); - GC_WRAP (pGC); -} - -static void -RACCopyGC ( - GCPtr pGCSrc, - unsigned long mask, - GCPtr pGCDst) -{ - GC_UNWRAP (pGCDst); - DPRINT("RACCopyGC"); - (*pGCDst->funcs->CopyGC) (pGCSrc, mask, pGCDst); - GC_WRAP (pGCDst); -} - -static void -RACChangeClip ( - GCPtr pGC, - int type, - pointer pvalue, - int nrects ) -{ - GC_UNWRAP (pGC); - DPRINT("RACChangeClip"); - (*pGC->funcs->ChangeClip) (pGC, type, pvalue, nrects); - GC_WRAP (pGC); -} - -static void -RACCopyClip(GCPtr pgcDst, GCPtr pgcSrc) -{ - GC_UNWRAP (pgcDst); - DPRINT("RACCopyClip"); - (* pgcDst->funcs->CopyClip)(pgcDst, pgcSrc); - GC_WRAP (pgcDst); -} - -static void -RACDestroyClip(GCPtr pGC) -{ - GC_UNWRAP (pGC); - DPRINT("RACDestroyClip"); - (* pGC->funcs->DestroyClip)(pGC); - GC_WRAP (pGC); -} - -/* GC Ops */ -static void -RACFillSpans( - DrawablePtr pDraw, - GC *pGC, - int nInit, - DDXPointPtr pptInit, - int *pwidthInit, - int fSorted ) -{ - GC_UNWRAP(pGC); - DPRINT("RACFillSpans"); - ENABLE_GC; - (*pGC->ops->FillSpans)(pDraw, pGC, nInit, pptInit, pwidthInit, fSorted); - GC_WRAP(pGC); -} - -static void -RACSetSpans( - DrawablePtr pDraw, - GCPtr pGC, - char *pcharsrc, - register DDXPointPtr ppt, - int *pwidth, - int nspans, - int fSorted ) -{ - GC_UNWRAP(pGC); - DPRINT("RACSetSpans"); - ENABLE_GC; - (*pGC->ops->SetSpans)(pDraw, pGC, pcharsrc, ppt, pwidth, nspans, fSorted); - GC_WRAP(pGC); -} - -static void -RACPutImage( - DrawablePtr pDraw, - GCPtr pGC, - int depth, - int x, int y, int w, int h, - int leftPad, - int format, - char *pImage ) -{ - GC_UNWRAP(pGC); - DPRINT("RACPutImage"); - ENABLE_GC; - (*pGC->ops->PutImage)(pDraw, pGC, depth, x, y, w, h, - leftPad, format, pImage); - GC_WRAP(pGC); -} - -static RegionPtr -RACCopyArea( - DrawablePtr pSrc, - DrawablePtr pDst, - GC *pGC, - int srcx, int srcy, - int width, int height, - int dstx, int dsty ) -{ - RegionPtr ret; - - GC_UNWRAP(pGC); - DPRINT("RACCopyArea"); - ENABLE_GC; - ret = (*pGC->ops->CopyArea)(pSrc, pDst, - pGC, srcx, srcy, width, height, dstx, dsty); - GC_WRAP(pGC); - return ret; -} - -static RegionPtr -RACCopyPlane( - DrawablePtr pSrc, - DrawablePtr pDst, - GCPtr pGC, - int srcx, int srcy, - int width, int height, - int dstx, int dsty, - unsigned long bitPlane ) -{ - RegionPtr ret; - - GC_UNWRAP(pGC); - DPRINT("RACCopyPlane"); - ENABLE_GC; - ret = (*pGC->ops->CopyPlane)(pSrc, pDst, pGC, srcx, srcy, - width, height, dstx, dsty, bitPlane); - GC_WRAP(pGC); - return ret; -} - -static void -RACPolyPoint( - DrawablePtr pDraw, - GCPtr pGC, - int mode, - int npt, - xPoint *pptInit ) -{ - GC_UNWRAP(pGC); - DPRINT("RACPolyPoint"); - ENABLE_GC; - (*pGC->ops->PolyPoint)(pDraw, pGC, mode, npt, pptInit); - GC_WRAP(pGC); -} - - -static void -RACPolylines( - DrawablePtr pDraw, - GCPtr pGC, - int mode, - int npt, - DDXPointPtr pptInit ) -{ - GC_UNWRAP(pGC); - DPRINT("RACPolylines"); - ENABLE_GC; - (*pGC->ops->Polylines)(pDraw, pGC, mode, npt, pptInit); - GC_WRAP(pGC); -} - -static void -RACPolySegment( - DrawablePtr pDraw, - GCPtr pGC, - int nseg, - xSegment *pSeg ) -{ - GC_UNWRAP(pGC); - DPRINT("RACPolySegment"); - ENABLE_GC; - (*pGC->ops->PolySegment)(pDraw, pGC, nseg, pSeg); - GC_WRAP(pGC); -} - -static void -RACPolyRectangle( - DrawablePtr pDraw, - GCPtr pGC, - int nRectsInit, - xRectangle *pRectsInit ) -{ - GC_UNWRAP(pGC); - DPRINT("RACPolyRectangle"); - ENABLE_GC; - (*pGC->ops->PolyRectangle)(pDraw, pGC, nRectsInit, pRectsInit); - GC_WRAP(pGC); -} - -static void -RACPolyArc( - DrawablePtr pDraw, - GCPtr pGC, - int narcs, - xArc *parcs ) -{ - GC_UNWRAP(pGC); - DPRINT("RACPolyArc"); - ENABLE_GC; - (*pGC->ops->PolyArc)(pDraw, pGC, narcs, parcs); - GC_WRAP(pGC); -} - -static void -RACFillPolygon( - DrawablePtr pDraw, - GCPtr pGC, - int shape, - int mode, - int count, - DDXPointPtr ptsIn ) -{ - GC_UNWRAP(pGC); - DPRINT("RACFillPolygon"); - ENABLE_GC; - (*pGC->ops->FillPolygon)(pDraw, pGC, shape, mode, count, ptsIn); - GC_WRAP(pGC); -} - - -static void -RACPolyFillRect( - DrawablePtr pDraw, - GCPtr pGC, - int nrectFill, - xRectangle *prectInit ) -{ - GC_UNWRAP(pGC); - DPRINT("RACPolyFillRect"); - ENABLE_GC; - (*pGC->ops->PolyFillRect)(pDraw, pGC, nrectFill, prectInit); - GC_WRAP(pGC); -} - - -static void -RACPolyFillArc( - DrawablePtr pDraw, - GCPtr pGC, - int narcs, - xArc *parcs ) -{ - GC_UNWRAP(pGC); - DPRINT("RACPolyFillArc"); - ENABLE_GC; - (*pGC->ops->PolyFillArc)(pDraw, pGC, narcs, parcs); - GC_WRAP(pGC); -} - -static int -RACPolyText8( - DrawablePtr pDraw, - GCPtr pGC, - int x, - int y, - int count, - char *chars ) -{ - int ret; - - GC_UNWRAP(pGC); - DPRINT("RACPolyText8"); - ENABLE_GC; - ret = (*pGC->ops->PolyText8)(pDraw, pGC, x, y, count, chars); - GC_WRAP(pGC); - return ret; -} - -static int -RACPolyText16( - DrawablePtr pDraw, - GCPtr pGC, - int x, - int y, - int count, - unsigned short *chars ) -{ - int ret; - - GC_UNWRAP(pGC); - DPRINT("RACPolyText16"); - ENABLE_GC; - ret = (*pGC->ops->PolyText16)(pDraw, pGC, x, y, count, chars); - GC_WRAP(pGC); - return ret; -} - -static void -RACImageText8( - DrawablePtr pDraw, - GCPtr pGC, - int x, - int y, - int count, - char *chars ) -{ - GC_UNWRAP(pGC); - DPRINT("RACImageText8"); - ENABLE_GC; - (*pGC->ops->ImageText8)(pDraw, pGC, x, y, count, chars); - GC_WRAP(pGC); -} - -static void -RACImageText16( - DrawablePtr pDraw, - GCPtr pGC, - int x, - int y, - int count, - unsigned short *chars ) -{ - GC_UNWRAP(pGC); - DPRINT("RACImageText16"); - ENABLE_GC; - (*pGC->ops->ImageText16)(pDraw, pGC, x, y, count, chars); - GC_WRAP(pGC); -} - - -static void -RACImageGlyphBlt( - DrawablePtr pDraw, - GCPtr pGC, - int xInit, int yInit, - unsigned int nglyph, - CharInfoPtr *ppci, - pointer pglyphBase ) -{ - GC_UNWRAP(pGC); - DPRINT("RACImageGlyphBlt"); - ENABLE_GC; - (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, xInit, yInit, - nglyph, ppci, pglyphBase); - GC_WRAP(pGC); -} - -static void -RACPolyGlyphBlt( - DrawablePtr pDraw, - GCPtr pGC, - int xInit, int yInit, - unsigned int nglyph, - CharInfoPtr *ppci, - pointer pglyphBase ) -{ - GC_UNWRAP(pGC); - DPRINT("RACPolyGlyphBlt"); - ENABLE_GC; - (*pGC->ops->PolyGlyphBlt)(pDraw, pGC, xInit, yInit, - nglyph, ppci, pglyphBase); - GC_WRAP(pGC); -} - -static void -RACPushPixels( - GCPtr pGC, - PixmapPtr pBitMap, - DrawablePtr pDraw, - int dx, int dy, int xOrg, int yOrg ) -{ - GC_UNWRAP(pGC); - DPRINT("RACPushPixels"); - ENABLE_GC; - (*pGC->ops->PushPixels)(pGC, pBitMap, pDraw, dx, dy, xOrg, yOrg); - GC_WRAP(pGC); -} - - -/* miSpriteFuncs */ -static Bool -RACSpriteRealizeCursor(ScreenPtr pScreen, CursorPtr pCur) -{ - Bool val; - SPRITE_PROLOG; - DPRINT_S("RACSpriteRealizeCursor",pScreen->myNum); - ENABLE; - val = PointPriv->spriteFuncs->RealizeCursor(pScreen, pCur); - SPRITE_EPILOG; - return val; -} - -static Bool -RACSpriteUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCur) -{ - Bool val; - SPRITE_PROLOG; - DPRINT_S("RACSpriteUnrealizeCursor",pScreen->myNum); - ENABLE; - val = PointPriv->spriteFuncs->UnrealizeCursor(pScreen, pCur); - SPRITE_EPILOG; - return val; -} - -static void -RACSpriteSetCursor(ScreenPtr pScreen, CursorPtr pCur, int x, int y) -{ - SPRITE_PROLOG; - DPRINT_S("RACSpriteSetCursor",pScreen->myNum); - ENABLE; - PointPriv->spriteFuncs->SetCursor(pScreen, pCur, x, y); - SPRITE_EPILOG; -} - -static void -RACSpriteMoveCursor(ScreenPtr pScreen, int x, int y) -{ - SPRITE_PROLOG; - DPRINT_S("RACSpriteMoveCursor",pScreen->myNum); - ENABLE; - PointPriv->spriteFuncs->MoveCursor(pScreen, x, y); - SPRITE_EPILOG; -} - -#ifdef RENDER -static void -RACComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, - PicturePtr pDst, INT16 xSrc, INT16 ySrc, INT16 xMask, - INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, - CARD16 height) -{ - ScreenPtr pScreen = pDst->pDrawable->pScreen; - PictureScreenPtr ps = GetPictureScreen(pScreen); - - PICTURE_PROLOGUE(Composite); - - ENABLE; - (*ps->Composite) (op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, xDst, - yDst, width, height); - - PICTURE_EPILOGUE(Composite, RACComposite); -} - -static void -RACGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, - PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int nlist, - GlyphListPtr list, GlyphPtr *glyphs) -{ - ScreenPtr pScreen = pDst->pDrawable->pScreen; - PictureScreenPtr ps = GetPictureScreen(pScreen); - - PICTURE_PROLOGUE(Glyphs); - - ENABLE; - (*ps->Glyphs)(op, pSrc, pDst, maskFormat, xSrc, ySrc, nlist, list, glyphs); - - PICTURE_EPILOGUE (Glyphs, RACGlyphs); -} - -static void -RACCompositeRects(CARD8 op, PicturePtr pDst, xRenderColor *color, int nRect, - xRectangle *rects) -{ - ScreenPtr pScreen = pDst->pDrawable->pScreen; - PictureScreenPtr ps = GetPictureScreen(pScreen); - - PICTURE_PROLOGUE(CompositeRects); - - ENABLE; - (*ps->CompositeRects)(op, pDst, color, nRect, rects); - - PICTURE_EPILOGUE (CompositeRects, RACCompositeRects); -} -#endif - diff --git a/hw/xfree86/rac/xf86RAC.h b/hw/xfree86/rac/xf86RAC.h deleted file mode 100644 index 783d79b..0000000 --- a/hw/xfree86/rac/xf86RAC.h +++ /dev/null @@ -1,18 +0,0 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/rac/xf86RAC.h,v 1.2 1999/05/15 12:10:33 dawes Exp $ */ - -#ifndef __XF86RAC_H -#define __XF86RAC_H 1 - -#include "screenint.h" -#include "misc.h" -#include "xf86.h" - -Bool xf86RACInit(ScreenPtr pScreen, unsigned int flag); - -/* flags */ -#define RAC_FB 0x01 -#define RAC_CURSOR 0x02 -#define RAC_COLORMAP 0x04 -#define RAC_VIEWPORT 0x08 - -#endif /* __XF86RAC_H */ -- 1.3.0.rc3.g944e-dirty