|
|
1.1 ! root 1: /* $Header: scrnintstr.h,v 1.1 87/09/11 07:50:28 toddb Exp $ */ ! 2: /*********************************************************** ! 3: Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, ! 4: and the Massachusetts Institute of Technology, Cambridge, Massachusetts. ! 5: ! 6: All Rights Reserved ! 7: ! 8: Permission to use, copy, modify, and distribute this software and its ! 9: documentation for any purpose and without fee is hereby granted, ! 10: provided that the above copyright notice appear in all copies and that ! 11: both that copyright notice and this permission notice appear in ! 12: supporting documentation, and that the names of Digital or MIT not be ! 13: used in advertising or publicity pertaining to distribution of the ! 14: software without specific, written prior permission. ! 15: ! 16: DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ! 17: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ! 18: DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ! 19: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, ! 20: WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ! 21: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ! 22: SOFTWARE. ! 23: ! 24: ******************************************************************/ ! 25: #ifndef SCREENINTSTRUCT_H ! 26: #define SCREENINTSTRUCT_H ! 27: ! 28: #include "screenint.h" ! 29: #include "misc.h" ! 30: #include "region.h" ! 31: #include "pixmap.h" ! 32: #include "gc.h" ! 33: #include "colormap.h" ! 34: ! 35: ! 36: typedef struct _PixmapFormat { ! 37: unsigned char depth; ! 38: unsigned char bitsPerPixel; ! 39: unsigned char scanlinePad; ! 40: } PixmapFormatRec; ! 41: ! 42: typedef struct _Visual { ! 43: long vid; ! 44: short screen; ! 45: short class; ! 46: unsigned long redMask, greenMask, blueMask; ! 47: int offsetRed, offsetGreen, offsetBlue; ! 48: short bitsPerRGBValue; ! 49: short ColormapEntries; ! 50: short nplanes; /* = log2 (ColormapEntries). This does not ! 51: * imply that the screen has this many planes. ! 52: * it may have more or fewer */ ! 53: } VisualRec; ! 54: ! 55: typedef struct _Depth { ! 56: int depth; ! 57: int numVids; ! 58: long *vids; /* block of visual ids for this depth */ ! 59: } DepthRec; ! 60: ! 61: typedef struct _Screen { ! 62: int myNum; /* index of this instance in Screens[] */ ! 63: ATOM id; ! 64: short width, height; ! 65: short mmWidth, mmHeight; ! 66: short numDepths; ! 67: DepthPtr allowedDepths; ! 68: short rootDepth; ! 69: long rootVisual; ! 70: long defColormap; ! 71: short minInstalledCmaps, maxInstalledCmaps; ! 72: char backingStoreSupport, saveUnderSupport; ! 73: unsigned long whitePixel, blackPixel; ! 74: unsigned long rgf; /* array of flags; she's -- HUNGARIAN */ ! 75: GCPtr GCperDepth[MAXFORMATS+1]; ! 76: /* next field is a stipple to use as default in ! 77: a GC. we don't build default tiles of all depths ! 78: because they are likely to be of a color ! 79: different from the default fg pixel, so ! 80: we don't win anything by building ! 81: a standard one. ! 82: */ ! 83: PixmapPtr PixmapPerDepth[1]; ! 84: pointer devPrivate; ! 85: short numVisuals; ! 86: VisualPtr visuals; ! 87: ! 88: /* Random screen procedures */ ! 89: ! 90: Bool (* CloseScreen)(); /* index, pScreen */ ! 91: void (* QueryBestSize)(); /* class, pwidth, pheight */ ! 92: Bool (* SaveScreen)(); /* pScreen, on */ ! 93: void (* GetImage)(); /* pDrawable, sx, sy, w, h, format, ! 94: * planemask, pdestbits */ ! 95: unsigned int *(* GetSpans)(); /* pDrawable, wMax, ppt, pwidth, ! 96: * nspans */ ! 97: void (* PointerNonInterestBox)(); /* pScr, BoxPtr */ ! 98: ! 99: /* Window Procedures */ ! 100: ! 101: Bool (* CreateWindow)(); /* pWin */ ! 102: Bool (* DestroyWindow)(); /* pWin */ ! 103: Bool (* PositionWindow)(); /* pWin, x, y */ ! 104: Bool (* ChangeWindowAttributes)(); /* pWin, mask */ ! 105: Bool (* RealizeWindow)(); /* pWin */ ! 106: Bool (* UnrealizeWindow)(); /* pWin */ ! 107: int (* ValidateTree)(); /* pParent, pChild, top, anyMarked */ ! 108: void (* WindowExposures)(); /* pWin: WindowPtr, pRegion: RegionPtr */ ! 109: ! 110: /* Pixmap procedures */ ! 111: ! 112: PixmapPtr (* CreatePixmap)(); /* pScreen, width, height, depth */ ! 113: Bool (* DestroyPixmap)(); /* pPixmap */ ! 114: ! 115: /* Font procedures */ ! 116: ! 117: Bool (* RealizeFont)(); /* pScr, pFont */ ! 118: Bool (* UnrealizeFont)(); /* pScr, pFont */ ! 119: ! 120: /* Cursor Procedures */ ! 121: void (* ConstrainCursor)(); /* pScr, BoxPtr */ ! 122: void (* CursorLimits)(); /* pScr, pCurs, BoxPtr, BoxPtr */ ! 123: Bool (* DisplayCursor)(); /* pScr, pCurs */ ! 124: Bool (* RealizeCursor)(); /* pScr, pCurs */ ! 125: Bool (* UnrealizeCursor)(); /* pScr, pCurs */ ! 126: void (* RecolorCursor)(); /* pScr, pCurs, displayed */ ! 127: Bool (* SetCursorPosition)(); /* pScr, x, y */ ! 128: ! 129: /* GC procedures */ ! 130: ! 131: Bool (* CreateGC)(); /* pGC */ ! 132: ! 133: /* Colormap procedures */ ! 134: ! 135: void (* CreateColormap)(); /* pcmap */ ! 136: void (* DestroyColormap)(); /* pcmap */ ! 137: void (* InstallColormap)(); /* pcmap */ ! 138: void (* UninstallColormap)(); /* pcmap */ ! 139: int (* ListInstalledColormaps) (); /* pScreen, pmaps */ ! 140: void (* StoreColors)(); /* pmap, ndef, pdef */ ! 141: void (* ResolveColor)(); /* preg, pgreen, pblue */ ! 142: ! 143: /* Region procedures */ ! 144: ! 145: RegionPtr (* RegionCreate)(); /* rect, size */ ! 146: void (* RegionCopy)(); /* dstrgn, srcrgn */ ! 147: void (* RegionDestroy)(); /* pRegion */ ! 148: int (* Intersect)(); /* newReg, reg1, reg2 */ ! 149: int (* Union)(); /* newReg, reg1, reg2 */ ! 150: int (* Subtract)(); /* regD, regM, regS */ ! 151: int (* Inverse)(); /* newReg, reg1, invRect */ ! 152: void (* RegionReset)(); /* pRegion, pBox */ ! 153: void (* TranslateRegion)(); /* pRegion, x, y */ ! 154: int (* RectIn)(); /* pRegion, pRect */ ! 155: Bool (* PointInRegion)(); /* pRegion, x, y, pBox */ ! 156: Bool (* RegionNotEmpty)(); /* pRegion: RegionPtr */ ! 157: void (* RegionEmpty)(); /* pRegion: RegionPtr */ ! 158: BoxPtr (*RegionExtents)(); /* pRegion: RegionPtr */ ! 159: ! 160: /* os layer procedures */ ! 161: void (* BlockHandler)(); /* data: pointer */ ! 162: void (* WakeupHandler)(); /* data: pointer */ ! 163: pointer blockData; ! 164: pointer wakeupData; ! 165: } ScreenRec; ! 166: ! 167: typedef struct _ScreenInfo { ! 168: int imageByteOrder; ! 169: int bitmapScanlineUnit; ! 170: int bitmapScanlinePad; ! 171: int bitmapBitOrder; ! 172: int numPixmapFormats; ! 173: PixmapFormatRec ! 174: formats[MAXFORMATS]; ! 175: int arraySize; ! 176: int numScreens; ! 177: ScreenPtr screen; ! 178: } ScreenInfo; ! 179: ! 180: extern ScreenInfo screenInfo; ! 181: #endif /* SCREENINTSTRUCT_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.