]> git.jsancho.org Git - lugaru.git/blob - OpenGL/GL/xmesa_xf86.h
Don't disable all warnings...
[lugaru.git] / OpenGL / GL / xmesa_xf86.h
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: /cvsroot/mesa3d/Mesa/include/GL/xmesa_xf86.h,v 1.5 2000/04/05 22:09:10 brianp 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
189