1 |
|
---|
2 | /**************************************************************************
|
---|
3 |
|
---|
4 | Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
|
---|
5 | All Rights Reserved.
|
---|
6 |
|
---|
7 | Permission is hereby granted, free of charge, to any person obtaining a
|
---|
8 | copy of this software and associated documentation files (the
|
---|
9 | "Software"), to deal in the Software without restriction, including
|
---|
10 | without limitation the rights to use, copy, modify, merge, publish,
|
---|
11 | distribute, sub license, and/or sell copies of the Software, and to
|
---|
12 | permit persons to whom the Software is furnished to do so, subject to
|
---|
13 | the following conditions:
|
---|
14 |
|
---|
15 | The above copyright notice and this permission notice (including the
|
---|
16 | next paragraph) shall be included in all copies or substantial portions
|
---|
17 | of the Software.
|
---|
18 |
|
---|
19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
---|
20 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
---|
21 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
|
---|
22 | IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
|
---|
23 | ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
---|
24 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
---|
25 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
---|
26 |
|
---|
27 | **************************************************************************/
|
---|
28 |
|
---|
29 | /*
|
---|
30 | * Authors:
|
---|
31 | * Kevin E. Martin <kevin@precisioninsight.com>
|
---|
32 | *
|
---|
33 | * $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/opengl/mesa/GL/xmesa_xf86.h,v 1.1 2000-02-29 00:43:33 sandervl Exp $
|
---|
34 | */
|
---|
35 |
|
---|
36 | #ifndef _XMESA_XF86_H_
|
---|
37 | #define _XMESA_XF86_H_
|
---|
38 |
|
---|
39 | #include "scrnintstr.h"
|
---|
40 | #include "pixmapstr.h"
|
---|
41 |
|
---|
42 | typedef struct _XMesaImageRec XMesaImage;
|
---|
43 |
|
---|
44 | typedef ScreenRec XMesaDisplay;
|
---|
45 | typedef PixmapPtr XMesaPixmap;
|
---|
46 | typedef ColormapPtr XMesaColormap;
|
---|
47 | typedef DrawablePtr XMesaDrawable;
|
---|
48 | typedef WindowPtr XMesaWindow;
|
---|
49 | typedef GCPtr XMesaGC;
|
---|
50 | typedef VisualPtr XMesaVisualInfo;
|
---|
51 | typedef DDXPointRec XMesaPoint;
|
---|
52 | typedef xColorItem XMesaColor;
|
---|
53 |
|
---|
54 | #define XMesaSetGeneric(__d,__gc,__val,__mask) \
|
---|
55 | do { \
|
---|
56 | CARD32 __v[1]; \
|
---|
57 | (void) __d; \
|
---|
58 | __v[0] = __val; \
|
---|
59 | dixChangeGC(NullClient, __gc, __mask, __v, NULL); \
|
---|
60 | } while (0)
|
---|
61 |
|
---|
62 | #define XMesaSetGenericPtr(__d,__gc,__pval,__mask) \
|
---|
63 | do { \
|
---|
64 | ChangeGCVal __v[1]; \
|
---|
65 | (void) __d; \
|
---|
66 | __v[0].ptr = __pval; \
|
---|
67 | dixChangeGC(NullClient, __gc, __mask, NULL, __v); \
|
---|
68 | } while (0)
|
---|
69 |
|
---|
70 | #define XMesaSetDashes(__d,__gc,__do,__dl,__n) \
|
---|
71 | do { \
|
---|
72 | (void) __d; \
|
---|
73 | SetDashes(__gc, __do, __n, (unsigned char *)__dl); \
|
---|
74 | } while (0)
|
---|
75 |
|
---|
76 | #define XMesaSetLineAttributes(__d,__gc,__lw,__ls,__cs,__js) \
|
---|
77 | do { \
|
---|
78 | CARD32 __v[4]; \
|
---|
79 | (void) __d; \
|
---|
80 | __v[0] = __lw; \
|
---|
81 | __v[1] = __ls; \
|
---|
82 | __v[2] = __cs; \
|
---|
83 | __v[3] = __js; \
|
---|
84 | dixChangeGC(NullClient, __gc, \
|
---|
85 | GCLineWidth|GCLineStyle|GCCapStyle|GCJoinStyle, \
|
---|
86 | __v, NULL); \
|
---|
87 | } while (0)
|
---|
88 |
|
---|
89 | #define XMesaSetForeground(d,gc,v) XMesaSetGeneric(d,gc,v,GCForeground)
|
---|
90 | #define XMesaSetBackground(d,gc,v) XMesaSetGeneric(d,gc,v,GCBackground)
|
---|
91 | #define XMesaSetPlaneMask(d,gc,v) XMesaSetGeneric(d,gc,v,GCPlaneMask)
|
---|
92 | #define XMesaSetFunction(d,gc,v) XMesaSetGeneric(d,gc,v,GCFunction)
|
---|
93 | #define XMesaSetFillStyle(d,gc,v) XMesaSetGeneric(d,gc,v,GCFillStyle)
|
---|
94 |
|
---|
95 | #define XMesaSetTile(d,gc,v) XMesaSetGenericPtr(d,gc,v,GCTile)
|
---|
96 | #define XMesaSetStipple(d,gc,v) XMesaSetGenericPtr(d,gc,v,GCStipple)
|
---|
97 |
|
---|
98 | #define XMesaDrawPoint(__d,__b,__gc,__x,__y) \
|
---|
99 | do { \
|
---|
100 | XMesaPoint __p[1]; \
|
---|
101 | (void) __d; \
|
---|
102 | __p[0].x = __x; \
|
---|
103 | __p[0].y = __y; \
|
---|
104 | ValidateGC(__b, __gc); \
|
---|
105 | (*gc->ops->PolyPoint)(__b, __gc, CoordModeOrigin, 1, __p); \
|
---|
106 | } while (0)
|
---|
107 |
|
---|
108 | #define XMesaDrawPoints(__d,__b,__gc,__p,__n,__m) \
|
---|
109 | do { \
|
---|
110 | (void) __d; \
|
---|
111 | ValidateGC(__b, __gc); \
|
---|
112 | (*gc->ops->PolyPoint)(__b, __gc, __m, __n, __p); \
|
---|
113 | } while (0)
|
---|
114 |
|
---|
115 | #define XMesaDrawLine(__d,__b,__gc,__x0,__y0,__x1,__y1) \
|
---|
116 | do { \
|
---|
117 | XMesaPoint __p[2]; \
|
---|
118 | (void) __d; \
|
---|
119 | ValidateGC(__b, __gc); \
|
---|
120 | __p[0].x = __x0; \
|
---|
121 | __p[0].y = __y0; \
|
---|
122 | __p[1].x = __x1; \
|
---|
123 | __p[1].y = __y1; \
|
---|
124 | (*__gc->ops->Polylines)(__b, __gc, CoordModeOrigin, 2, __p); \
|
---|
125 | } while (0)
|
---|
126 |
|
---|
127 | #define XMesaFillRectangle(__d,__b,__gc,__x,__y,__w,__h) \
|
---|
128 | do { \
|
---|
129 | xRectangle __r[1]; \
|
---|
130 | (void) __d; \
|
---|
131 | ValidateGC(__b, __gc); \
|
---|
132 | __r[0].x = __x; \
|
---|
133 | __r[0].y = __y; \
|
---|
134 | __r[0].width = __w; \
|
---|
135 | __r[0].height = __h; \
|
---|
136 | (*__gc->ops->PolyFillRect)(__b, __gc, 1, __r); \
|
---|
137 | } while (0)
|
---|
138 |
|
---|
139 | #define XMesaPutImage(__d,__b,__gc,__i,__sx,__sy,__x,__y,__w,__h) \
|
---|
140 | do { \
|
---|
141 | /* Assumes: Images are always in ZPixmap format */ \
|
---|
142 | (void) __d; \
|
---|
143 | if (__sx || __sy) /* The non-trivial case */ \
|
---|
144 | XMesaPutImageHelper(__d,__b,__gc,__i,__sx,__sy,__x,__y,__w,__h); \
|
---|
145 | ValidateGC(__b, __gc); \
|
---|
146 | (*__gc->ops->PutImage)(__b, __gc, ((XMesaDrawable)(__b))->depth, \
|
---|
147 | __x, __y, __w, __h, 0, ZPixmap, \
|
---|
148 | ((XMesaImage *)(__i))->data); \
|
---|
149 | } while (0)
|
---|
150 |
|
---|
151 | #define XMesaCopyArea(__d,__sb,__db,__gc,__sx,__sy,__w,__h,__x,__y) \
|
---|
152 | do { \
|
---|
153 | (void) __d; \
|
---|
154 | ValidateGC(__db, __gc); \
|
---|
155 | (*__gc->ops->CopyArea)((DrawablePtr)__sb, __db, __gc, \
|
---|
156 | __sx, __sy, __w, __h, __x, __y); \
|
---|
157 | } while (0)
|
---|
158 |
|
---|
159 | #define XMesaFillPolygon(__d,__b,__gc,__p,__n,__s,__m) \
|
---|
160 | do { \
|
---|
161 | (void) __d; \
|
---|
162 | ValidateGC(__b, __gc); \
|
---|
163 | (*__gc->ops->FillPolygon)(__b, __gc, __s, __m, __n, __p); \
|
---|
164 | } while (0)
|
---|
165 |
|
---|
166 | /* CreatePixmap returns a PixmapPtr; so, it cannot be inside braces */
|
---|
167 | #define XMesaCreatePixmap(__d,__b,__w,__h,__depth) \
|
---|
168 | (*__d->CreatePixmap)(__d, __w, __h, __depth)
|
---|
169 | #define XMesaFreePixmap(__d,__b) \
|
---|
170 | (*__d->DestroyPixmap)(__b)
|
---|
171 |
|
---|
172 | #define XMesaFreeGC(__d,__gc) \
|
---|
173 | do { \
|
---|
174 | (void) __d; \
|
---|
175 | FreeScratchGC(__gc); \
|
---|
176 | } while (0)
|
---|
177 |
|
---|
178 | #define GET_COLORMAP_SIZE(__v) __v->visinfo->ColormapEntries
|
---|
179 | #define GET_REDMASK(__v) __v->visinfo->redMask
|
---|
180 | #define GET_GREENMASK(__v) __v->visinfo->greenMask
|
---|
181 | #define GET_BLUEMASK(__v) __v->visinfo->blueMask
|
---|
182 | #define GET_BITS_PER_PIXEL(__v) __v->visinfo->bitsPerRGBValue
|
---|
183 | #define GET_VISUAL_CLASS(__v) __v->visinfo->class
|
---|
184 | #define GET_VISUAL_DEPTH(__v) __v->visinfo->nplanes
|
---|
185 | #define GET_BLACK_PIXEL(__v) __v->display->blackPixel
|
---|
186 | #define CHECK_BYTE_ORDER(__v) GL_TRUE
|
---|
187 | #define CHECK_FOR_HPCR(__v) GL_FALSE
|
---|
188 |
|
---|
189 | #endif
|
---|