xserver-multidpi/iplan2p4/ipl.h
2003-11-14 16:48:57 +00:00

1494 lines
30 KiB
C

/* $XFree86: xc/programs/Xserver/iplan2p4/ipl.h,v 3.5 2001/01/30 22:06:21 tsi Exp $ */
/* $XConsortium: ipl.h,v 5.37 94/04/17 20:28:38 dpw Exp $ */
/************************************************************
Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
All Rights Reserved
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright no-
tice appear in all copies and that both that copyright no-
tice and this permission notice appear in supporting docu-
mentation, and that the names of Sun or X Consortium
not be used in advertising or publicity pertaining to
distribution of the software without specific prior
written permission. Sun and X Consortium make no
representations about the suitability of this software for
any purpose. It is provided "as is" without any express or
implied warranty.
SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI-
ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
/* Modified nov 94 by Martin Schaller (Martin_Schaller@maus.r.de) for use with
interleaved planes */
#include "X.h"
#include "pixmap.h"
#include "region.h"
#include "gc.h"
#include "colormap.h"
#include "miscstruct.h"
#include "servermd.h"
#include "windowstr.h"
#include "mfb.h"
#undef PixelType
#include "iplmap.h"
/*
private filed of pixmap
pixmap.devPrivate = (unsigned int *)pointer_to_bits
pixmap.devKind = width_of_pixmap_in_bytes
*/
extern int iplGCPrivateIndex;
extern int iplWindowPrivateIndex;
/* private field of GC */
typedef struct {
unsigned char rop; /* special case rop values */
/* next two values unused in ipl, included for compatibility with mfb */
unsigned char ropOpStip; /* rop for opaque stipple */
/* this value is ropFillArea in mfb, usurped for ipl */
unsigned char oneRect; /* drawable has one clip rect */
unsigned long xor, and; /* reduced rop values */
unsigned short xorg[INTER_PLANES],andg[INTER_PLANES];
} iplPrivGC;
typedef iplPrivGC *iplPrivGCPtr;
#define iplGetGCPrivate(pGC) ((iplPrivGCPtr)\
(pGC)->devPrivates[iplGCPrivateIndex].ptr)
#define iplGetCompositeClip(pGC) ((pGC)->pCompositeClip)
/* way to carry RROP info around */
typedef struct {
unsigned char rop;
unsigned long xor, and;
unsigned short xorg[INTER_PLANES],andg[INTER_PLANES];
} iplRRopRec, *iplRRopPtr;
/* private field of window */
typedef struct {
unsigned char fastBorder; /* non-zero if border is 32 bits wide */
unsigned char fastBackground;
unsigned short unused; /* pad for alignment with Sun compiler */
DDXPointRec oldRotate;
PixmapPtr pRotatedBackground;
PixmapPtr pRotatedBorder;
} iplPrivWin;
#define iplGetWindowPrivate(_pWin) ((iplPrivWin *)\
(_pWin)->devPrivates[iplWindowPrivateIndex].ptr)
/* ipl8bit.c */
extern int iplSetStipple(
#if NeedFunctionPrototypes
int /*alu*/,
unsigned long /*fg*/,
unsigned long /*planemask*/
#endif
);
extern int iplSetOpaqueStipple(
#if NeedFunctionPrototypes
int /*alu*/,
unsigned long /*fg*/,
unsigned long /*bg*/,
unsigned long /*planemask*/
#endif
);
extern int iplComputeClipMasks32(
#if NeedFunctionPrototypes
BoxPtr /*pBox*/,
int /*numRects*/,
int /*x*/,
int /*y*/,
int /*w*/,
int /*h*/,
CARD32 * /*clips*/
#endif
);
/* ipl8cppl.c */
extern void iplCopyImagePlane(
#if NeedFunctionPrototypes
DrawablePtr /*pSrcDrawable*/,
DrawablePtr /*pDstDrawable*/,
int /*rop*/,
RegionPtr /*prgnDst*/,
DDXPointPtr /*pptSrc*/,
unsigned long /*planemask*/
#endif
);
extern void iplCopyPlane8to1(
#if NeedFunctionPrototypes
DrawablePtr /*pSrcDrawable*/,
DrawablePtr /*pDstDrawable*/,
int /*rop*/,
RegionPtr /*prgnDst*/,
DDXPointPtr /*pptSrc*/,
unsigned long /*planemask*/,
unsigned long /*bitPlane*/
#endif
);
/* ipl8lineCO.c */
extern int ipl8LineSS1RectCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*mode*/,
int /*npt*/,
DDXPointPtr /*pptInit*/,
DDXPointPtr /*pptInitOrig*/,
int * /*x1p*/,
int * /*y1p*/,
int * /*x2p*/,
int * /*y2p*/
#endif
);
extern void ipl8LineSS1Rect(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*mode*/,
int /*npt*/,
DDXPointPtr /*pptInit*/
#endif
);
extern void ipl8ClippedLineCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*x1*/,
int /*y1*/,
int /*x2*/,
int /*y2*/,
BoxPtr /*boxp*/,
Bool /*shorten*/
#endif
);
/* ipl8lineCP.c */
extern int ipl8LineSS1RectPreviousCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*mode*/,
int /*npt*/,
DDXPointPtr /*pptInit*/,
DDXPointPtr /*pptInitOrig*/,
int * /*x1p*/,
int * /*y1p*/,
int * /*x2p*/,
int * /*y2p*/
#endif
);
/* ipl8lineG.c */
extern int ipl8LineSS1RectGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*mode*/,
int /*npt*/,
DDXPointPtr /*pptInit*/,
DDXPointPtr /*pptInitOrig*/,
int * /*x1p*/,
int * /*y1p*/,
int * /*x2p*/,
int * /*y2p*/
#endif
);
extern void ipl8ClippedLineGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*x1*/,
int /*y1*/,
int /*x2*/,
int /*y2*/,
BoxPtr /*boxp*/,
Bool /*shorten*/
#endif
);
/* ipl8lineX.c */
extern int ipl8LineSS1RectXor(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*mode*/,
int /*npt*/,
DDXPointPtr /*pptInit*/,
DDXPointPtr /*pptInitOrig*/,
int * /*x1p*/,
int * /*y1p*/,
int * /*x2p*/,
int * /*y2p*/
#endif
);
extern void ipl8ClippedLineXor(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*x1*/,
int /*y1*/,
int /*x2*/,
int /*y2*/,
BoxPtr /*boxp*/,
Bool /*shorten*/
#endif
);
/* ipl8segC.c */
extern int ipl8SegmentSS1RectCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nseg*/,
xSegment * /*pSegInit*/
#endif
);
/* ipl8segCS.c */
extern int ipl8SegmentSS1RectShiftCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nseg*/,
xSegment * /*pSegInit*/
#endif
);
extern void ipl8SegmentSS1Rect(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nseg*/,
xSegment * /*pSegInit*/
#endif
);
/* ipl8segG.c */
extern int ipl8SegmentSS1RectGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nseg*/,
xSegment * /*pSegInit*/
#endif
);
/* iplsegX.c */
extern int ipl8SegmentSS1RectXor(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nseg*/,
xSegment * /*pSegInit*/
#endif
);
/* iplallpriv.c */
extern Bool iplAllocatePrivates(
#if NeedFunctionPrototypes
ScreenPtr /*pScreen*/,
int * /*window_index*/,
int * /*gc_index*/
#endif
);
/* iplbitblt.c */
extern RegionPtr iplBitBlt(
#if NeedFunctionPrototypes
DrawablePtr /*pSrcDrawable*/,
DrawablePtr /*pDstDrawable*/,
GCPtr/*pGC*/,
int /*srcx*/,
int /*srcy*/,
int /*width*/,
int /*height*/,
int /*dstx*/,
int /*dsty*/,
void (* /*doBitBlt*/)(),
unsigned long /*bitPlane*/
#endif
);
extern void iplDoBitblt(
#if NeedFunctionPrototypes
DrawablePtr /*pSrc*/,
DrawablePtr /*pDst*/,
int /*alu*/,
RegionPtr /*prgnDst*/,
DDXPointPtr /*pptSrc*/,
unsigned long /*planemask*/
#endif
);
extern RegionPtr iplCopyArea(
#if NeedFunctionPrototypes
DrawablePtr /*pSrcDrawable*/,
DrawablePtr /*pDstDrawable*/,
GCPtr/*pGC*/,
int /*srcx*/,
int /*srcy*/,
int /*width*/,
int /*height*/,
int /*dstx*/,
int /*dsty*/
#endif
);
extern void iplCopyPlane1to8(
#if NeedFunctionPrototypes
DrawablePtr /*pSrcDrawable*/,
DrawablePtr /*pDstDrawable*/,
int /*rop*/,
RegionPtr /*prgnDst*/,
DDXPointPtr /*pptSrc*/,
unsigned long /*planemask*/,
unsigned long /*bitPlane*/
#endif
);
extern RegionPtr iplCopyPlane(
#if NeedFunctionPrototypes
DrawablePtr /*pSrcDrawable*/,
DrawablePtr /*pDstDrawable*/,
GCPtr /*pGC*/,
int /*srcx*/,
int /*srcy*/,
int /*width*/,
int /*height*/,
int /*dstx*/,
int /*dsty*/,
unsigned long /*bitPlane*/
#endif
);
/* iplbltC.c */
extern void iplDoBitbltCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pSrc*/,
DrawablePtr /*pDst*/,
int /*alu*/,
RegionPtr /*prgnDst*/,
DDXPointPtr /*pptSrc*/,
unsigned long /*planemask*/
#endif
);
/* iplbltG.c */
extern void iplDoBitbltGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pSrc*/,
DrawablePtr /*pDst*/,
int /*alu*/,
RegionPtr /*prgnDst*/,
DDXPointPtr /*pptSrc*/,
unsigned long /*planemask*/
#endif
);
/* iplbltO.c */
extern void iplDoBitbltOr(
#if NeedFunctionPrototypes
DrawablePtr /*pSrc*/,
DrawablePtr /*pDst*/,
int /*alu*/,
RegionPtr /*prgnDst*/,
DDXPointPtr /*pptSrc*/,
unsigned long /*planemask*/
#endif
);
/* iplbltX.c */
extern void iplDoBitbltXor(
#if NeedFunctionPrototypes
DrawablePtr /*pSrc*/,
DrawablePtr /*pDst*/,
int /*alu*/,
RegionPtr /*prgnDst*/,
DDXPointPtr /*pptSrc*/,
unsigned long /*planemask*/
#endif
);
/* iplbres.c */
extern void iplBresS(
#if NeedFunctionPrototypes
int /*rop*/,
unsigned short * /*and*/,
unsigned short * /*xor*/,
unsigned short * /*addrl*/,
int /*nlwidth*/,
int /*signdx*/,
int /*signdy*/,
int /*axis*/,
int /*x1*/,
int /*y1*/,
int /*e*/,
int /*e1*/,
int /*e2*/,
int /*len*/
#endif
);
/* iplbresd.c */
extern void iplBresD(
#if NeedFunctionPrototypes
iplRRopPtr /*rrops*/,
int * /*pdashIndex*/,
unsigned char * /*pDash*/,
int /*numInDashList*/,
int * /*pdashOffset*/,
int /*isDoubleDash*/,
unsigned short * /*addrl*/,
int /*nlwidth*/,
int /*signdx*/,
int /*signdy*/,
int /*axis*/,
int /*x1*/,
int /*y1*/,
int /*e*/,
int /*e1*/,
int /*e2*/,
int /*len*/
#endif
);
/* iplbstore.c */
extern void iplSaveAreas(
#if NeedFunctionPrototypes
PixmapPtr /*pPixmap*/,
RegionPtr /*prgnSave*/,
int /*xorg*/,
int /*yorg*/,
WindowPtr /*pWin*/
#endif
);
extern void iplRestoreAreas(
#if NeedFunctionPrototypes
PixmapPtr /*pPixmap*/,
RegionPtr /*prgnRestore*/,
int /*xorg*/,
int /*yorg*/,
WindowPtr /*pWin*/
#endif
);
/* iplcmap.c */
extern int iplListInstalledColormaps(
#if NeedFunctionPrototypes
ScreenPtr /*pScreen*/,
Colormap * /*pmaps*/
#endif
);
extern void iplInstallColormap(
#if NeedFunctionPrototypes
ColormapPtr /*pmap*/
#endif
);
extern void iplUninstallColormap(
#if NeedFunctionPrototypes
ColormapPtr /*pmap*/
#endif
);
extern void iplResolveColor(
#if NeedFunctionPrototypes
unsigned short * /*pred*/,
unsigned short * /*pgreen*/,
unsigned short * /*pblue*/,
VisualPtr /*pVisual*/
#endif
);
extern Bool iplInitializeColormap(
#if NeedFunctionPrototypes
ColormapPtr /*pmap*/
#endif
);
extern int iplExpandDirectColors(
#if NeedFunctionPrototypes
ColormapPtr /*pmap*/,
int /*ndef*/,
xColorItem * /*indefs*/,
xColorItem * /*outdefs*/
#endif
);
extern Bool iplCreateDefColormap(
#if NeedFunctionPrototypes
ScreenPtr /*pScreen*/
#endif
);
extern Bool iplSetVisualTypes(
#if NeedFunctionPrototypes
int /*depth*/,
int /*visuals*/,
int /*bitsPerRGB*/
#endif
);
extern Bool iplInitVisuals(
#if NeedFunctionPrototypes
VisualPtr * /*visualp*/,
DepthPtr * /*depthp*/,
int * /*nvisualp*/,
int * /*ndepthp*/,
int * /*rootDepthp*/,
VisualID * /*defaultVisp*/,
unsigned long /*sizes*/,
int /*bitsPerRGB*/
#endif
);
/* iplfillarcC.c */
extern void iplPolyFillArcSolidCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDraw*/,
GCPtr /*pGC*/,
int /*narcs*/,
xArc * /*parcs*/
#endif
);
/* iplfillarcG.c */
extern void iplPolyFillArcSolidGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDraw*/,
GCPtr /*pGC*/,
int /*narcs*/,
xArc * /*parcs*/
#endif
);
/* iplfillrct.c */
extern void iplFillBoxTileOdd(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*n*/,
BoxPtr /*rects*/,
PixmapPtr /*tile*/,
int /*xrot*/,
int /*yrot*/
#endif
);
extern void iplFillRectTileOdd(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nBox*/,
BoxPtr /*pBox*/
#endif
);
extern void iplPolyFillRect(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nrectFill*/,
xRectangle * /*prectInit*/
#endif
);
/* iplfillsp.c */
extern void iplUnnaturalTileFS(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr/*pGC*/,
int /*nInit*/,
DDXPointPtr /*pptInit*/,
int * /*pwidthInit*/,
int /*fSorted*/
#endif
);
extern void iplUnnaturalStippleFS(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr/*pGC*/,
int /*nInit*/,
DDXPointPtr /*pptInit*/,
int * /*pwidthInit*/,
int /*fSorted*/
#endif
);
extern void ipl8Stipple32FS(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nInit*/,
DDXPointPtr /*pptInit*/,
int * /*pwidthInit*/,
int /*fSorted*/
#endif
);
extern void ipl8OpaqueStipple32FS(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nInit*/,
DDXPointPtr /*pptInit*/,
int * /*pwidthInit*/,
int /*fSorted*/
#endif
);
/* iplgc.c */
extern GCOpsPtr iplMatchCommon(
#if NeedFunctionPrototypes
GCPtr /*pGC*/,
iplPrivGCPtr /*devPriv*/
#endif
);
extern Bool iplCreateGC(
#if NeedFunctionPrototypes
GCPtr /*pGC*/
#endif
);
extern void iplValidateGC(
#if NeedFunctionPrototypes
GCPtr /*pGC*/,
unsigned long /*changes*/,
DrawablePtr /*pDrawable*/
#endif
);
/* iplgetsp.c */
extern void iplGetSpans(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*wMax*/,
DDXPointPtr /*ppt*/,
int * /*pwidth*/,
int /*nspans*/,
char * /*pdstStart*/
#endif
);
/* iplglblt8.c */
extern void iplPolyGlyphBlt8(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*x*/,
int /*y*/,
unsigned int /*nglyph*/,
CharInfoPtr * /*ppci*/,
pointer /*pglyphBase*/
#endif
);
/* iplglrop8.c */
extern void iplPolyGlyphRop8(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*x*/,
int /*y*/,
unsigned int /*nglyph*/,
CharInfoPtr * /*ppci*/,
pointer /*pglyphBase*/
#endif
);
/* iplhrzvert.c */
extern int iplHorzS(
#if NeedFunctionPrototypes
int /*rop*/,
unsigned short * /*and*/,
unsigned short * /*xor*/,
unsigned short * /*addrg*/,
int /*nlwidth*/,
int /*x1*/,
int /*y1*/,
int /*len*/
#endif
);
extern int iplVertS(
#if NeedFunctionPrototypes
int /*rop*/,
unsigned short * /*and*/,
unsigned short * /*xor*/,
unsigned short * /*addrg*/,
int /*nlwidth*/,
int /*x1*/,
int /*y1*/,
int /*len*/
#endif
);
/* ipligblt8.c */
extern void iplImageGlyphBlt8(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*x*/,
int /*y*/,
unsigned int /*nglyph*/,
CharInfoPtr * /*ppci*/,
pointer /*pglyphBase*/
#endif
);
/* iplimage.c */
extern void iplPutImage(
#if NeedFunctionPrototypes
DrawablePtr /*pDraw*/,
GCPtr /*pGC*/,
int /*depth*/,
int /*x*/,
int /*y*/,
int /*w*/,
int /*h*/,
int /*leftPad*/,
int /*format*/,
char * /*pImage*/
#endif
);
extern void iplGetImage(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*sx*/,
int /*sy*/,
int /*w*/,
int /*h*/,
unsigned int /*format*/,
unsigned long /*planeMask*/,
char * /*pdstLine*/
#endif
);
/* iplline.c */
extern void iplLineSS(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*mode*/,
int /*npt*/,
DDXPointPtr /*pptInit*/
#endif
);
extern void iplLineSD(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*mode*/,
int /*npt*/,
DDXPointPtr /*pptInit*/
#endif
);
/* iplmskbits.c */
/* iplpixmap.c */
extern PixmapPtr iplCreatePixmap(
#if NeedFunctionPrototypes
ScreenPtr /*pScreen*/,
int /*width*/,
int /*height*/,
int /*depth*/
#endif
);
extern Bool iplDestroyPixmap(
#if NeedFunctionPrototypes
PixmapPtr /*pPixmap*/
#endif
);
extern PixmapPtr iplCopyPixmap(
#if NeedFunctionPrototypes
PixmapPtr /*pSrc*/
#endif
);
extern void iplPadPixmap(
#if NeedFunctionPrototypes
PixmapPtr /*pPixmap*/
#endif
);
extern void iplXRotatePixmap(
#if NeedFunctionPrototypes
PixmapPtr /*pPix*/,
int /*rw*/
#endif
);
extern void iplYRotatePixmap(
#if NeedFunctionPrototypes
PixmapPtr /*pPix*/,
int /*rh*/
#endif
);
extern void iplCopyRotatePixmap(
#if NeedFunctionPrototypes
PixmapPtr /*psrcPix*/,
PixmapPtr * /*ppdstPix*/,
int /*xrot*/,
int /*yrot*/
#endif
);
/* iplply1rctC.c */
extern void iplFillPoly1RectCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*shape*/,
int /*mode*/,
int /*count*/,
DDXPointPtr /*ptsIn*/
#endif
);
/* iplply1rctG.c */
extern void iplFillPoly1RectGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*shape*/,
int /*mode*/,
int /*count*/,
DDXPointPtr /*ptsIn*/
#endif
);
/* iplpntwin.c */
extern void iplPaintWindow(
#if NeedFunctionPrototypes
WindowPtr /*pWin*/,
RegionPtr /*pRegion*/,
int /*what*/
#endif
);
extern void iplFillBoxSolid(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*nBox*/,
BoxPtr /*pBox*/,
unsigned long /*pixel*/
#endif
);
extern void iplFillBoxTile32(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*nBox*/,
BoxPtr /*pBox*/,
PixmapPtr /*tile*/
#endif
);
/* iplpolypnt.c */
extern void iplPolyPoint(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*mode*/,
int /*npt*/,
xPoint * /*pptInit*/
#endif
);
/* iplpush8.c */
extern void iplPushPixels8(
#if NeedFunctionPrototypes
GCPtr /*pGC*/,
PixmapPtr /*pBitmap*/,
DrawablePtr /*pDrawable*/,
int /*dx*/,
int /*dy*/,
int /*xOrg*/,
int /*yOrg*/
#endif
);
/* iplrctstp8.c */
extern void ipl8FillRectOpaqueStippled32(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nBox*/,
BoxPtr /*pBox*/
#endif
);
extern void ipl8FillRectTransparentStippled32(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nBox*/,
BoxPtr /*pBox*/
#endif
);
extern void ipl8FillRectStippledUnnatural(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nBox*/,
BoxPtr /*pBox*/
#endif
);
/* iplrrop.c */
extern int iplReduceRasterOp(
#if NeedFunctionPrototypes
int /*rop*/,
unsigned long /*fg*/,
unsigned long /*pm*/,
unsigned short * /*andp*/,
unsigned short * /*xorp*/
#endif
);
/* iplscrinit.c */
extern Bool iplCloseScreen(
#if NeedFunctionPrototypes
int /*index*/,
ScreenPtr /*pScreen*/
#endif
);
extern Bool iplSetupScreen(
#if NeedFunctionPrototypes
ScreenPtr /*pScreen*/,
pointer /*pbits*/,
int /*xsize*/,
int /*ysize*/,
int /*dpix*/,
int /*dpiy*/,
int /*width*/
#endif
);
extern int iplFinishScreenInit(
#if NeedFunctionPrototypes
ScreenPtr /*pScreen*/,
pointer /*pbits*/,
int /*xsize*/,
int /*ysize*/,
int /*dpix*/,
int /*dpiy*/,
int /*width*/
#endif
);
extern Bool iplScreenInit(
#if NeedFunctionPrototypes
ScreenPtr /*pScreen*/,
pointer /*pbits*/,
int /*xsize*/,
int /*ysize*/,
int /*dpix*/,
int /*dpiy*/,
int /*width*/
#endif
);
extern PixmapPtr iplGetScreenPixmap(
#if NeedFunctionPrototypes
ScreenPtr /*pScreen*/
#endif
);
extern void iplSetScreenPixmap(
#if NeedFunctionPrototypes
PixmapPtr /*pPix*/
#endif
);
/* iplseg.c */
extern void iplSegmentSS(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nseg*/,
xSegment * /*pSeg*/
#endif
);
extern void iplSegmentSD(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nseg*/,
xSegment * /*pSeg*/
#endif
);
/* iplsetsp.c */
extern int iplSetScanline(
#if NeedFunctionPrototypes
int /*y*/,
int /*xOrigin*/,
int /*xStart*/,
int /*xEnd*/,
unsigned int * /*psrc*/,
int /*alu*/,
unsigned short * /*pdstBase*/,
int /*widthDst*/,
unsigned long /*planemask*/
#endif
);
extern void iplSetSpans(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
char * /*psrc*/,
DDXPointPtr /*ppt*/,
int * /*pwidth*/,
int /*nspans*/,
int /*fSorted*/
#endif
);
/* iplsolidC.c */
extern void iplFillRectSolidCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nBox*/,
BoxPtr /*pBox*/
#endif
);
extern void iplSolidSpansCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nInit*/,
DDXPointPtr /*pptInit*/,
int * /*pwidthInit*/,
int /*fSorted*/
#endif
);
/* iplsolidG.c */
extern void iplFillRectSolidGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nBox*/,
BoxPtr /*pBox*/
#endif
);
extern void iplSolidSpansGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nInit*/,
DDXPointPtr /*pptInit*/,
int * /*pwidthInit*/,
int /*fSorted*/
#endif
);
/* iplsolidX.c */
extern void iplFillRectSolidXor(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nBox*/,
BoxPtr /*pBox*/
#endif
);
extern void iplSolidSpansXor(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nInit*/,
DDXPointPtr /*pptInit*/,
int * /*pwidthInit*/,
int /*fSorted*/
#endif
);
/* iplteblt8.c */
extern void iplTEGlyphBlt8(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr/*pGC*/,
int /*xInit*/,
int /*yInit*/,
unsigned int /*nglyph*/,
CharInfoPtr * /*ppci*/,
pointer /*pglyphBase*/
#endif
);
/* ipltegblt.c */
extern void iplTEGlyphBlt(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr/*pGC*/,
int /*x*/,
int /*y*/,
unsigned int /*nglyph*/,
CharInfoPtr * /*ppci*/,
pointer /*pglyphBase*/
#endif
);
/* ipltile32C.c */
extern void iplFillRectTile32Copy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nBox*/,
BoxPtr /*pBox*/
#endif
);
extern void iplTile32FSCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nInit*/,
DDXPointPtr /*pptInit*/,
int * /*pwidthInit*/,
int /*fSorted*/
#endif
);
/* ipltile32G.c */
extern void iplFillRectTile32General(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nBox*/,
BoxPtr /*pBox*/
#endif
);
extern void iplTile32FSGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
GCPtr /*pGC*/,
int /*nInit*/,
DDXPointPtr /*pptInit*/,
int * /*pwidthInit*/,
int /*fSorted*/
#endif
);
/* ipltileoddC.c */
extern void iplFillBoxTileOddCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*nBox*/,
BoxPtr /*pBox*/,
PixmapPtr /*tile*/,
int /*xrot*/,
int /*yrot*/,
int /*alu*/,
unsigned long /*planemask*/
#endif
);
extern void iplFillSpanTileOddCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*n*/,
DDXPointPtr /*ppt*/,
int * /*pwidth*/,
PixmapPtr /*tile*/,
int /*xrot*/,
int /*yrot*/,
int /*alu*/,
unsigned long /*planemask*/
#endif
);
extern void iplFillBoxTile32sCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*nBox*/,
BoxPtr /*pBox*/,
PixmapPtr /*tile*/,
int /*xrot*/,
int /*yrot*/,
int /*alu*/,
unsigned long /*planemask*/
#endif
);
extern void iplFillSpanTile32sCopy(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*n*/,
DDXPointPtr /*ppt*/,
int * /*pwidth*/,
PixmapPtr /*tile*/,
int /*xrot*/,
int /*yrot*/,
int /*alu*/,
unsigned long /*planemask*/
#endif
);
/* ipltileoddG.c */
extern void iplFillBoxTileOddGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*nBox*/,
BoxPtr /*pBox*/,
PixmapPtr /*tile*/,
int /*xrot*/,
int /*yrot*/,
int /*alu*/,
unsigned long /*planemask*/
#endif
);
extern void iplFillSpanTileOddGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*n*/,
DDXPointPtr /*ppt*/,
int * /*pwidth*/,
PixmapPtr /*tile*/,
int /*xrot*/,
int /*yrot*/,
int /*alu*/,
unsigned long /*planemask*/
#endif
);
extern void iplFillBoxTile32sGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*nBox*/,
BoxPtr /*pBox*/,
PixmapPtr /*tile*/,
int /*xrot*/,
int /*yrot*/,
int /*alu*/,
unsigned long /*planemask*/
#endif
);
extern void iplFillSpanTile32sGeneral(
#if NeedFunctionPrototypes
DrawablePtr /*pDrawable*/,
int /*n*/,
DDXPointPtr /*ppt*/,
int * /*pwidth*/,
PixmapPtr /*tile*/,
int /*xrot*/,
int /*yrot*/,
int /*alu*/,
unsigned long /*planemask*/
#endif
);
/* iplwindow.c */
extern Bool iplCreateWindow(
#if NeedFunctionPrototypes
WindowPtr /*pWin*/
#endif
);
extern Bool iplDestroyWindow(
#if NeedFunctionPrototypes
WindowPtr /*pWin*/
#endif
);
extern Bool iplMapWindow(
#if NeedFunctionPrototypes
WindowPtr /*pWindow*/
#endif
);
extern Bool iplPositionWindow(
#if NeedFunctionPrototypes
WindowPtr /*pWin*/,
int /*x*/,
int /*y*/
#endif
);
extern Bool iplUnmapWindow(
#if NeedFunctionPrototypes
WindowPtr /*pWindow*/
#endif
);
extern void iplCopyWindow(
#if NeedFunctionPrototypes
WindowPtr /*pWin*/,
DDXPointRec /*ptOldOrg*/,
RegionPtr /*prgnSrc*/
#endif
);
extern Bool iplChangeWindowAttributes(
#if NeedFunctionPrototypes
WindowPtr /*pWin*/,
unsigned long /*mask*/
#endif
);
/* iplzerarcC.c */
extern void iplZeroPolyArcSS8Copy(
#if NeedFunctionPrototypes
DrawablePtr /*pDraw*/,
GCPtr /*pGC*/,
int /*narcs*/,
xArc * /*parcs*/
#endif
);
/* iplzerarcG.c */
extern void iplZeroPolyArcSS8General(
#if NeedFunctionPrototypes
DrawablePtr /*pDraw*/,
GCPtr /*pGC*/,
int /*narcs*/,
xArc * /*parcs*/
#endif
);
/* iplzerarcX.c */
extern void iplZeroPolyArcSS8Xor(
#if NeedFunctionPrototypes
DrawablePtr /*pDraw*/,
GCPtr /*pGC*/,
int /*narcs*/,
xArc * /*parcs*/
#endif
);
/* Common macros for extracting drawing information */
#if (!defined(SINGLEDEPTH) && PSZ != 8) || defined(FORCE_SEPARATE_PRIVATE)
#define CFB_NEED_SCREEN_PRIVATE
extern int iplScreenPrivateIndex;
#endif
#define iplGetWindowPixmap(d) \
((* ((DrawablePtr)(d))->pScreen->GetWindowPixmap)((WindowPtr)(d)))
#define iplGetTypedWidth(pDrawable,wtype) (\
(((pDrawable)->type != DRAWABLE_PIXMAP) ? \
(int) (iplGetWindowPixmap(pDrawable)->devKind) : \
(int)(((PixmapPtr)pDrawable)->devKind)) / sizeof (wtype))
#define iplGetByteWidth(pDrawable) iplGetTypedWidth(pDrawable, unsigned char)
#define iplGetPixelWidth(pDrawable) iplGetTypedWidth(pDrawable, PixelType)
#define iplGetLongWidth(pDrawable) iplGetTypedWidth(pDrawable, unsigned long)
#define iplGetTypedWidthAndPointer(pDrawable, width, pointer, wtype, ptype) {\
PixmapPtr _pPix; \
if ((pDrawable)->type != DRAWABLE_PIXMAP) \
_pPix = iplGetWindowPixmap(pDrawable); \
else \
_pPix = (PixmapPtr) (pDrawable); \
(pointer) = (ptype *) _pPix->devPrivate.ptr; \
(width) = ((int) _pPix->devKind) / sizeof (wtype); \
}
#define iplGetByteWidthAndPointer(pDrawable, width, pointer) \
iplGetTypedWidthAndPointer(pDrawable, width, pointer, unsigned char, unsigned char)
#define iplGetLongWidthAndPointer(pDrawable, width, pointer) \
iplGetTypedWidthAndPointer(pDrawable, width, pointer, unsigned long, unsigned long)
#define iplGetPixelWidthAndPointer(pDrawable, width, pointer) \
iplGetTypedWidthAndPointer(pDrawable, width, pointer, PixelType, PixelType)
#define iplGetWindowTypedWidthAndPointer(pWin, width, pointer, wtype, ptype) {\
PixmapPtr _pPix = iplGetWindowPixmap((DrawablePtr) (pWin)); \
(pointer) = (ptype *) _pPix->devPrivate.ptr; \
(width) = ((int) _pPix->devKind) / sizeof (wtype); \
}
#define iplGetWindowLongWidthAndPointer(pWin, width, pointer) \
iplGetWindowTypedWidthAndPointer(pWin, width, pointer, unsigned long, unsigned long)
#define iplGetWindowByteWidthAndPointer(pWin, width, pointer) \
iplGetWindowTypedWidthAndPointer(pWin, width, pointer, unsigned char, unsigned char)
#define iplGetWindowPixelWidthAndPointer(pDrawable, width, pointer) \
iplGetWindowTypedWidthAndPointer(pDrawable, width, pointer, PixelType, PixelType)
/* Macros which handle a coordinate in a single register */
/* Most compilers will convert divide by 65536 into a shift, if signed
* shifts exist. If your machine does arithmetic shifts and your compiler
* can't get it right, add to this line.
*/
/* mips compiler - what a joke - it CSEs the 65536 constant into a reg
* forcing as to use div instead of shift. Let's be explicit.
*/
#if defined(mips) || defined(sparc) || defined(__alpha) || defined(__alpha__)
#define GetHighWord(x) (((int) (x)) >> 16)
#else
#define GetHighWord(x) (((int) (x)) / 65536)
#endif
#if IMAGE_BYTE_ORDER == MSBFirst
#define intToCoord(i,x,y) (((x) = GetHighWord(i)), ((y) = (int) ((short) (i))))
#define coordToInt(x,y) (((x) << 16) | (y))
#define intToX(i) (GetHighWord(i))
#define intToY(i) ((int) ((short) i))
#else
#define intToCoord(i,x,y) (((x) = (int) ((short) (i))), ((y) = GetHighWord(i)))
#define coordToInt(x,y) (((y) << 16) | (x))
#define intToX(i) ((int) ((short) (i)))
#define intToY(i) (GetHighWord(i))
#endif