Rev 55 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
55 | pj | 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/fabio/w/shark/sharkcvs/CVSROOT/shark/ports/mesa/include/GL/xmesa_xf86.h,v 1.1 2003-02-28 11:41:57 pj 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((DrawablePtr)__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)((DrawablePtr)__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_VISUAL_CLASS(__v) __v->visinfo->class |
||
183 | #define GET_VISUAL_DEPTH(__v) __v->visinfo->nplanes |
||
184 | #define GET_BLACK_PIXEL(__v) __v->display->blackPixel |
||
185 | #define CHECK_BYTE_ORDER(__v) GL_TRUE |
||
186 | #define CHECK_FOR_HPCR(__v) GL_FALSE |
||
187 | |||
188 | #endif |