1
/***********************************************************
3
Copyright 1987, 1998 The Open Group
5
Permission to use, copy, modify, distribute, and sell this software and its
6
documentation for any purpose is hereby granted without fee, provided that
7
the above copyright notice appear in all copies and that both that
8
copyright notice and this permission notice appear in supporting
11
The above copyright notice and this permission notice shall be included in
12
all copies or substantial portions of the Software.
14
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
Except as contained in this notice, the name of The Open Group shall not be
22
used in advertising or otherwise to promote the sale, use or other dealings
23
in this Software without prior written authorization from The Open Group.
26
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
30
Permission to use, copy, modify, and distribute this software and its
31
documentation for any purpose and without fee is hereby granted,
32
provided that the above copyright notice appear in all copies and that
33
both that copyright notice and this permission notice appear in
34
supporting documentation, and that the name of Digital not be
35
used in advertising or publicity pertaining to distribution of the
36
software without specific, written prior permission.
38
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
39
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
40
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
41
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
42
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
43
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
46
******************************************************************/
55
#include "regionstr.h"
58
#include "screenint.h"
59
#include <X11/Xprotostr.h>
62
* functions which modify the state of the GC
65
typedef struct _GCFuncs {
68
unsigned long /*stateChanges*/,
69
DrawablePtr /*pDrawable*/);
73
unsigned long /*mask*/);
77
unsigned long /*mask*/,
99
* graphics operations invoked through a GC
102
typedef struct _GCOps {
104
DrawablePtr /*pDrawable*/,
107
DDXPointPtr /*pptInit*/,
108
int * /*pwidthInit*/,
112
DrawablePtr /*pDrawable*/,
121
DrawablePtr /*pDrawable*/,
132
RegionPtr (* CopyArea)(
133
DrawablePtr /*pSrc*/,
134
DrawablePtr /*pDst*/,
143
RegionPtr (* CopyPlane)(
144
DrawablePtr /*pSrcDrawable*/,
145
DrawablePtr /*pDstDrawable*/,
153
unsigned long /*bitPlane*/);
155
DrawablePtr /*pDrawable*/,
159
DDXPointPtr /*pptInit*/);
162
DrawablePtr /*pDrawable*/,
166
DDXPointPtr /*pptInit*/);
168
void (* PolySegment)(
169
DrawablePtr /*pDrawable*/,
172
xSegment * /*pSegs*/);
174
void (* PolyRectangle)(
175
DrawablePtr /*pDrawable*/,
178
xRectangle * /*pRects*/);
181
DrawablePtr /*pDrawable*/,
186
void (* FillPolygon)(
187
DrawablePtr /*pDrawable*/,
192
DDXPointPtr /*pPts*/);
194
void (* PolyFillRect)(
195
DrawablePtr /*pDrawable*/,
198
xRectangle * /*prectInit*/);
200
void (* PolyFillArc)(
201
DrawablePtr /*pDrawable*/,
207
DrawablePtr /*pDrawable*/,
215
DrawablePtr /*pDrawable*/,
220
unsigned short * /*chars*/);
223
DrawablePtr /*pDrawable*/,
230
void (* ImageText16)(
231
DrawablePtr /*pDrawable*/,
236
unsigned short * /*chars*/);
238
void (* ImageGlyphBlt)(
239
DrawablePtr /*pDrawable*/,
243
unsigned int /*nglyph*/,
244
CharInfoPtr * /*ppci*/,
245
pointer /*pglyphBase*/);
247
void (* PolyGlyphBlt)(
248
DrawablePtr /*pDrawable*/,
252
unsigned int /*nglyph*/,
253
CharInfoPtr * /*ppci*/,
254
pointer /*pglyphBase*/);
258
PixmapPtr /*pBitMap*/,
259
DrawablePtr /*pDst*/,
268
/* there is padding in the bit fields because the Sun compiler doesn't
269
* force alignment to 32-bit boundaries. losers.
275
unsigned short lineWidth;
276
unsigned short dashOffset;
277
unsigned short numInDashList;
279
unsigned int lineStyle : 2;
280
unsigned int capStyle : 2;
281
unsigned int joinStyle : 2;
282
unsigned int fillStyle : 2;
283
unsigned int fillRule : 1;
284
unsigned int arcMode : 1;
285
unsigned int subWindowMode : 1;
286
unsigned int graphicsExposures : 1;
287
unsigned int clientClipType : 2; /* CT_<kind> */
288
unsigned int miTranslate:1; /* should mi things translate? */
289
unsigned int tileIsPixel:1; /* tile is solid pixel */
290
unsigned int fExpose:1; /* Call exposure handling */
291
unsigned int freeCompClip:1; /* Free composite clip */
292
unsigned int unused:14; /* see comment above */
293
unsigned long planemask;
294
unsigned long fgPixel;
295
unsigned long bgPixel;
297
* alas -- both tile and stipple must be here as they
298
* are independently specifiable
302
DDXPointRec patOrg; /* origin for (tile, stipple) */
305
DDXPointRec lastWinOrg; /* position of window last validated */
307
unsigned long stateChanges; /* masked with GC_<kind> */
308
unsigned long serialNumber;
311
DevUnion *devPrivates;
313
* The following were moved here from private storage to allow device-
314
* independent access to them from screen wrappers.
315
* --- 1997.11.03 Marc Aurele La France (tsi@xfree86.org)
317
PixmapPtr pRotatedPixmap; /* tile/stipple rotated for alignment */
318
RegionPtr pCompositeClip;
319
/* fExpose & freeCompClip defined above */
322
#endif /* GCSTRUCT_H */