|
|
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.