]> git.wh0rd.org Git - ICEs.git/blob - 394889/s_triangle.i.1
more
[ICEs.git] / 394889 / s_triangle.i.1
1 typedef unsigned int GLenum;
2 typedef unsigned char GLboolean;
3 typedef unsigned int GLbitfield;
4 typedef void GLvoid;
5 typedef signed char GLbyte;
6 typedef short GLshort;
7 typedef int GLint;
8 typedef unsigned char GLubyte;
9 typedef unsigned short GLushort;
10 typedef unsigned int GLuint;
11 typedef int GLsizei;
12 typedef float GLfloat;
13 typedef float GLclampf;
14 typedef double GLdouble;
15 typedef double GLclampd;
16 __attribute__((visibility("default"))) void glClearIndex( GLfloat c );
17 __attribute__((visibility("default"))) void glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
18 __attribute__((visibility("default"))) void glClear( GLbitfield mask );
19 __attribute__((visibility("default"))) void glIndexMask( GLuint mask );
20 __attribute__((visibility("default"))) void glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha );
21 __attribute__((visibility("default"))) void glAlphaFunc( GLenum func, GLclampf ref );
22 __attribute__((visibility("default"))) void glBlendFunc( GLenum sfactor, GLenum dfactor );
23 __attribute__((visibility("default"))) void glLogicOp( GLenum opcode );
24 __attribute__((visibility("default"))) void glCullFace( GLenum mode );
25 __attribute__((visibility("default"))) void glFrontFace( GLenum mode );
26 __attribute__((visibility("default"))) void glPointSize( GLfloat size );
27 __attribute__((visibility("default"))) void glLineWidth( GLfloat width );
28 __attribute__((visibility("default"))) void glLineStipple( GLint factor, GLushort pattern );
29 __attribute__((visibility("default"))) void glPolygonMode( GLenum face, GLenum mode );
30 __attribute__((visibility("default"))) void glPolygonOffset( GLfloat factor, GLfloat units );
31 __attribute__((visibility("default"))) void glPolygonStipple( const GLubyte *mask );
32 __attribute__((visibility("default"))) void glGetPolygonStipple( GLubyte *mask );
33 __attribute__((visibility("default"))) void glEdgeFlag( GLboolean flag );
34 __attribute__((visibility("default"))) void glEdgeFlagv( const GLboolean *flag );
35 __attribute__((visibility("default"))) void glScissor( GLint x, GLint y, GLsizei width, GLsizei height);
36 __attribute__((visibility("default"))) void glClipPlane( GLenum plane, const GLdouble *equation );
37 __attribute__((visibility("default"))) void glGetClipPlane( GLenum plane, GLdouble *equation );
38 __attribute__((visibility("default"))) void glDrawBuffer( GLenum mode );
39 __attribute__((visibility("default"))) void glReadBuffer( GLenum mode );
40 __attribute__((visibility("default"))) void glEnable( GLenum cap );
41 __attribute__((visibility("default"))) void glDisable( GLenum cap );
42 __attribute__((visibility("default"))) GLboolean glIsEnabled( GLenum cap );
43 __attribute__((visibility("default"))) void glEnableClientState( GLenum cap );
44 __attribute__((visibility("default"))) void glDisableClientState( GLenum cap );
45 __attribute__((visibility("default"))) void glGetBooleanv( GLenum pname, GLboolean *params );
46 __attribute__((visibility("default"))) void glGetDoublev( GLenum pname, GLdouble *params );
47 __attribute__((visibility("default"))) void glGetFloatv( GLenum pname, GLfloat *params );
48 __attribute__((visibility("default"))) void glGetIntegerv( GLenum pname, GLint *params );
49 __attribute__((visibility("default"))) void glPushAttrib( GLbitfield mask );
50 __attribute__((visibility("default"))) void glPopAttrib( void );
51 __attribute__((visibility("default"))) void glPushClientAttrib( GLbitfield mask );
52 __attribute__((visibility("default"))) void glPopClientAttrib( void );
53 __attribute__((visibility("default"))) GLint glRenderMode( GLenum mode );
54 __attribute__((visibility("default"))) GLenum glGetError( void );
55 __attribute__((visibility("default"))) const GLubyte * glGetString( GLenum name );
56 __attribute__((visibility("default"))) void glFinish( void );
57 __attribute__((visibility("default"))) void glFlush( void );
58 __attribute__((visibility("default"))) void glHint( GLenum target, GLenum mode );
59 __attribute__((visibility("default"))) void glClearDepth( GLclampd depth );
60 __attribute__((visibility("default"))) void glDepthFunc( GLenum func );
61 __attribute__((visibility("default"))) void glDepthMask( GLboolean flag );
62 __attribute__((visibility("default"))) void glDepthRange( GLclampd near_val, GLclampd far_val );
63 __attribute__((visibility("default"))) void glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
64 __attribute__((visibility("default"))) void glAccum( GLenum op, GLfloat value );
65 __attribute__((visibility("default"))) void glMatrixMode( GLenum mode );
66 __attribute__((visibility("default"))) void glOrtho( GLdouble left, GLdouble right,
67                                  GLdouble bottom, GLdouble top,
68                                  GLdouble near_val, GLdouble far_val );
69 __attribute__((visibility("default"))) void glFrustum( GLdouble left, GLdouble right,
70                                    GLdouble bottom, GLdouble top,
71                                    GLdouble near_val, GLdouble far_val );
72 __attribute__((visibility("default"))) void glViewport( GLint x, GLint y,
73                                     GLsizei width, GLsizei height );
74 __attribute__((visibility("default"))) void glPushMatrix( void );
75 __attribute__((visibility("default"))) void glPopMatrix( void );
76 __attribute__((visibility("default"))) void glLoadIdentity( void );
77 __attribute__((visibility("default"))) void glLoadMatrixd( const GLdouble *m );
78 __attribute__((visibility("default"))) void glLoadMatrixf( const GLfloat *m );
79 __attribute__((visibility("default"))) void glMultMatrixd( const GLdouble *m );
80 __attribute__((visibility("default"))) void glMultMatrixf( const GLfloat *m );
81 __attribute__((visibility("default"))) void glRotated( GLdouble angle,
82                                    GLdouble x, GLdouble y, GLdouble z );
83 __attribute__((visibility("default"))) void glRotatef( GLfloat angle,
84                                    GLfloat x, GLfloat y, GLfloat z );
85 __attribute__((visibility("default"))) void glScaled( GLdouble x, GLdouble y, GLdouble z );
86 __attribute__((visibility("default"))) void glScalef( GLfloat x, GLfloat y, GLfloat z );
87 __attribute__((visibility("default"))) void glTranslated( GLdouble x, GLdouble y, GLdouble z );
88 __attribute__((visibility("default"))) void glTranslatef( GLfloat x, GLfloat y, GLfloat z );
89 __attribute__((visibility("default"))) GLboolean glIsList( GLuint list );
90 __attribute__((visibility("default"))) void glDeleteLists( GLuint list, GLsizei range );
91 __attribute__((visibility("default"))) GLuint glGenLists( GLsizei range );
92 __attribute__((visibility("default"))) void glNewList( GLuint list, GLenum mode );
93 __attribute__((visibility("default"))) void glEndList( void );
94 __attribute__((visibility("default"))) void glCallList( GLuint list );
95 __attribute__((visibility("default"))) void glCallLists( GLsizei n, GLenum type,
96                                      const GLvoid *lists );
97 __attribute__((visibility("default"))) void glListBase( GLuint base );
98 __attribute__((visibility("default"))) void glBegin( GLenum mode );
99 __attribute__((visibility("default"))) void glEnd( void );
100 __attribute__((visibility("default"))) void glVertex2d( GLdouble x, GLdouble y );
101 __attribute__((visibility("default"))) void glVertex2f( GLfloat x, GLfloat y );
102 __attribute__((visibility("default"))) void glVertex2i( GLint x, GLint y );
103 __attribute__((visibility("default"))) void glVertex2s( GLshort x, GLshort y );
104 __attribute__((visibility("default"))) void glVertex3d( GLdouble x, GLdouble y, GLdouble z );
105 __attribute__((visibility("default"))) void glVertex3f( GLfloat x, GLfloat y, GLfloat z );
106 __attribute__((visibility("default"))) void glVertex3i( GLint x, GLint y, GLint z );
107 __attribute__((visibility("default"))) void glVertex3s( GLshort x, GLshort y, GLshort z );
108 __attribute__((visibility("default"))) void glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
109 __attribute__((visibility("default"))) void glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
110 __attribute__((visibility("default"))) void glVertex4i( GLint x, GLint y, GLint z, GLint w );
111 __attribute__((visibility("default"))) void glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w );
112 __attribute__((visibility("default"))) void glVertex2dv( const GLdouble *v );
113 __attribute__((visibility("default"))) void glVertex2fv( const GLfloat *v );
114 __attribute__((visibility("default"))) void glVertex2iv( const GLint *v );
115 __attribute__((visibility("default"))) void glVertex2sv( const GLshort *v );
116 __attribute__((visibility("default"))) void glVertex3dv( const GLdouble *v );
117 __attribute__((visibility("default"))) void glVertex3fv( const GLfloat *v );
118 __attribute__((visibility("default"))) void glVertex3iv( const GLint *v );
119 __attribute__((visibility("default"))) void glVertex3sv( const GLshort *v );
120 __attribute__((visibility("default"))) void glVertex4dv( const GLdouble *v );
121 __attribute__((visibility("default"))) void glVertex4fv( const GLfloat *v );
122 __attribute__((visibility("default"))) void glVertex4iv( const GLint *v );
123 __attribute__((visibility("default"))) void glVertex4sv( const GLshort *v );
124 __attribute__((visibility("default"))) void glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz );
125 __attribute__((visibility("default"))) void glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz );
126 __attribute__((visibility("default"))) void glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz );
127 __attribute__((visibility("default"))) void glNormal3i( GLint nx, GLint ny, GLint nz );
128 __attribute__((visibility("default"))) void glNormal3s( GLshort nx, GLshort ny, GLshort nz );
129 __attribute__((visibility("default"))) void glNormal3bv( const GLbyte *v );
130 __attribute__((visibility("default"))) void glNormal3dv( const GLdouble *v );
131 __attribute__((visibility("default"))) void glNormal3fv( const GLfloat *v );
132 __attribute__((visibility("default"))) void glNormal3iv( const GLint *v );
133 __attribute__((visibility("default"))) void glNormal3sv( const GLshort *v );
134 __attribute__((visibility("default"))) void glIndexd( GLdouble c );
135 __attribute__((visibility("default"))) void glIndexf( GLfloat c );
136 __attribute__((visibility("default"))) void glIndexi( GLint c );
137 __attribute__((visibility("default"))) void glIndexs( GLshort c );
138 __attribute__((visibility("default"))) void glIndexub( GLubyte c );
139 __attribute__((visibility("default"))) void glIndexdv( const GLdouble *c );
140 __attribute__((visibility("default"))) void glIndexfv( const GLfloat *c );
141 __attribute__((visibility("default"))) void glIndexiv( const GLint *c );
142 __attribute__((visibility("default"))) void glIndexsv( const GLshort *c );
143 __attribute__((visibility("default"))) void glIndexubv( const GLubyte *c );
144 __attribute__((visibility("default"))) void glColor3b( GLbyte red, GLbyte green, GLbyte blue );
145 __attribute__((visibility("default"))) void glColor3d( GLdouble red, GLdouble green, GLdouble blue );
146 __attribute__((visibility("default"))) void glColor3f( GLfloat red, GLfloat green, GLfloat blue );
147 __attribute__((visibility("default"))) void glColor3i( GLint red, GLint green, GLint blue );
148 __attribute__((visibility("default"))) void glColor3s( GLshort red, GLshort green, GLshort blue );
149 __attribute__((visibility("default"))) void glColor3ub( GLubyte red, GLubyte green, GLubyte blue );
150 __attribute__((visibility("default"))) void glColor3ui( GLuint red, GLuint green, GLuint blue );
151 __attribute__((visibility("default"))) void glColor3us( GLushort red, GLushort green, GLushort blue );
152 __attribute__((visibility("default"))) void glColor4b( GLbyte red, GLbyte green,
153                                    GLbyte blue, GLbyte alpha );
154 __attribute__((visibility("default"))) void glColor4d( GLdouble red, GLdouble green,
155                                    GLdouble blue, GLdouble alpha );
156 __attribute__((visibility("default"))) void glColor4f( GLfloat red, GLfloat green,
157                                    GLfloat blue, GLfloat alpha );
158 __attribute__((visibility("default"))) void glColor4i( GLint red, GLint green,
159                                    GLint blue, GLint alpha );
160 __attribute__((visibility("default"))) void glColor4s( GLshort red, GLshort green,
161                                    GLshort blue, GLshort alpha );
162 __attribute__((visibility("default"))) void glColor4ub( GLubyte red, GLubyte green,
163                                     GLubyte blue, GLubyte alpha );
164 __attribute__((visibility("default"))) void glColor4ui( GLuint red, GLuint green,
165                                     GLuint blue, GLuint alpha );
166 __attribute__((visibility("default"))) void glColor4us( GLushort red, GLushort green,
167                                     GLushort blue, GLushort alpha );
168 __attribute__((visibility("default"))) void glColor3bv( const GLbyte *v );
169 __attribute__((visibility("default"))) void glColor3dv( const GLdouble *v );
170 __attribute__((visibility("default"))) void glColor3fv( const GLfloat *v );
171 __attribute__((visibility("default"))) void glColor3iv( const GLint *v );
172 __attribute__((visibility("default"))) void glColor3sv( const GLshort *v );
173 __attribute__((visibility("default"))) void glColor3ubv( const GLubyte *v );
174 __attribute__((visibility("default"))) void glColor3uiv( const GLuint *v );
175 __attribute__((visibility("default"))) void glColor3usv( const GLushort *v );
176 __attribute__((visibility("default"))) void glColor4bv( const GLbyte *v );
177 __attribute__((visibility("default"))) void glColor4dv( const GLdouble *v );
178 __attribute__((visibility("default"))) void glColor4fv( const GLfloat *v );
179 __attribute__((visibility("default"))) void glColor4iv( const GLint *v );
180 __attribute__((visibility("default"))) void glColor4sv( const GLshort *v );
181 __attribute__((visibility("default"))) void glColor4ubv( const GLubyte *v );
182 __attribute__((visibility("default"))) void glColor4uiv( const GLuint *v );
183 __attribute__((visibility("default"))) void glColor4usv( const GLushort *v );
184 __attribute__((visibility("default"))) void glTexCoord1d( GLdouble s );
185 __attribute__((visibility("default"))) void glTexCoord1f( GLfloat s );
186 __attribute__((visibility("default"))) void glTexCoord1i( GLint s );
187 __attribute__((visibility("default"))) void glTexCoord1s( GLshort s );
188 __attribute__((visibility("default"))) void glTexCoord2d( GLdouble s, GLdouble t );
189 __attribute__((visibility("default"))) void glTexCoord2f( GLfloat s, GLfloat t );
190 __attribute__((visibility("default"))) void glTexCoord2i( GLint s, GLint t );
191 __attribute__((visibility("default"))) void glTexCoord2s( GLshort s, GLshort t );
192 __attribute__((visibility("default"))) void glTexCoord3d( GLdouble s, GLdouble t, GLdouble r );
193 __attribute__((visibility("default"))) void glTexCoord3f( GLfloat s, GLfloat t, GLfloat r );
194 __attribute__((visibility("default"))) void glTexCoord3i( GLint s, GLint t, GLint r );
195 __attribute__((visibility("default"))) void glTexCoord3s( GLshort s, GLshort t, GLshort r );
196 __attribute__((visibility("default"))) void glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q );
197 __attribute__((visibility("default"))) void glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q );
198 __attribute__((visibility("default"))) void glTexCoord4i( GLint s, GLint t, GLint r, GLint q );
199 __attribute__((visibility("default"))) void glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q );
200 __attribute__((visibility("default"))) void glTexCoord1dv( const GLdouble *v );
201 __attribute__((visibility("default"))) void glTexCoord1fv( const GLfloat *v );
202 __attribute__((visibility("default"))) void glTexCoord1iv( const GLint *v );
203 __attribute__((visibility("default"))) void glTexCoord1sv( const GLshort *v );
204 __attribute__((visibility("default"))) void glTexCoord2dv( const GLdouble *v );
205 __attribute__((visibility("default"))) void glTexCoord2fv( const GLfloat *v );
206 __attribute__((visibility("default"))) void glTexCoord2iv( const GLint *v );
207 __attribute__((visibility("default"))) void glTexCoord2sv( const GLshort *v );
208 __attribute__((visibility("default"))) void glTexCoord3dv( const GLdouble *v );
209 __attribute__((visibility("default"))) void glTexCoord3fv( const GLfloat *v );
210 __attribute__((visibility("default"))) void glTexCoord3iv( const GLint *v );
211 __attribute__((visibility("default"))) void glTexCoord3sv( const GLshort *v );
212 __attribute__((visibility("default"))) void glTexCoord4dv( const GLdouble *v );
213 __attribute__((visibility("default"))) void glTexCoord4fv( const GLfloat *v );
214 __attribute__((visibility("default"))) void glTexCoord4iv( const GLint *v );
215 __attribute__((visibility("default"))) void glTexCoord4sv( const GLshort *v );
216 __attribute__((visibility("default"))) void glRasterPos2d( GLdouble x, GLdouble y );
217 __attribute__((visibility("default"))) void glRasterPos2f( GLfloat x, GLfloat y );
218 __attribute__((visibility("default"))) void glRasterPos2i( GLint x, GLint y );
219 __attribute__((visibility("default"))) void glRasterPos2s( GLshort x, GLshort y );
220 __attribute__((visibility("default"))) void glRasterPos3d( GLdouble x, GLdouble y, GLdouble z );
221 __attribute__((visibility("default"))) void glRasterPos3f( GLfloat x, GLfloat y, GLfloat z );
222 __attribute__((visibility("default"))) void glRasterPos3i( GLint x, GLint y, GLint z );
223 __attribute__((visibility("default"))) void glRasterPos3s( GLshort x, GLshort y, GLshort z );
224 __attribute__((visibility("default"))) void glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
225 __attribute__((visibility("default"))) void glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
226 __attribute__((visibility("default"))) void glRasterPos4i( GLint x, GLint y, GLint z, GLint w );
227 __attribute__((visibility("default"))) void glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w );
228 __attribute__((visibility("default"))) void glRasterPos2dv( const GLdouble *v );
229 __attribute__((visibility("default"))) void glRasterPos2fv( const GLfloat *v );
230 __attribute__((visibility("default"))) void glRasterPos2iv( const GLint *v );
231 __attribute__((visibility("default"))) void glRasterPos2sv( const GLshort *v );
232 __attribute__((visibility("default"))) void glRasterPos3dv( const GLdouble *v );
233 __attribute__((visibility("default"))) void glRasterPos3fv( const GLfloat *v );
234 __attribute__((visibility("default"))) void glRasterPos3iv( const GLint *v );
235 __attribute__((visibility("default"))) void glRasterPos3sv( const GLshort *v );
236 __attribute__((visibility("default"))) void glRasterPos4dv( const GLdouble *v );
237 __attribute__((visibility("default"))) void glRasterPos4fv( const GLfloat *v );
238 __attribute__((visibility("default"))) void glRasterPos4iv( const GLint *v );
239 __attribute__((visibility("default"))) void glRasterPos4sv( const GLshort *v );
240 __attribute__((visibility("default"))) void glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 );
241 __attribute__((visibility("default"))) void glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 );
242 __attribute__((visibility("default"))) void glRecti( GLint x1, GLint y1, GLint x2, GLint y2 );
243 __attribute__((visibility("default"))) void glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 );
244 __attribute__((visibility("default"))) void glRectdv( const GLdouble *v1, const GLdouble *v2 );
245 __attribute__((visibility("default"))) void glRectfv( const GLfloat *v1, const GLfloat *v2 );
246 __attribute__((visibility("default"))) void glRectiv( const GLint *v1, const GLint *v2 );
247 __attribute__((visibility("default"))) void glRectsv( const GLshort *v1, const GLshort *v2 );
248 __attribute__((visibility("default"))) void glVertexPointer( GLint size, GLenum type,
249                                        GLsizei stride, const GLvoid *ptr );
250 __attribute__((visibility("default"))) void glNormalPointer( GLenum type, GLsizei stride,
251                                        const GLvoid *ptr );
252 __attribute__((visibility("default"))) void glColorPointer( GLint size, GLenum type,
253                                       GLsizei stride, const GLvoid *ptr );
254 __attribute__((visibility("default"))) void glIndexPointer( GLenum type, GLsizei stride,
255                                       const GLvoid *ptr );
256 __attribute__((visibility("default"))) void glTexCoordPointer( GLint size, GLenum type,
257                                          GLsizei stride, const GLvoid *ptr );
258 __attribute__((visibility("default"))) void glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr );
259 __attribute__((visibility("default"))) void glGetPointerv( GLenum pname, GLvoid **params );
260 __attribute__((visibility("default"))) void glArrayElement( GLint i );
261 __attribute__((visibility("default"))) void glDrawArrays( GLenum mode, GLint first, GLsizei count );
262 __attribute__((visibility("default"))) void glDrawElements( GLenum mode, GLsizei count,
263                                       GLenum type, const GLvoid *indices );
264 __attribute__((visibility("default"))) void glInterleavedArrays( GLenum format, GLsizei stride,
265                                            const GLvoid *pointer );
266 __attribute__((visibility("default"))) void glShadeModel( GLenum mode );
267 __attribute__((visibility("default"))) void glLightf( GLenum light, GLenum pname, GLfloat param );
268 __attribute__((visibility("default"))) void glLighti( GLenum light, GLenum pname, GLint param );
269 __attribute__((visibility("default"))) void glLightfv( GLenum light, GLenum pname,
270                                  const GLfloat *params );
271 __attribute__((visibility("default"))) void glLightiv( GLenum light, GLenum pname,
272                                  const GLint *params );
273 __attribute__((visibility("default"))) void glGetLightfv( GLenum light, GLenum pname,
274                                     GLfloat *params );
275 __attribute__((visibility("default"))) void glGetLightiv( GLenum light, GLenum pname,
276                                     GLint *params );
277 __attribute__((visibility("default"))) void glLightModelf( GLenum pname, GLfloat param );
278 __attribute__((visibility("default"))) void glLightModeli( GLenum pname, GLint param );
279 __attribute__((visibility("default"))) void glLightModelfv( GLenum pname, const GLfloat *params );
280 __attribute__((visibility("default"))) void glLightModeliv( GLenum pname, const GLint *params );
281 __attribute__((visibility("default"))) void glMaterialf( GLenum face, GLenum pname, GLfloat param );
282 __attribute__((visibility("default"))) void glMateriali( GLenum face, GLenum pname, GLint param );
283 __attribute__((visibility("default"))) void glMaterialfv( GLenum face, GLenum pname, const GLfloat *params );
284 __attribute__((visibility("default"))) void glMaterialiv( GLenum face, GLenum pname, const GLint *params );
285 __attribute__((visibility("default"))) void glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params );
286 __attribute__((visibility("default"))) void glGetMaterialiv( GLenum face, GLenum pname, GLint *params );
287 __attribute__((visibility("default"))) void glColorMaterial( GLenum face, GLenum mode );
288 __attribute__((visibility("default"))) void glPixelZoom( GLfloat xfactor, GLfloat yfactor );
289 __attribute__((visibility("default"))) void glPixelStoref( GLenum pname, GLfloat param );
290 __attribute__((visibility("default"))) void glPixelStorei( GLenum pname, GLint param );
291 __attribute__((visibility("default"))) void glPixelTransferf( GLenum pname, GLfloat param );
292 __attribute__((visibility("default"))) void glPixelTransferi( GLenum pname, GLint param );
293 __attribute__((visibility("default"))) void glPixelMapfv( GLenum map, GLsizei mapsize,
294                                     const GLfloat *values );
295 __attribute__((visibility("default"))) void glPixelMapuiv( GLenum map, GLsizei mapsize,
296                                      const GLuint *values );
297 __attribute__((visibility("default"))) void glPixelMapusv( GLenum map, GLsizei mapsize,
298                                      const GLushort *values );
299 __attribute__((visibility("default"))) void glGetPixelMapfv( GLenum map, GLfloat *values );
300 __attribute__((visibility("default"))) void glGetPixelMapuiv( GLenum map, GLuint *values );
301 __attribute__((visibility("default"))) void glGetPixelMapusv( GLenum map, GLushort *values );
302 __attribute__((visibility("default"))) void glBitmap( GLsizei width, GLsizei height,
303                                 GLfloat xorig, GLfloat yorig,
304                                 GLfloat xmove, GLfloat ymove,
305                                 const GLubyte *bitmap );
306 __attribute__((visibility("default"))) void glReadPixels( GLint x, GLint y,
307                                     GLsizei width, GLsizei height,
308                                     GLenum format, GLenum type,
309                                     GLvoid *pixels );
310 __attribute__((visibility("default"))) void glDrawPixels( GLsizei width, GLsizei height,
311                                     GLenum format, GLenum type,
312                                     const GLvoid *pixels );
313 __attribute__((visibility("default"))) void glCopyPixels( GLint x, GLint y,
314                                     GLsizei width, GLsizei height,
315                                     GLenum type );
316 __attribute__((visibility("default"))) void glStencilFunc( GLenum func, GLint ref, GLuint mask );
317 __attribute__((visibility("default"))) void glStencilMask( GLuint mask );
318 __attribute__((visibility("default"))) void glStencilOp( GLenum fail, GLenum zfail, GLenum zpass );
319 __attribute__((visibility("default"))) void glClearStencil( GLint s );
320 __attribute__((visibility("default"))) void glTexGend( GLenum coord, GLenum pname, GLdouble param );
321 __attribute__((visibility("default"))) void glTexGenf( GLenum coord, GLenum pname, GLfloat param );
322 __attribute__((visibility("default"))) void glTexGeni( GLenum coord, GLenum pname, GLint param );
323 __attribute__((visibility("default"))) void glTexGendv( GLenum coord, GLenum pname, const GLdouble *params );
324 __attribute__((visibility("default"))) void glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params );
325 __attribute__((visibility("default"))) void glTexGeniv( GLenum coord, GLenum pname, const GLint *params );
326 __attribute__((visibility("default"))) void glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params );
327 __attribute__((visibility("default"))) void glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params );
328 __attribute__((visibility("default"))) void glGetTexGeniv( GLenum coord, GLenum pname, GLint *params );
329 __attribute__((visibility("default"))) void glTexEnvf( GLenum target, GLenum pname, GLfloat param );
330 __attribute__((visibility("default"))) void glTexEnvi( GLenum target, GLenum pname, GLint param );
331 __attribute__((visibility("default"))) void glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params );
332 __attribute__((visibility("default"))) void glTexEnviv( GLenum target, GLenum pname, const GLint *params );
333 __attribute__((visibility("default"))) void glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params );
334 __attribute__((visibility("default"))) void glGetTexEnviv( GLenum target, GLenum pname, GLint *params );
335 __attribute__((visibility("default"))) void glTexParameterf( GLenum target, GLenum pname, GLfloat param );
336 __attribute__((visibility("default"))) void glTexParameteri( GLenum target, GLenum pname, GLint param );
337 __attribute__((visibility("default"))) void glTexParameterfv( GLenum target, GLenum pname,
338                                           const GLfloat *params );
339 __attribute__((visibility("default"))) void glTexParameteriv( GLenum target, GLenum pname,
340                                           const GLint *params );
341 __attribute__((visibility("default"))) void glGetTexParameterfv( GLenum target,
342                                            GLenum pname, GLfloat *params);
343 __attribute__((visibility("default"))) void glGetTexParameteriv( GLenum target,
344                                            GLenum pname, GLint *params );
345 __attribute__((visibility("default"))) void glGetTexLevelParameterfv( GLenum target, GLint level,
346                                                 GLenum pname, GLfloat *params );
347 __attribute__((visibility("default"))) void glGetTexLevelParameteriv( GLenum target, GLint level,
348                                                 GLenum pname, GLint *params );
349 __attribute__((visibility("default"))) void glTexImage1D( GLenum target, GLint level,
350                                     GLint internalFormat,
351                                     GLsizei width, GLint border,
352                                     GLenum format, GLenum type,
353                                     const GLvoid *pixels );
354 __attribute__((visibility("default"))) void glTexImage2D( GLenum target, GLint level,
355                                     GLint internalFormat,
356                                     GLsizei width, GLsizei height,
357                                     GLint border, GLenum format, GLenum type,
358                                     const GLvoid *pixels );
359 __attribute__((visibility("default"))) void glGetTexImage( GLenum target, GLint level,
360                                      GLenum format, GLenum type,
361                                      GLvoid *pixels );
362 __attribute__((visibility("default"))) void glGenTextures( GLsizei n, GLuint *textures );
363 __attribute__((visibility("default"))) void glDeleteTextures( GLsizei n, const GLuint *textures);
364 __attribute__((visibility("default"))) void glBindTexture( GLenum target, GLuint texture );
365 __attribute__((visibility("default"))) void glPrioritizeTextures( GLsizei n,
366                                             const GLuint *textures,
367                                             const GLclampf *priorities );
368 __attribute__((visibility("default"))) GLboolean glAreTexturesResident( GLsizei n,
369                                                   const GLuint *textures,
370                                                   GLboolean *residences );
371 __attribute__((visibility("default"))) GLboolean glIsTexture( GLuint texture );
372 __attribute__((visibility("default"))) void glTexSubImage1D( GLenum target, GLint level,
373                                        GLint xoffset,
374                                        GLsizei width, GLenum format,
375                                        GLenum type, const GLvoid *pixels );
376 __attribute__((visibility("default"))) void glTexSubImage2D( GLenum target, GLint level,
377                                        GLint xoffset, GLint yoffset,
378                                        GLsizei width, GLsizei height,
379                                        GLenum format, GLenum type,
380                                        const GLvoid *pixels );
381 __attribute__((visibility("default"))) void glCopyTexImage1D( GLenum target, GLint level,
382                                         GLenum internalformat,
383                                         GLint x, GLint y,
384                                         GLsizei width, GLint border );
385 __attribute__((visibility("default"))) void glCopyTexImage2D( GLenum target, GLint level,
386                                         GLenum internalformat,
387                                         GLint x, GLint y,
388                                         GLsizei width, GLsizei height,
389                                         GLint border );
390 __attribute__((visibility("default"))) void glCopyTexSubImage1D( GLenum target, GLint level,
391                                            GLint xoffset, GLint x, GLint y,
392                                            GLsizei width );
393 __attribute__((visibility("default"))) void glCopyTexSubImage2D( GLenum target, GLint level,
394                                            GLint xoffset, GLint yoffset,
395                                            GLint x, GLint y,
396                                            GLsizei width, GLsizei height );
397 __attribute__((visibility("default"))) void glMap1d( GLenum target, GLdouble u1, GLdouble u2,
398                                GLint stride,
399                                GLint order, const GLdouble *points );
400 __attribute__((visibility("default"))) void glMap1f( GLenum target, GLfloat u1, GLfloat u2,
401                                GLint stride,
402                                GLint order, const GLfloat *points );
403 __attribute__((visibility("default"))) void glMap2d( GLenum target,
404        GLdouble u1, GLdouble u2, GLint ustride, GLint uorder,
405        GLdouble v1, GLdouble v2, GLint vstride, GLint vorder,
406        const GLdouble *points );
407 __attribute__((visibility("default"))) void glMap2f( GLenum target,
408        GLfloat u1, GLfloat u2, GLint ustride, GLint uorder,
409        GLfloat v1, GLfloat v2, GLint vstride, GLint vorder,
410        const GLfloat *points );
411 __attribute__((visibility("default"))) void glGetMapdv( GLenum target, GLenum query, GLdouble *v );
412 __attribute__((visibility("default"))) void glGetMapfv( GLenum target, GLenum query, GLfloat *v );
413 __attribute__((visibility("default"))) void glGetMapiv( GLenum target, GLenum query, GLint *v );
414 __attribute__((visibility("default"))) void glEvalCoord1d( GLdouble u );
415 __attribute__((visibility("default"))) void glEvalCoord1f( GLfloat u );
416 __attribute__((visibility("default"))) void glEvalCoord1dv( const GLdouble *u );
417 __attribute__((visibility("default"))) void glEvalCoord1fv( const GLfloat *u );
418 __attribute__((visibility("default"))) void glEvalCoord2d( GLdouble u, GLdouble v );
419 __attribute__((visibility("default"))) void glEvalCoord2f( GLfloat u, GLfloat v );
420 __attribute__((visibility("default"))) void glEvalCoord2dv( const GLdouble *u );
421 __attribute__((visibility("default"))) void glEvalCoord2fv( const GLfloat *u );
422 __attribute__((visibility("default"))) void glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 );
423 __attribute__((visibility("default"))) void glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 );
424 __attribute__((visibility("default"))) void glMapGrid2d( GLint un, GLdouble u1, GLdouble u2,
425                                    GLint vn, GLdouble v1, GLdouble v2 );
426 __attribute__((visibility("default"))) void glMapGrid2f( GLint un, GLfloat u1, GLfloat u2,
427                                    GLint vn, GLfloat v1, GLfloat v2 );
428 __attribute__((visibility("default"))) void glEvalPoint1( GLint i );
429 __attribute__((visibility("default"))) void glEvalPoint2( GLint i, GLint j );
430 __attribute__((visibility("default"))) void glEvalMesh1( GLenum mode, GLint i1, GLint i2 );
431 __attribute__((visibility("default"))) void glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
432 __attribute__((visibility("default"))) void glFogf( GLenum pname, GLfloat param );
433 __attribute__((visibility("default"))) void glFogi( GLenum pname, GLint param );
434 __attribute__((visibility("default"))) void glFogfv( GLenum pname, const GLfloat *params );
435 __attribute__((visibility("default"))) void glFogiv( GLenum pname, const GLint *params );
436 __attribute__((visibility("default"))) void glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer );
437 __attribute__((visibility("default"))) void glPassThrough( GLfloat token );
438 __attribute__((visibility("default"))) void glSelectBuffer( GLsizei size, GLuint *buffer );
439 __attribute__((visibility("default"))) void glInitNames( void );
440 __attribute__((visibility("default"))) void glLoadName( GLuint name );
441 __attribute__((visibility("default"))) void glPushName( GLuint name );
442 __attribute__((visibility("default"))) void glPopName( void );
443 __attribute__((visibility("default"))) void glDrawRangeElements( GLenum mode, GLuint start,
444  GLuint end, GLsizei count, GLenum type, const GLvoid *indices );
445 __attribute__((visibility("default"))) void glTexImage3D( GLenum target, GLint level,
446                                       GLint internalFormat,
447                                       GLsizei width, GLsizei height,
448                                       GLsizei depth, GLint border,
449                                       GLenum format, GLenum type,
450                                       const GLvoid *pixels );
451 __attribute__((visibility("default"))) void glTexSubImage3D( GLenum target, GLint level,
452                                          GLint xoffset, GLint yoffset,
453                                          GLint zoffset, GLsizei width,
454                                          GLsizei height, GLsizei depth,
455                                          GLenum format,
456                                          GLenum type, const GLvoid *pixels);
457 __attribute__((visibility("default"))) void glCopyTexSubImage3D( GLenum target, GLint level,
458                                              GLint xoffset, GLint yoffset,
459                                              GLint zoffset, GLint x,
460                                              GLint y, GLsizei width,
461                                              GLsizei height );
462 typedef void ( * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
463 typedef void ( * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
464 typedef void ( * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
465 typedef void ( * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
466 __attribute__((visibility("default"))) void glColorTable( GLenum target, GLenum internalformat,
467                                     GLsizei width, GLenum format,
468                                     GLenum type, const GLvoid *table );
469 __attribute__((visibility("default"))) void glColorSubTable( GLenum target,
470                                        GLsizei start, GLsizei count,
471                                        GLenum format, GLenum type,
472                                        const GLvoid *data );
473 __attribute__((visibility("default"))) void glColorTableParameteriv(GLenum target, GLenum pname,
474                                               const GLint *params);
475 __attribute__((visibility("default"))) void glColorTableParameterfv(GLenum target, GLenum pname,
476                                               const GLfloat *params);
477 __attribute__((visibility("default"))) void glCopyColorSubTable( GLenum target, GLsizei start,
478                                            GLint x, GLint y, GLsizei width );
479 __attribute__((visibility("default"))) void glCopyColorTable( GLenum target, GLenum internalformat,
480                                         GLint x, GLint y, GLsizei width );
481 __attribute__((visibility("default"))) void glGetColorTable( GLenum target, GLenum format,
482                                        GLenum type, GLvoid *table );
483 __attribute__((visibility("default"))) void glGetColorTableParameterfv( GLenum target, GLenum pname,
484                                                   GLfloat *params );
485 __attribute__((visibility("default"))) void glGetColorTableParameteriv( GLenum target, GLenum pname,
486                                                   GLint *params );
487 __attribute__((visibility("default"))) void glBlendEquation( GLenum mode );
488 __attribute__((visibility("default"))) void glBlendColor( GLclampf red, GLclampf green,
489                                     GLclampf blue, GLclampf alpha );
490 __attribute__((visibility("default"))) void glHistogram( GLenum target, GLsizei width,
491        GLenum internalformat, GLboolean sink );
492 __attribute__((visibility("default"))) void glResetHistogram( GLenum target );
493 __attribute__((visibility("default"))) void glGetHistogram( GLenum target, GLboolean reset,
494           GLenum format, GLenum type,
495           GLvoid *values );
496 __attribute__((visibility("default"))) void glGetHistogramParameterfv( GLenum target, GLenum pname,
497        GLfloat *params );
498 __attribute__((visibility("default"))) void glGetHistogramParameteriv( GLenum target, GLenum pname,
499        GLint *params );
500 __attribute__((visibility("default"))) void glMinmax( GLenum target, GLenum internalformat,
501     GLboolean sink );
502 __attribute__((visibility("default"))) void glResetMinmax( GLenum target );
503 __attribute__((visibility("default"))) void glGetMinmax( GLenum target, GLboolean reset,
504                                    GLenum format, GLenum types,
505                                    GLvoid *values );
506 __attribute__((visibility("default"))) void glGetMinmaxParameterfv( GLenum target, GLenum pname,
507            GLfloat *params );
508 __attribute__((visibility("default"))) void glGetMinmaxParameteriv( GLenum target, GLenum pname,
509            GLint *params );
510 __attribute__((visibility("default"))) void glConvolutionFilter1D( GLenum target,
511  GLenum internalformat, GLsizei width, GLenum format, GLenum type,
512  const GLvoid *image );
513 __attribute__((visibility("default"))) void glConvolutionFilter2D( GLenum target,
514  GLenum internalformat, GLsizei width, GLsizei height, GLenum format,
515  GLenum type, const GLvoid *image );
516 __attribute__((visibility("default"))) void glConvolutionParameterf( GLenum target, GLenum pname,
517  GLfloat params );
518 __attribute__((visibility("default"))) void glConvolutionParameterfv( GLenum target, GLenum pname,
519  const GLfloat *params );
520 __attribute__((visibility("default"))) void glConvolutionParameteri( GLenum target, GLenum pname,
521  GLint params );
522 __attribute__((visibility("default"))) void glConvolutionParameteriv( GLenum target, GLenum pname,
523  const GLint *params );
524 __attribute__((visibility("default"))) void glCopyConvolutionFilter1D( GLenum target,
525  GLenum internalformat, GLint x, GLint y, GLsizei width );
526 __attribute__((visibility("default"))) void glCopyConvolutionFilter2D( GLenum target,
527  GLenum internalformat, GLint x, GLint y, GLsizei width,
528  GLsizei height);
529 __attribute__((visibility("default"))) void glGetConvolutionFilter( GLenum target, GLenum format,
530  GLenum type, GLvoid *image );
531 __attribute__((visibility("default"))) void glGetConvolutionParameterfv( GLenum target, GLenum pname,
532  GLfloat *params );
533 __attribute__((visibility("default"))) void glGetConvolutionParameteriv( GLenum target, GLenum pname,
534  GLint *params );
535 __attribute__((visibility("default"))) void glSeparableFilter2D( GLenum target,
536  GLenum internalformat, GLsizei width, GLsizei height, GLenum format,
537  GLenum type, const GLvoid *row, const GLvoid *column );
538 __attribute__((visibility("default"))) void glGetSeparableFilter( GLenum target, GLenum format,
539  GLenum type, GLvoid *row, GLvoid *column, GLvoid *span );
540 typedef void ( * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
541 typedef void ( * PFNGLBLENDEQUATIONPROC) (GLenum mode);
542 __attribute__((visibility("default"))) void glActiveTexture( GLenum texture );
543 __attribute__((visibility("default"))) void glClientActiveTexture( GLenum texture );
544 __attribute__((visibility("default"))) void glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data );
545 __attribute__((visibility("default"))) void glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );
546 __attribute__((visibility("default"))) void glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data );
547 __attribute__((visibility("default"))) void glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data );
548 __attribute__((visibility("default"))) void glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );
549 __attribute__((visibility("default"))) void glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data );
550 __attribute__((visibility("default"))) void glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img );
551 __attribute__((visibility("default"))) void glMultiTexCoord1d( GLenum target, GLdouble s );
552 __attribute__((visibility("default"))) void glMultiTexCoord1dv( GLenum target, const GLdouble *v );
553 __attribute__((visibility("default"))) void glMultiTexCoord1f( GLenum target, GLfloat s );
554 __attribute__((visibility("default"))) void glMultiTexCoord1fv( GLenum target, const GLfloat *v );
555 __attribute__((visibility("default"))) void glMultiTexCoord1i( GLenum target, GLint s );
556 __attribute__((visibility("default"))) void glMultiTexCoord1iv( GLenum target, const GLint *v );
557 __attribute__((visibility("default"))) void glMultiTexCoord1s( GLenum target, GLshort s );
558 __attribute__((visibility("default"))) void glMultiTexCoord1sv( GLenum target, const GLshort *v );
559 __attribute__((visibility("default"))) void glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t );
560 __attribute__((visibility("default"))) void glMultiTexCoord2dv( GLenum target, const GLdouble *v );
561 __attribute__((visibility("default"))) void glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t );
562 __attribute__((visibility("default"))) void glMultiTexCoord2fv( GLenum target, const GLfloat *v );
563 __attribute__((visibility("default"))) void glMultiTexCoord2i( GLenum target, GLint s, GLint t );
564 __attribute__((visibility("default"))) void glMultiTexCoord2iv( GLenum target, const GLint *v );
565 __attribute__((visibility("default"))) void glMultiTexCoord2s( GLenum target, GLshort s, GLshort t );
566 __attribute__((visibility("default"))) void glMultiTexCoord2sv( GLenum target, const GLshort *v );
567 __attribute__((visibility("default"))) void glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r );
568 __attribute__((visibility("default"))) void glMultiTexCoord3dv( GLenum target, const GLdouble *v );
569 __attribute__((visibility("default"))) void glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r );
570 __attribute__((visibility("default"))) void glMultiTexCoord3fv( GLenum target, const GLfloat *v );
571 __attribute__((visibility("default"))) void glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r );
572 __attribute__((visibility("default"))) void glMultiTexCoord3iv( GLenum target, const GLint *v );
573 __attribute__((visibility("default"))) void glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r );
574 __attribute__((visibility("default"))) void glMultiTexCoord3sv( GLenum target, const GLshort *v );
575 __attribute__((visibility("default"))) void glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q );
576 __attribute__((visibility("default"))) void glMultiTexCoord4dv( GLenum target, const GLdouble *v );
577 __attribute__((visibility("default"))) void glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
578 __attribute__((visibility("default"))) void glMultiTexCoord4fv( GLenum target, const GLfloat *v );
579 __attribute__((visibility("default"))) void glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q );
580 __attribute__((visibility("default"))) void glMultiTexCoord4iv( GLenum target, const GLint *v );
581 __attribute__((visibility("default"))) void glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q );
582 __attribute__((visibility("default"))) void glMultiTexCoord4sv( GLenum target, const GLshort *v );
583 __attribute__((visibility("default"))) void glLoadTransposeMatrixd( const GLdouble m[16] );
584 __attribute__((visibility("default"))) void glLoadTransposeMatrixf( const GLfloat m[16] );
585 __attribute__((visibility("default"))) void glMultTransposeMatrixd( const GLdouble m[16] );
586 __attribute__((visibility("default"))) void glMultTransposeMatrixf( const GLfloat m[16] );
587 __attribute__((visibility("default"))) void glSampleCoverage( GLclampf value, GLboolean invert );
588 typedef void ( * PFNGLACTIVETEXTUREPROC) (GLenum texture);
589 typedef void ( * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
590 typedef void ( * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
591 typedef void ( * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
592 typedef void ( * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
593 typedef void ( * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
594 typedef void ( * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
595 typedef void ( * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
596 typedef void ( * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img);
597 __attribute__((visibility("default"))) void glActiveTextureARB(GLenum texture);
598 __attribute__((visibility("default"))) void glClientActiveTextureARB(GLenum texture);
599 __attribute__((visibility("default"))) void glMultiTexCoord1dARB(GLenum target, GLdouble s);
600 __attribute__((visibility("default"))) void glMultiTexCoord1dvARB(GLenum target, const GLdouble *v);
601 __attribute__((visibility("default"))) void glMultiTexCoord1fARB(GLenum target, GLfloat s);
602 __attribute__((visibility("default"))) void glMultiTexCoord1fvARB(GLenum target, const GLfloat *v);
603 __attribute__((visibility("default"))) void glMultiTexCoord1iARB(GLenum target, GLint s);
604 __attribute__((visibility("default"))) void glMultiTexCoord1ivARB(GLenum target, const GLint *v);
605 __attribute__((visibility("default"))) void glMultiTexCoord1sARB(GLenum target, GLshort s);
606 __attribute__((visibility("default"))) void glMultiTexCoord1svARB(GLenum target, const GLshort *v);
607 __attribute__((visibility("default"))) void glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t);
608 __attribute__((visibility("default"))) void glMultiTexCoord2dvARB(GLenum target, const GLdouble *v);
609 __attribute__((visibility("default"))) void glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t);
610 __attribute__((visibility("default"))) void glMultiTexCoord2fvARB(GLenum target, const GLfloat *v);
611 __attribute__((visibility("default"))) void glMultiTexCoord2iARB(GLenum target, GLint s, GLint t);
612 __attribute__((visibility("default"))) void glMultiTexCoord2ivARB(GLenum target, const GLint *v);
613 __attribute__((visibility("default"))) void glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t);
614 __attribute__((visibility("default"))) void glMultiTexCoord2svARB(GLenum target, const GLshort *v);
615 __attribute__((visibility("default"))) void glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r);
616 __attribute__((visibility("default"))) void glMultiTexCoord3dvARB(GLenum target, const GLdouble *v);
617 __attribute__((visibility("default"))) void glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r);
618 __attribute__((visibility("default"))) void glMultiTexCoord3fvARB(GLenum target, const GLfloat *v);
619 __attribute__((visibility("default"))) void glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r);
620 __attribute__((visibility("default"))) void glMultiTexCoord3ivARB(GLenum target, const GLint *v);
621 __attribute__((visibility("default"))) void glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r);
622 __attribute__((visibility("default"))) void glMultiTexCoord3svARB(GLenum target, const GLshort *v);
623 __attribute__((visibility("default"))) void glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
624 __attribute__((visibility("default"))) void glMultiTexCoord4dvARB(GLenum target, const GLdouble *v);
625 __attribute__((visibility("default"))) void glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
626 __attribute__((visibility("default"))) void glMultiTexCoord4fvARB(GLenum target, const GLfloat *v);
627 __attribute__((visibility("default"))) void glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q);
628 __attribute__((visibility("default"))) void glMultiTexCoord4ivARB(GLenum target, const GLint *v);
629 __attribute__((visibility("default"))) void glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
630 __attribute__((visibility("default"))) void glMultiTexCoord4svARB(GLenum target, const GLshort *v);
631 typedef void ( * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
632 typedef void ( * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
633 typedef void ( * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
634 typedef void ( * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
635 typedef void ( * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
636 typedef void ( * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
637 typedef void ( * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
638 typedef void ( * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
639 typedef void ( * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
640 typedef void ( * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
641 typedef void ( * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
642 typedef void ( * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
643 typedef void ( * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
644 typedef void ( * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
645 typedef void ( * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
646 typedef void ( * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
647 typedef void ( * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
648 typedef void ( * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
649 typedef void ( * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
650 typedef void ( * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
651 typedef void ( * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
652 typedef void ( * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
653 typedef void ( * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
654 typedef void ( * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
655 typedef void ( * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
656 typedef void ( * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
657 typedef void ( * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
658 typedef void ( * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
659 typedef void ( * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
660 typedef void ( * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
661 typedef void ( * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
662 typedef void ( * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
663 typedef void ( * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
664 typedef void ( * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
665 typedef int ptrdiff_t;
666 typedef unsigned int size_t;
667 typedef long int wchar_t;
668 typedef char GLchar;
669 typedef ptrdiff_t GLintptr;
670 typedef ptrdiff_t GLsizeiptr;
671 typedef ptrdiff_t GLintptrARB;
672 typedef ptrdiff_t GLsizeiptrARB;
673 typedef char GLcharARB;
674 typedef unsigned int GLhandleARB;
675 typedef unsigned short GLhalfARB;
676 typedef unsigned short GLhalfNV;
677 typedef signed char int8_t;
678 typedef short int int16_t;
679 typedef int int32_t;
680 __extension__
681 typedef long long int int64_t;
682 typedef unsigned char uint8_t;
683 typedef unsigned short int uint16_t;
684 typedef unsigned int uint32_t;
685 __extension__
686 typedef unsigned long long int uint64_t;
687 typedef signed char int_least8_t;
688 typedef short int int_least16_t;
689 typedef int int_least32_t;
690 __extension__
691 typedef long long int int_least64_t;
692 typedef unsigned char uint_least8_t;
693 typedef unsigned short int uint_least16_t;
694 typedef unsigned int uint_least32_t;
695 __extension__
696 typedef unsigned long long int uint_least64_t;
697 typedef signed char int_fast8_t;
698 typedef int int_fast16_t;
699 typedef int int_fast32_t;
700 __extension__
701 typedef long long int int_fast64_t;
702 typedef unsigned char uint_fast8_t;
703 typedef unsigned int uint_fast16_t;
704 typedef unsigned int uint_fast32_t;
705 __extension__
706 typedef unsigned long long int uint_fast64_t;
707 typedef int intptr_t;
708 typedef unsigned int uintptr_t;
709 __extension__
710 typedef long long int intmax_t;
711 __extension__
712 typedef unsigned long long int uintmax_t;
713 typedef long int __gwchar_t;
714 typedef struct
715   {
716     long long int quot;
717     long long int rem;
718   } imaxdiv_t;
719 extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
720 extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
721       __attribute__ ((__nothrow__)) __attribute__ ((__const__));
722 extern intmax_t strtoimax (__const char *__restrict __nptr,
723       char **__restrict __endptr, int __base) __attribute__ ((__nothrow__));
724 extern uintmax_t strtoumax (__const char *__restrict __nptr,
725        char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__));
726 extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
727       __gwchar_t **__restrict __endptr, int __base)
728      __attribute__ ((__nothrow__));
729 extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
730        __gwchar_t ** __restrict __endptr, int __base)
731      __attribute__ ((__nothrow__));
732 __extension__
733 extern long long int __strtoll_internal (__const char *__restrict __nptr,
734       char **__restrict __endptr,
735       int __base, int __group)
736   __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
737 extern __inline __attribute__ ((__gnu_inline__)) intmax_t
738 __attribute__ ((__nothrow__)) strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base)
739 {
740   return __strtoll_internal (nptr, endptr, base, 0);
741 }
742 __extension__
743 extern unsigned long long int __strtoull_internal (__const char *
744          __restrict __nptr,
745          char **
746          __restrict __endptr,
747          int __base,
748          int __group)
749   __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
750 extern __inline __attribute__ ((__gnu_inline__)) uintmax_t
751 __attribute__ ((__nothrow__)) strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base)
752 {
753   return __strtoull_internal (nptr, endptr, base, 0);
754 }
755 __extension__
756 extern long long int __wcstoll_internal (__const __gwchar_t *
757       __restrict __nptr,
758       __gwchar_t **__restrict __endptr,
759       int __base, int __group)
760   __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
761 extern __inline __attribute__ ((__gnu_inline__)) intmax_t
762 __attribute__ ((__nothrow__)) wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
763 {
764   return __wcstoll_internal (nptr, endptr, base, 0);
765 }
766 __extension__
767 extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
768          __restrict __nptr,
769          __gwchar_t **
770          __restrict __endptr,
771          int __base,
772          int __group)
773   __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
774 extern __inline __attribute__ ((__gnu_inline__)) uintmax_t
775 __attribute__ ((__nothrow__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
776 {
777   return __wcstoull_internal (nptr, endptr, base, 0);
778 }
779 typedef int64_t GLint64EXT;
780 typedef uint64_t GLuint64EXT;
781 typedef int64_t GLint64;
782 typedef uint64_t GLuint64;
783 typedef struct __GLsync *GLsync;
784 struct _cl_context;
785 struct _cl_event;
786 typedef void ( *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
787 typedef void ( *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
788 typedef GLintptr GLvdpauSurfaceNV;
789 __attribute__((visibility("default"))) void glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
790 __attribute__((visibility("default"))) void glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params);
791 __attribute__((visibility("default"))) void glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params);
792 __attribute__((visibility("default"))) void glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
793 __attribute__((visibility("default"))) void glGetColorTable (GLenum target, GLenum format, GLenum type, GLvoid *table);
794 __attribute__((visibility("default"))) void glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params);
795 __attribute__((visibility("default"))) void glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params);
796 __attribute__((visibility("default"))) void glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
797 __attribute__((visibility("default"))) void glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
798 __attribute__((visibility("default"))) void glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
799 __attribute__((visibility("default"))) void glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
800 __attribute__((visibility("default"))) void glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params);
801 __attribute__((visibility("default"))) void glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params);
802 __attribute__((visibility("default"))) void glConvolutionParameteri (GLenum target, GLenum pname, GLint params);
803 __attribute__((visibility("default"))) void glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params);
804 __attribute__((visibility("default"))) void glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
805 __attribute__((visibility("default"))) void glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
806 __attribute__((visibility("default"))) void glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, GLvoid *image);
807 __attribute__((visibility("default"))) void glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params);
808 __attribute__((visibility("default"))) void glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params);
809 __attribute__((visibility("default"))) void glGetSeparableFilter (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
810 __attribute__((visibility("default"))) void glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
811 __attribute__((visibility("default"))) void glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
812 __attribute__((visibility("default"))) void glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params);
813 __attribute__((visibility("default"))) void glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params);
814 __attribute__((visibility("default"))) void glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
815 __attribute__((visibility("default"))) void glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params);
816 __attribute__((visibility("default"))) void glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params);
817 __attribute__((visibility("default"))) void glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
818 __attribute__((visibility("default"))) void glMinmax (GLenum target, GLenum internalformat, GLboolean sink);
819 __attribute__((visibility("default"))) void glResetHistogram (GLenum target);
820 __attribute__((visibility("default"))) void glResetMinmax (GLenum target);
821 typedef void ( * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
822 typedef void ( * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
823 typedef void ( * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
824 typedef void ( * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
825 typedef void ( * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
826 typedef void ( * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
827 typedef void ( * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
828 typedef void ( * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
829 typedef void ( * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
830 typedef void ( * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
831 typedef void ( * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
832 typedef void ( * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
833 typedef void ( * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
834 typedef void ( * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
835 typedef void ( * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
836 typedef void ( * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
837 typedef void ( * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
838 typedef void ( * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
839 typedef void ( * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
840 typedef void ( * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
841 typedef void ( * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
842 typedef void ( * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
843 typedef void ( * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
844 typedef void ( * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
845 typedef void ( * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
846 typedef void ( * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
847 typedef void ( * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
848 typedef void ( * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
849 typedef void ( * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
850 typedef void ( * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
851 typedef void ( * PFNGLRESETHISTOGRAMPROC) (GLenum target);
852 typedef void ( * PFNGLRESETMINMAXPROC) (GLenum target);
853 __attribute__((visibility("default"))) void glClientActiveTexture (GLenum texture);
854 __attribute__((visibility("default"))) void glMultiTexCoord1d (GLenum target, GLdouble s);
855 __attribute__((visibility("default"))) void glMultiTexCoord1dv (GLenum target, const GLdouble *v);
856 __attribute__((visibility("default"))) void glMultiTexCoord1f (GLenum target, GLfloat s);
857 __attribute__((visibility("default"))) void glMultiTexCoord1fv (GLenum target, const GLfloat *v);
858 __attribute__((visibility("default"))) void glMultiTexCoord1i (GLenum target, GLint s);
859 __attribute__((visibility("default"))) void glMultiTexCoord1iv (GLenum target, const GLint *v);
860 __attribute__((visibility("default"))) void glMultiTexCoord1s (GLenum target, GLshort s);
861 __attribute__((visibility("default"))) void glMultiTexCoord1sv (GLenum target, const GLshort *v);
862 __attribute__((visibility("default"))) void glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t);
863 __attribute__((visibility("default"))) void glMultiTexCoord2dv (GLenum target, const GLdouble *v);
864 __attribute__((visibility("default"))) void glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t);
865 __attribute__((visibility("default"))) void glMultiTexCoord2fv (GLenum target, const GLfloat *v);
866 __attribute__((visibility("default"))) void glMultiTexCoord2i (GLenum target, GLint s, GLint t);
867 __attribute__((visibility("default"))) void glMultiTexCoord2iv (GLenum target, const GLint *v);
868 __attribute__((visibility("default"))) void glMultiTexCoord2s (GLenum target, GLshort s, GLshort t);
869 __attribute__((visibility("default"))) void glMultiTexCoord2sv (GLenum target, const GLshort *v);
870 __attribute__((visibility("default"))) void glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r);
871 __attribute__((visibility("default"))) void glMultiTexCoord3dv (GLenum target, const GLdouble *v);
872 __attribute__((visibility("default"))) void glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r);
873 __attribute__((visibility("default"))) void glMultiTexCoord3fv (GLenum target, const GLfloat *v);
874 __attribute__((visibility("default"))) void glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r);
875 __attribute__((visibility("default"))) void glMultiTexCoord3iv (GLenum target, const GLint *v);
876 __attribute__((visibility("default"))) void glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r);
877 __attribute__((visibility("default"))) void glMultiTexCoord3sv (GLenum target, const GLshort *v);
878 __attribute__((visibility("default"))) void glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
879 __attribute__((visibility("default"))) void glMultiTexCoord4dv (GLenum target, const GLdouble *v);
880 __attribute__((visibility("default"))) void glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
881 __attribute__((visibility("default"))) void glMultiTexCoord4fv (GLenum target, const GLfloat *v);
882 __attribute__((visibility("default"))) void glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q);
883 __attribute__((visibility("default"))) void glMultiTexCoord4iv (GLenum target, const GLint *v);
884 __attribute__((visibility("default"))) void glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
885 __attribute__((visibility("default"))) void glMultiTexCoord4sv (GLenum target, const GLshort *v);
886 __attribute__((visibility("default"))) void glLoadTransposeMatrixf (const GLfloat *m);
887 __attribute__((visibility("default"))) void glLoadTransposeMatrixd (const GLdouble *m);
888 __attribute__((visibility("default"))) void glMultTransposeMatrixf (const GLfloat *m);
889 __attribute__((visibility("default"))) void glMultTransposeMatrixd (const GLdouble *m);
890 typedef void ( * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
891 typedef void ( * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
892 typedef void ( * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
893 typedef void ( * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
894 typedef void ( * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
895 typedef void ( * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
896 typedef void ( * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
897 typedef void ( * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
898 typedef void ( * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
899 typedef void ( * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
900 typedef void ( * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
901 typedef void ( * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
902 typedef void ( * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
903 typedef void ( * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
904 typedef void ( * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
905 typedef void ( * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
906 typedef void ( * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
907 typedef void ( * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
908 typedef void ( * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
909 typedef void ( * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
910 typedef void ( * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
911 typedef void ( * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
912 typedef void ( * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
913 typedef void ( * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
914 typedef void ( * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
915 typedef void ( * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
916 typedef void ( * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
917 typedef void ( * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
918 typedef void ( * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
919 typedef void ( * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
920 typedef void ( * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
921 typedef void ( * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
922 typedef void ( * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
923 typedef void ( * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m);
924 typedef void ( * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m);
925 typedef void ( * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m);
926 typedef void ( * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m);
927 __attribute__((visibility("default"))) void glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
928 __attribute__((visibility("default"))) void glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
929 __attribute__((visibility("default"))) void glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
930 __attribute__((visibility("default"))) void glPointParameterf (GLenum pname, GLfloat param);
931 __attribute__((visibility("default"))) void glPointParameterfv (GLenum pname, const GLfloat *params);
932 __attribute__((visibility("default"))) void glPointParameteri (GLenum pname, GLint param);
933 __attribute__((visibility("default"))) void glPointParameteriv (GLenum pname, const GLint *params);
934 typedef void ( * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
935 typedef void ( * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
936 typedef void ( * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
937 typedef void ( * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
938 typedef void ( * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
939 typedef void ( * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
940 typedef void ( * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
941 __attribute__((visibility("default"))) void glFogCoordf (GLfloat coord);
942 __attribute__((visibility("default"))) void glFogCoordfv (const GLfloat *coord);
943 __attribute__((visibility("default"))) void glFogCoordd (GLdouble coord);
944 __attribute__((visibility("default"))) void glFogCoorddv (const GLdouble *coord);
945 __attribute__((visibility("default"))) void glFogCoordPointer (GLenum type, GLsizei stride, const GLvoid *pointer);
946 __attribute__((visibility("default"))) void glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue);
947 __attribute__((visibility("default"))) void glSecondaryColor3bv (const GLbyte *v);
948 __attribute__((visibility("default"))) void glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue);
949 __attribute__((visibility("default"))) void glSecondaryColor3dv (const GLdouble *v);
950 __attribute__((visibility("default"))) void glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue);
951 __attribute__((visibility("default"))) void glSecondaryColor3fv (const GLfloat *v);
952 __attribute__((visibility("default"))) void glSecondaryColor3i (GLint red, GLint green, GLint blue);
953 __attribute__((visibility("default"))) void glSecondaryColor3iv (const GLint *v);
954 __attribute__((visibility("default"))) void glSecondaryColor3s (GLshort red, GLshort green, GLshort blue);
955 __attribute__((visibility("default"))) void glSecondaryColor3sv (const GLshort *v);
956 __attribute__((visibility("default"))) void glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue);
957 __attribute__((visibility("default"))) void glSecondaryColor3ubv (const GLubyte *v);
958 __attribute__((visibility("default"))) void glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue);
959 __attribute__((visibility("default"))) void glSecondaryColor3uiv (const GLuint *v);
960 __attribute__((visibility("default"))) void glSecondaryColor3us (GLushort red, GLushort green, GLushort blue);
961 __attribute__((visibility("default"))) void glSecondaryColor3usv (const GLushort *v);
962 __attribute__((visibility("default"))) void glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
963 __attribute__((visibility("default"))) void glWindowPos2d (GLdouble x, GLdouble y);
964 __attribute__((visibility("default"))) void glWindowPos2dv (const GLdouble *v);
965 __attribute__((visibility("default"))) void glWindowPos2f (GLfloat x, GLfloat y);
966 __attribute__((visibility("default"))) void glWindowPos2fv (const GLfloat *v);
967 __attribute__((visibility("default"))) void glWindowPos2i (GLint x, GLint y);
968 __attribute__((visibility("default"))) void glWindowPos2iv (const GLint *v);
969 __attribute__((visibility("default"))) void glWindowPos2s (GLshort x, GLshort y);
970 __attribute__((visibility("default"))) void glWindowPos2sv (const GLshort *v);
971 __attribute__((visibility("default"))) void glWindowPos3d (GLdouble x, GLdouble y, GLdouble z);
972 __attribute__((visibility("default"))) void glWindowPos3dv (const GLdouble *v);
973 __attribute__((visibility("default"))) void glWindowPos3f (GLfloat x, GLfloat y, GLfloat z);
974 __attribute__((visibility("default"))) void glWindowPos3fv (const GLfloat *v);
975 __attribute__((visibility("default"))) void glWindowPos3i (GLint x, GLint y, GLint z);
976 __attribute__((visibility("default"))) void glWindowPos3iv (const GLint *v);
977 __attribute__((visibility("default"))) void glWindowPos3s (GLshort x, GLshort y, GLshort z);
978 __attribute__((visibility("default"))) void glWindowPos3sv (const GLshort *v);
979 typedef void ( * PFNGLFOGCOORDFPROC) (GLfloat coord);
980 typedef void ( * PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
981 typedef void ( * PFNGLFOGCOORDDPROC) (GLdouble coord);
982 typedef void ( * PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
983 typedef void ( * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
984 typedef void ( * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
985 typedef void ( * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
986 typedef void ( * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
987 typedef void ( * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
988 typedef void ( * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
989 typedef void ( * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
990 typedef void ( * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
991 typedef void ( * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
992 typedef void ( * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
993 typedef void ( * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
994 typedef void ( * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
995 typedef void ( * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
996 typedef void ( * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
997 typedef void ( * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
998 typedef void ( * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
999 typedef void ( * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
1000 typedef void ( * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1001 typedef void ( * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
1002 typedef void ( * PFNGLWINDOWPOS2DVPROC) (const GLdouble *v);
1003 typedef void ( * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
1004 typedef void ( * PFNGLWINDOWPOS2FVPROC) (const GLfloat *v);
1005 typedef void ( * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
1006 typedef void ( * PFNGLWINDOWPOS2IVPROC) (const GLint *v);
1007 typedef void ( * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
1008 typedef void ( * PFNGLWINDOWPOS2SVPROC) (const GLshort *v);
1009 typedef void ( * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
1010 typedef void ( * PFNGLWINDOWPOS3DVPROC) (const GLdouble *v);
1011 typedef void ( * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
1012 typedef void ( * PFNGLWINDOWPOS3FVPROC) (const GLfloat *v);
1013 typedef void ( * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
1014 typedef void ( * PFNGLWINDOWPOS3IVPROC) (const GLint *v);
1015 typedef void ( * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
1016 typedef void ( * PFNGLWINDOWPOS3SVPROC) (const GLshort *v);
1017 __attribute__((visibility("default"))) void glGenQueries (GLsizei n, GLuint *ids);
1018 __attribute__((visibility("default"))) void glDeleteQueries (GLsizei n, const GLuint *ids);
1019 __attribute__((visibility("default"))) GLboolean glIsQuery (GLuint id);
1020 __attribute__((visibility("default"))) void glBeginQuery (GLenum target, GLuint id);
1021 __attribute__((visibility("default"))) void glEndQuery (GLenum target);
1022 __attribute__((visibility("default"))) void glGetQueryiv (GLenum target, GLenum pname, GLint *params);
1023 __attribute__((visibility("default"))) void glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params);
1024 __attribute__((visibility("default"))) void glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params);
1025 __attribute__((visibility("default"))) void glBindBuffer (GLenum target, GLuint buffer);
1026 __attribute__((visibility("default"))) void glDeleteBuffers (GLsizei n, const GLuint *buffers);
1027 __attribute__((visibility("default"))) void glGenBuffers (GLsizei n, GLuint *buffers);
1028 __attribute__((visibility("default"))) GLboolean glIsBuffer (GLuint buffer);
1029 __attribute__((visibility("default"))) void glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
1030 __attribute__((visibility("default"))) void glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
1031 __attribute__((visibility("default"))) void glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
1032 __attribute__((visibility("default"))) GLvoid* glMapBuffer (GLenum target, GLenum access);
1033 __attribute__((visibility("default"))) GLboolean glUnmapBuffer (GLenum target);
1034 __attribute__((visibility("default"))) void glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
1035 __attribute__((visibility("default"))) void glGetBufferPointerv (GLenum target, GLenum pname, GLvoid* *params);
1036 typedef void ( * PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
1037 typedef void ( * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
1038 typedef GLboolean ( * PFNGLISQUERYPROC) (GLuint id);
1039 typedef void ( * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
1040 typedef void ( * PFNGLENDQUERYPROC) (GLenum target);
1041 typedef void ( * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
1042 typedef void ( * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params);
1043 typedef void ( * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
1044 typedef void ( * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
1045 typedef void ( * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
1046 typedef void ( * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
1047 typedef GLboolean ( * PFNGLISBUFFERPROC) (GLuint buffer);
1048 typedef void ( * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
1049 typedef void ( * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
1050 typedef void ( * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
1051 typedef GLvoid* ( * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
1052 typedef GLboolean ( * PFNGLUNMAPBUFFERPROC) (GLenum target);
1053 typedef void ( * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
1054 typedef void ( * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params);
1055 __attribute__((visibility("default"))) void glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
1056 __attribute__((visibility("default"))) void glDrawBuffers (GLsizei n, const GLenum *bufs);
1057 __attribute__((visibility("default"))) void glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
1058 __attribute__((visibility("default"))) void glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
1059 __attribute__((visibility("default"))) void glStencilMaskSeparate (GLenum face, GLuint mask);
1060 __attribute__((visibility("default"))) void glAttachShader (GLuint program, GLuint shader);
1061 __attribute__((visibility("default"))) void glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
1062 __attribute__((visibility("default"))) void glCompileShader (GLuint shader);
1063 __attribute__((visibility("default"))) GLuint glCreateProgram (void);
1064 __attribute__((visibility("default"))) GLuint glCreateShader (GLenum type);
1065 __attribute__((visibility("default"))) void glDeleteProgram (GLuint program);
1066 __attribute__((visibility("default"))) void glDeleteShader (GLuint shader);
1067 __attribute__((visibility("default"))) void glDetachShader (GLuint program, GLuint shader);
1068 __attribute__((visibility("default"))) void glDisableVertexAttribArray (GLuint index);
1069 __attribute__((visibility("default"))) void glEnableVertexAttribArray (GLuint index);
1070 __attribute__((visibility("default"))) void glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
1071 __attribute__((visibility("default"))) void glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
1072 __attribute__((visibility("default"))) void glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
1073 __attribute__((visibility("default"))) GLint glGetAttribLocation (GLuint program, const GLchar *name);
1074 __attribute__((visibility("default"))) void glGetProgramiv (GLuint program, GLenum pname, GLint *params);
1075 __attribute__((visibility("default"))) void glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1076 __attribute__((visibility("default"))) void glGetShaderiv (GLuint shader, GLenum pname, GLint *params);
1077 __attribute__((visibility("default"))) void glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1078 __attribute__((visibility("default"))) void glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
1079 __attribute__((visibility("default"))) GLint glGetUniformLocation (GLuint program, const GLchar *name);
1080 __attribute__((visibility("default"))) void glGetUniformfv (GLuint program, GLint location, GLfloat *params);
1081 __attribute__((visibility("default"))) void glGetUniformiv (GLuint program, GLint location, GLint *params);
1082 __attribute__((visibility("default"))) void glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params);
1083 __attribute__((visibility("default"))) void glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params);
1084 __attribute__((visibility("default"))) void glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params);
1085 __attribute__((visibility("default"))) void glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid* *pointer);
1086 __attribute__((visibility("default"))) GLboolean glIsProgram (GLuint program);
1087 __attribute__((visibility("default"))) GLboolean glIsShader (GLuint shader);
1088 __attribute__((visibility("default"))) void glLinkProgram (GLuint program);
1089 __attribute__((visibility("default"))) void glShaderSource (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
1090 __attribute__((visibility("default"))) void glUseProgram (GLuint program);
1091 __attribute__((visibility("default"))) void glUniform1f (GLint location, GLfloat v0);
1092 __attribute__((visibility("default"))) void glUniform2f (GLint location, GLfloat v0, GLfloat v1);
1093 __attribute__((visibility("default"))) void glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
1094 __attribute__((visibility("default"))) void glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
1095 __attribute__((visibility("default"))) void glUniform1i (GLint location, GLint v0);
1096 __attribute__((visibility("default"))) void glUniform2i (GLint location, GLint v0, GLint v1);
1097 __attribute__((visibility("default"))) void glUniform3i (GLint location, GLint v0, GLint v1, GLint v2);
1098 __attribute__((visibility("default"))) void glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
1099 __attribute__((visibility("default"))) void glUniform1fv (GLint location, GLsizei count, const GLfloat *value);
1100 __attribute__((visibility("default"))) void glUniform2fv (GLint location, GLsizei count, const GLfloat *value);
1101 __attribute__((visibility("default"))) void glUniform3fv (GLint location, GLsizei count, const GLfloat *value);
1102 __attribute__((visibility("default"))) void glUniform4fv (GLint location, GLsizei count, const GLfloat *value);
1103 __attribute__((visibility("default"))) void glUniform1iv (GLint location, GLsizei count, const GLint *value);
1104 __attribute__((visibility("default"))) void glUniform2iv (GLint location, GLsizei count, const GLint *value);
1105 __attribute__((visibility("default"))) void glUniform3iv (GLint location, GLsizei count, const GLint *value);
1106 __attribute__((visibility("default"))) void glUniform4iv (GLint location, GLsizei count, const GLint *value);
1107 __attribute__((visibility("default"))) void glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1108 __attribute__((visibility("default"))) void glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1109 __attribute__((visibility("default"))) void glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1110 __attribute__((visibility("default"))) void glValidateProgram (GLuint program);
1111 __attribute__((visibility("default"))) void glVertexAttrib1d (GLuint index, GLdouble x);
1112 __attribute__((visibility("default"))) void glVertexAttrib1dv (GLuint index, const GLdouble *v);
1113 __attribute__((visibility("default"))) void glVertexAttrib1f (GLuint index, GLfloat x);
1114 __attribute__((visibility("default"))) void glVertexAttrib1fv (GLuint index, const GLfloat *v);
1115 __attribute__((visibility("default"))) void glVertexAttrib1s (GLuint index, GLshort x);
1116 __attribute__((visibility("default"))) void glVertexAttrib1sv (GLuint index, const GLshort *v);
1117 __attribute__((visibility("default"))) void glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y);
1118 __attribute__((visibility("default"))) void glVertexAttrib2dv (GLuint index, const GLdouble *v);
1119 __attribute__((visibility("default"))) void glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y);
1120 __attribute__((visibility("default"))) void glVertexAttrib2fv (GLuint index, const GLfloat *v);
1121 __attribute__((visibility("default"))) void glVertexAttrib2s (GLuint index, GLshort x, GLshort y);
1122 __attribute__((visibility("default"))) void glVertexAttrib2sv (GLuint index, const GLshort *v);
1123 __attribute__((visibility("default"))) void glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z);
1124 __attribute__((visibility("default"))) void glVertexAttrib3dv (GLuint index, const GLdouble *v);
1125 __attribute__((visibility("default"))) void glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z);
1126 __attribute__((visibility("default"))) void glVertexAttrib3fv (GLuint index, const GLfloat *v);
1127 __attribute__((visibility("default"))) void glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z);
1128 __attribute__((visibility("default"))) void glVertexAttrib3sv (GLuint index, const GLshort *v);
1129 __attribute__((visibility("default"))) void glVertexAttrib4Nbv (GLuint index, const GLbyte *v);
1130 __attribute__((visibility("default"))) void glVertexAttrib4Niv (GLuint index, const GLint *v);
1131 __attribute__((visibility("default"))) void glVertexAttrib4Nsv (GLuint index, const GLshort *v);
1132 __attribute__((visibility("default"))) void glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
1133 __attribute__((visibility("default"))) void glVertexAttrib4Nubv (GLuint index, const GLubyte *v);
1134 __attribute__((visibility("default"))) void glVertexAttrib4Nuiv (GLuint index, const GLuint *v);
1135 __attribute__((visibility("default"))) void glVertexAttrib4Nusv (GLuint index, const GLushort *v);
1136 __attribute__((visibility("default"))) void glVertexAttrib4bv (GLuint index, const GLbyte *v);
1137 __attribute__((visibility("default"))) void glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1138 __attribute__((visibility("default"))) void glVertexAttrib4dv (GLuint index, const GLdouble *v);
1139 __attribute__((visibility("default"))) void glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1140 __attribute__((visibility("default"))) void glVertexAttrib4fv (GLuint index, const GLfloat *v);
1141 __attribute__((visibility("default"))) void glVertexAttrib4iv (GLuint index, const GLint *v);
1142 __attribute__((visibility("default"))) void glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
1143 __attribute__((visibility("default"))) void glVertexAttrib4sv (GLuint index, const GLshort *v);
1144 __attribute__((visibility("default"))) void glVertexAttrib4ubv (GLuint index, const GLubyte *v);
1145 __attribute__((visibility("default"))) void glVertexAttrib4uiv (GLuint index, const GLuint *v);
1146 __attribute__((visibility("default"))) void glVertexAttrib4usv (GLuint index, const GLushort *v);
1147 __attribute__((visibility("default"))) void glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
1148 typedef void ( * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
1149 typedef void ( * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
1150 typedef void ( * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
1151 typedef void ( * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
1152 typedef void ( * PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
1153 typedef void ( * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
1154 typedef void ( * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
1155 typedef void ( * PFNGLCOMPILESHADERPROC) (GLuint shader);
1156 typedef GLuint ( * PFNGLCREATEPROGRAMPROC) (void);
1157 typedef GLuint ( * PFNGLCREATESHADERPROC) (GLenum type);
1158 typedef void ( * PFNGLDELETEPROGRAMPROC) (GLuint program);
1159 typedef void ( * PFNGLDELETESHADERPROC) (GLuint shader);
1160 typedef void ( * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
1161 typedef void ( * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
1162 typedef void ( * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
1163 typedef void ( * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
1164 typedef void ( * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
1165 typedef void ( * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
1166 typedef GLint ( * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
1167 typedef void ( * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
1168 typedef void ( * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1169 typedef void ( * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
1170 typedef void ( * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1171 typedef void ( * PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
1172 typedef GLint ( * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
1173 typedef void ( * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
1174 typedef void ( * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
1175 typedef void ( * PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
1176 typedef void ( * PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
1177 typedef void ( * PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
1178 typedef void ( * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
1179 typedef GLboolean ( * PFNGLISPROGRAMPROC) (GLuint program);
1180 typedef GLboolean ( * PFNGLISSHADERPROC) (GLuint shader);
1181 typedef void ( * PFNGLLINKPROGRAMPROC) (GLuint program);
1182 typedef void ( * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
1183 typedef void ( * PFNGLUSEPROGRAMPROC) (GLuint program);
1184 typedef void ( * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
1185 typedef void ( * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
1186 typedef void ( * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
1187 typedef void ( * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
1188 typedef void ( * PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
1189 typedef void ( * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
1190 typedef void ( * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
1191 typedef void ( * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
1192 typedef void ( * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
1193 typedef void ( * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
1194 typedef void ( * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
1195 typedef void ( * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
1196 typedef void ( * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
1197 typedef void ( * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
1198 typedef void ( * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
1199 typedef void ( * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
1200 typedef void ( * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1201 typedef void ( * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1202 typedef void ( * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1203 typedef void ( * PFNGLVALIDATEPROGRAMPROC) (GLuint program);
1204 typedef void ( * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
1205 typedef void ( * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
1206 typedef void ( * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
1207 typedef void ( * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
1208 typedef void ( * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
1209 typedef void ( * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
1210 typedef void ( * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
1211 typedef void ( * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
1212 typedef void ( * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
1213 typedef void ( * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
1214 typedef void ( * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
1215 typedef void ( * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
1216 typedef void ( * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
1217 typedef void ( * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
1218 typedef void ( * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
1219 typedef void ( * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
1220 typedef void ( * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
1221 typedef void ( * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
1222 typedef void ( * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
1223 typedef void ( * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
1224 typedef void ( * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
1225 typedef void ( * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
1226 typedef void ( * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
1227 typedef void ( * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
1228 typedef void ( * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
1229 typedef void ( * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
1230 typedef void ( * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1231 typedef void ( * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
1232 typedef void ( * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1233 typedef void ( * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
1234 typedef void ( * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
1235 typedef void ( * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
1236 typedef void ( * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
1237 typedef void ( * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
1238 typedef void ( * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
1239 typedef void ( * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
1240 typedef void ( * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
1241 __attribute__((visibility("default"))) void glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1242 __attribute__((visibility("default"))) void glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1243 __attribute__((visibility("default"))) void glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1244 __attribute__((visibility("default"))) void glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1245 __attribute__((visibility("default"))) void glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1246 __attribute__((visibility("default"))) void glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1247 typedef void ( * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1248 typedef void ( * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1249 typedef void ( * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1250 typedef void ( * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1251 typedef void ( * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1252 typedef void ( * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1253 __attribute__((visibility("default"))) void glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
1254 __attribute__((visibility("default"))) void glGetBooleani_v (GLenum target, GLuint index, GLboolean *data);
1255 __attribute__((visibility("default"))) void glGetIntegeri_v (GLenum target, GLuint index, GLint *data);
1256 __attribute__((visibility("default"))) void glEnablei (GLenum target, GLuint index);
1257 __attribute__((visibility("default"))) void glDisablei (GLenum target, GLuint index);
1258 __attribute__((visibility("default"))) GLboolean glIsEnabledi (GLenum target, GLuint index);
1259 __attribute__((visibility("default"))) void glBeginTransformFeedback (GLenum primitiveMode);
1260 __attribute__((visibility("default"))) void glEndTransformFeedback (void);
1261 __attribute__((visibility("default"))) void glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
1262 __attribute__((visibility("default"))) void glBindBufferBase (GLenum target, GLuint index, GLuint buffer);
1263 __attribute__((visibility("default"))) void glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
1264 __attribute__((visibility("default"))) void glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
1265 __attribute__((visibility("default"))) void glClampColor (GLenum target, GLenum clamp);
1266 __attribute__((visibility("default"))) void glBeginConditionalRender (GLuint id, GLenum mode);
1267 __attribute__((visibility("default"))) void glEndConditionalRender (void);
1268 __attribute__((visibility("default"))) void glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1269 __attribute__((visibility("default"))) void glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params);
1270 __attribute__((visibility("default"))) void glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params);
1271 __attribute__((visibility("default"))) void glVertexAttribI1i (GLuint index, GLint x);
1272 __attribute__((visibility("default"))) void glVertexAttribI2i (GLuint index, GLint x, GLint y);
1273 __attribute__((visibility("default"))) void glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z);
1274 __attribute__((visibility("default"))) void glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w);
1275 __attribute__((visibility("default"))) void glVertexAttribI1ui (GLuint index, GLuint x);
1276 __attribute__((visibility("default"))) void glVertexAttribI2ui (GLuint index, GLuint x, GLuint y);
1277 __attribute__((visibility("default"))) void glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z);
1278 __attribute__((visibility("default"))) void glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
1279 __attribute__((visibility("default"))) void glVertexAttribI1iv (GLuint index, const GLint *v);
1280 __attribute__((visibility("default"))) void glVertexAttribI2iv (GLuint index, const GLint *v);
1281 __attribute__((visibility("default"))) void glVertexAttribI3iv (GLuint index, const GLint *v);
1282 __attribute__((visibility("default"))) void glVertexAttribI4iv (GLuint index, const GLint *v);
1283 __attribute__((visibility("default"))) void glVertexAttribI1uiv (GLuint index, const GLuint *v);
1284 __attribute__((visibility("default"))) void glVertexAttribI2uiv (GLuint index, const GLuint *v);
1285 __attribute__((visibility("default"))) void glVertexAttribI3uiv (GLuint index, const GLuint *v);
1286 __attribute__((visibility("default"))) void glVertexAttribI4uiv (GLuint index, const GLuint *v);
1287 __attribute__((visibility("default"))) void glVertexAttribI4bv (GLuint index, const GLbyte *v);
1288 __attribute__((visibility("default"))) void glVertexAttribI4sv (GLuint index, const GLshort *v);
1289 __attribute__((visibility("default"))) void glVertexAttribI4ubv (GLuint index, const GLubyte *v);
1290 __attribute__((visibility("default"))) void glVertexAttribI4usv (GLuint index, const GLushort *v);
1291 __attribute__((visibility("default"))) void glGetUniformuiv (GLuint program, GLint location, GLuint *params);
1292 __attribute__((visibility("default"))) void glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name);
1293 __attribute__((visibility("default"))) GLint glGetFragDataLocation (GLuint program, const GLchar *name);
1294 __attribute__((visibility("default"))) void glUniform1ui (GLint location, GLuint v0);
1295 __attribute__((visibility("default"))) void glUniform2ui (GLint location, GLuint v0, GLuint v1);
1296 __attribute__((visibility("default"))) void glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2);
1297 __attribute__((visibility("default"))) void glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
1298 __attribute__((visibility("default"))) void glUniform1uiv (GLint location, GLsizei count, const GLuint *value);
1299 __attribute__((visibility("default"))) void glUniform2uiv (GLint location, GLsizei count, const GLuint *value);
1300 __attribute__((visibility("default"))) void glUniform3uiv (GLint location, GLsizei count, const GLuint *value);
1301 __attribute__((visibility("default"))) void glUniform4uiv (GLint location, GLsizei count, const GLuint *value);
1302 __attribute__((visibility("default"))) void glTexParameterIiv (GLenum target, GLenum pname, const GLint *params);
1303 __attribute__((visibility("default"))) void glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params);
1304 __attribute__((visibility("default"))) void glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params);
1305 __attribute__((visibility("default"))) void glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params);
1306 __attribute__((visibility("default"))) void glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value);
1307 __attribute__((visibility("default"))) void glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value);
1308 __attribute__((visibility("default"))) void glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value);
1309 __attribute__((visibility("default"))) void glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
1310 __attribute__((visibility("default"))) const GLubyte * glGetStringi (GLenum name, GLuint index);
1311 typedef void ( * PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
1312 typedef void ( * PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data);
1313 typedef void ( * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
1314 typedef void ( * PFNGLENABLEIPROC) (GLenum target, GLuint index);
1315 typedef void ( * PFNGLDISABLEIPROC) (GLenum target, GLuint index);
1316 typedef GLboolean ( * PFNGLISENABLEDIPROC) (GLenum target, GLuint index);
1317 typedef void ( * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
1318 typedef void ( * PFNGLENDTRANSFORMFEEDBACKPROC) (void);
1319 typedef void ( * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
1320 typedef void ( * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
1321 typedef void ( * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
1322 typedef void ( * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
1323 typedef void ( * PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
1324 typedef void ( * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
1325 typedef void ( * PFNGLENDCONDITIONALRENDERPROC) (void);
1326 typedef void ( * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1327 typedef void ( * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params);
1328 typedef void ( * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params);
1329 typedef void ( * PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x);
1330 typedef void ( * PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y);
1331 typedef void ( * PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z);
1332 typedef void ( * PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
1333 typedef void ( * PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x);
1334 typedef void ( * PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y);
1335 typedef void ( * PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
1336 typedef void ( * PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
1337 typedef void ( * PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v);
1338 typedef void ( * PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v);
1339 typedef void ( * PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v);
1340 typedef void ( * PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v);
1341 typedef void ( * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v);
1342 typedef void ( * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v);
1343 typedef void ( * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v);
1344 typedef void ( * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v);
1345 typedef void ( * PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v);
1346 typedef void ( * PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v);
1347 typedef void ( * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v);
1348 typedef void ( * PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v);
1349 typedef void ( * PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params);
1350 typedef void ( * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name);
1351 typedef GLint ( * PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name);
1352 typedef void ( * PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
1353 typedef void ( * PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
1354 typedef void ( * PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
1355 typedef void ( * PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
1356 typedef void ( * PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value);
1357 typedef void ( * PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value);
1358 typedef void ( * PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value);
1359 typedef void ( * PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value);
1360 typedef void ( * PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params);
1361 typedef void ( * PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params);
1362 typedef void ( * PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params);
1363 typedef void ( * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params);
1364 typedef void ( * PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value);
1365 typedef void ( * PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value);
1366 typedef void ( * PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value);
1367 typedef void ( * PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
1368 typedef const GLubyte * ( * PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
1369 __attribute__((visibility("default"))) void glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1370 __attribute__((visibility("default"))) void glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
1371 __attribute__((visibility("default"))) void glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer);
1372 __attribute__((visibility("default"))) void glPrimitiveRestartIndex (GLuint index);
1373 typedef void ( * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1374 typedef void ( * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
1375 typedef void ( * PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer);
1376 typedef void ( * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index);
1377 __attribute__((visibility("default"))) void glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data);
1378 __attribute__((visibility("default"))) void glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params);
1379 __attribute__((visibility("default"))) void glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level);
1380 typedef void ( * PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data);
1381 typedef void ( * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params);
1382 typedef void ( * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
1383 __attribute__((visibility("default"))) void glVertexAttribDivisor (GLuint index, GLuint divisor);
1384 typedef void ( * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor);
1385 __attribute__((visibility("default"))) void glMinSampleShading (GLclampf value);
1386 __attribute__((visibility("default"))) void glBlendEquationi (GLuint buf, GLenum mode);
1387 __attribute__((visibility("default"))) void glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
1388 __attribute__((visibility("default"))) void glBlendFunci (GLuint buf, GLenum src, GLenum dst);
1389 __attribute__((visibility("default"))) void glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
1390 typedef void ( * PFNGLMINSAMPLESHADINGPROC) (GLclampf value);
1391 typedef void ( * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode);
1392 typedef void ( * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
1393 typedef void ( * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst);
1394 typedef void ( * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
1395 __attribute__((visibility("default"))) void glLoadTransposeMatrixfARB (const GLfloat *m);
1396 __attribute__((visibility("default"))) void glLoadTransposeMatrixdARB (const GLdouble *m);
1397 __attribute__((visibility("default"))) void glMultTransposeMatrixfARB (const GLfloat *m);
1398 __attribute__((visibility("default"))) void glMultTransposeMatrixdARB (const GLdouble *m);
1399 typedef void ( * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
1400 typedef void ( * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
1401 typedef void ( * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
1402 typedef void ( * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
1403 __attribute__((visibility("default"))) void glSampleCoverageARB (GLclampf value, GLboolean invert);
1404 typedef void ( * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert);
1405 __attribute__((visibility("default"))) void glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
1406 __attribute__((visibility("default"))) void glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
1407 __attribute__((visibility("default"))) void glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
1408 __attribute__((visibility("default"))) void glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
1409 __attribute__((visibility("default"))) void glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
1410 __attribute__((visibility("default"))) void glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
1411 __attribute__((visibility("default"))) void glGetCompressedTexImageARB (GLenum target, GLint level, GLvoid *img);
1412 typedef void ( * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
1413 typedef void ( * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
1414 typedef void ( * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
1415 typedef void ( * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
1416 typedef void ( * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
1417 typedef void ( * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
1418 typedef void ( * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img);
1419 __attribute__((visibility("default"))) void glPointParameterfARB (GLenum pname, GLfloat param);
1420 __attribute__((visibility("default"))) void glPointParameterfvARB (GLenum pname, const GLfloat *params);
1421 typedef void ( * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
1422 typedef void ( * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params);
1423 __attribute__((visibility("default"))) void glWeightbvARB (GLint size, const GLbyte *weights);
1424 __attribute__((visibility("default"))) void glWeightsvARB (GLint size, const GLshort *weights);
1425 __attribute__((visibility("default"))) void glWeightivARB (GLint size, const GLint *weights);
1426 __attribute__((visibility("default"))) void glWeightfvARB (GLint size, const GLfloat *weights);
1427 __attribute__((visibility("default"))) void glWeightdvARB (GLint size, const GLdouble *weights);
1428 __attribute__((visibility("default"))) void glWeightubvARB (GLint size, const GLubyte *weights);
1429 __attribute__((visibility("default"))) void glWeightusvARB (GLint size, const GLushort *weights);
1430 __attribute__((visibility("default"))) void glWeightuivARB (GLint size, const GLuint *weights);
1431 __attribute__((visibility("default"))) void glWeightPointerARB (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1432 __attribute__((visibility("default"))) void glVertexBlendARB (GLint count);
1433 typedef void ( * PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights);
1434 typedef void ( * PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights);
1435 typedef void ( * PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights);
1436 typedef void ( * PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights);
1437 typedef void ( * PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights);
1438 typedef void ( * PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights);
1439 typedef void ( * PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights);
1440 typedef void ( * PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights);
1441 typedef void ( * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1442 typedef void ( * PFNGLVERTEXBLENDARBPROC) (GLint count);
1443 __attribute__((visibility("default"))) void glCurrentPaletteMatrixARB (GLint index);
1444 __attribute__((visibility("default"))) void glMatrixIndexubvARB (GLint size, const GLubyte *indices);
1445 __attribute__((visibility("default"))) void glMatrixIndexusvARB (GLint size, const GLushort *indices);
1446 __attribute__((visibility("default"))) void glMatrixIndexuivARB (GLint size, const GLuint *indices);
1447 __attribute__((visibility("default"))) void glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1448 typedef void ( * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index);
1449 typedef void ( * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices);
1450 typedef void ( * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices);
1451 typedef void ( * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices);
1452 typedef void ( * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1453 __attribute__((visibility("default"))) void glWindowPos2dARB (GLdouble x, GLdouble y);
1454 __attribute__((visibility("default"))) void glWindowPos2dvARB (const GLdouble *v);
1455 __attribute__((visibility("default"))) void glWindowPos2fARB (GLfloat x, GLfloat y);
1456 __attribute__((visibility("default"))) void glWindowPos2fvARB (const GLfloat *v);
1457 __attribute__((visibility("default"))) void glWindowPos2iARB (GLint x, GLint y);
1458 __attribute__((visibility("default"))) void glWindowPos2ivARB (const GLint *v);
1459 __attribute__((visibility("default"))) void glWindowPos2sARB (GLshort x, GLshort y);
1460 __attribute__((visibility("default"))) void glWindowPos2svARB (const GLshort *v);
1461 __attribute__((visibility("default"))) void glWindowPos3dARB (GLdouble x, GLdouble y, GLdouble z);
1462 __attribute__((visibility("default"))) void glWindowPos3dvARB (const GLdouble *v);
1463 __attribute__((visibility("default"))) void glWindowPos3fARB (GLfloat x, GLfloat y, GLfloat z);
1464 __attribute__((visibility("default"))) void glWindowPos3fvARB (const GLfloat *v);
1465 __attribute__((visibility("default"))) void glWindowPos3iARB (GLint x, GLint y, GLint z);
1466 __attribute__((visibility("default"))) void glWindowPos3ivARB (const GLint *v);
1467 __attribute__((visibility("default"))) void glWindowPos3sARB (GLshort x, GLshort y, GLshort z);
1468 __attribute__((visibility("default"))) void glWindowPos3svARB (const GLshort *v);
1469 typedef void ( * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y);
1470 typedef void ( * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v);
1471 typedef void ( * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y);
1472 typedef void ( * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v);
1473 typedef void ( * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y);
1474 typedef void ( * PFNGLWINDOWPOS2IVARBPROC) (const GLint *v);
1475 typedef void ( * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y);
1476 typedef void ( * PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v);
1477 typedef void ( * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z);
1478 typedef void ( * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v);
1479 typedef void ( * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z);
1480 typedef void ( * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v);
1481 typedef void ( * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z);
1482 typedef void ( * PFNGLWINDOWPOS3IVARBPROC) (const GLint *v);
1483 typedef void ( * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z);
1484 typedef void ( * PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v);
1485 __attribute__((visibility("default"))) void glVertexAttrib1dARB (GLuint index, GLdouble x);
1486 __attribute__((visibility("default"))) void glVertexAttrib1dvARB (GLuint index, const GLdouble *v);
1487 __attribute__((visibility("default"))) void glVertexAttrib1fARB (GLuint index, GLfloat x);
1488 __attribute__((visibility("default"))) void glVertexAttrib1fvARB (GLuint index, const GLfloat *v);
1489 __attribute__((visibility("default"))) void glVertexAttrib1sARB (GLuint index, GLshort x);
1490 __attribute__((visibility("default"))) void glVertexAttrib1svARB (GLuint index, const GLshort *v);
1491 __attribute__((visibility("default"))) void glVertexAttrib2dARB (GLuint index, GLdouble x, GLdouble y);
1492 __attribute__((visibility("default"))) void glVertexAttrib2dvARB (GLuint index, const GLdouble *v);
1493 __attribute__((visibility("default"))) void glVertexAttrib2fARB (GLuint index, GLfloat x, GLfloat y);
1494 __attribute__((visibility("default"))) void glVertexAttrib2fvARB (GLuint index, const GLfloat *v);
1495 __attribute__((visibility("default"))) void glVertexAttrib2sARB (GLuint index, GLshort x, GLshort y);
1496 __attribute__((visibility("default"))) void glVertexAttrib2svARB (GLuint index, const GLshort *v);
1497 __attribute__((visibility("default"))) void glVertexAttrib3dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z);
1498 __attribute__((visibility("default"))) void glVertexAttrib3dvARB (GLuint index, const GLdouble *v);
1499 __attribute__((visibility("default"))) void glVertexAttrib3fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z);
1500 __attribute__((visibility("default"))) void glVertexAttrib3fvARB (GLuint index, const GLfloat *v);
1501 __attribute__((visibility("default"))) void glVertexAttrib3sARB (GLuint index, GLshort x, GLshort y, GLshort z);
1502 __attribute__((visibility("default"))) void glVertexAttrib3svARB (GLuint index, const GLshort *v);
1503 __attribute__((visibility("default"))) void glVertexAttrib4NbvARB (GLuint index, const GLbyte *v);
1504 __attribute__((visibility("default"))) void glVertexAttrib4NivARB (GLuint index, const GLint *v);
1505 __attribute__((visibility("default"))) void glVertexAttrib4NsvARB (GLuint index, const GLshort *v);
1506 __attribute__((visibility("default"))) void glVertexAttrib4NubARB (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
1507 __attribute__((visibility("default"))) void glVertexAttrib4NubvARB (GLuint index, const GLubyte *v);
1508 __attribute__((visibility("default"))) void glVertexAttrib4NuivARB (GLuint index, const GLuint *v);
1509 __attribute__((visibility("default"))) void glVertexAttrib4NusvARB (GLuint index, const GLushort *v);
1510 __attribute__((visibility("default"))) void glVertexAttrib4bvARB (GLuint index, const GLbyte *v);
1511 __attribute__((visibility("default"))) void glVertexAttrib4dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1512 __attribute__((visibility("default"))) void glVertexAttrib4dvARB (GLuint index, const GLdouble *v);
1513 __attribute__((visibility("default"))) void glVertexAttrib4fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1514 __attribute__((visibility("default"))) void glVertexAttrib4fvARB (GLuint index, const GLfloat *v);
1515 __attribute__((visibility("default"))) void glVertexAttrib4ivARB (GLuint index, const GLint *v);
1516 __attribute__((visibility("default"))) void glVertexAttrib4sARB (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
1517 __attribute__((visibility("default"))) void glVertexAttrib4svARB (GLuint index, const GLshort *v);
1518 __attribute__((visibility("default"))) void glVertexAttrib4ubvARB (GLuint index, const GLubyte *v);
1519 __attribute__((visibility("default"))) void glVertexAttrib4uivARB (GLuint index, const GLuint *v);
1520 __attribute__((visibility("default"))) void glVertexAttrib4usvARB (GLuint index, const GLushort *v);
1521 __attribute__((visibility("default"))) void glVertexAttribPointerARB (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
1522 __attribute__((visibility("default"))) void glEnableVertexAttribArrayARB (GLuint index);
1523 __attribute__((visibility("default"))) void glDisableVertexAttribArrayARB (GLuint index);
1524 __attribute__((visibility("default"))) void glProgramStringARB (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
1525 __attribute__((visibility("default"))) void glBindProgramARB (GLenum target, GLuint program);
1526 __attribute__((visibility("default"))) void glDeleteProgramsARB (GLsizei n, const GLuint *programs);
1527 __attribute__((visibility("default"))) void glGenProgramsARB (GLsizei n, GLuint *programs);
1528 __attribute__((visibility("default"))) void glProgramEnvParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1529 __attribute__((visibility("default"))) void glProgramEnvParameter4dvARB (GLenum target, GLuint index, const GLdouble *params);
1530 __attribute__((visibility("default"))) void glProgramEnvParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1531 __attribute__((visibility("default"))) void glProgramEnvParameter4fvARB (GLenum target, GLuint index, const GLfloat *params);
1532 __attribute__((visibility("default"))) void glProgramLocalParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1533 __attribute__((visibility("default"))) void glProgramLocalParameter4dvARB (GLenum target, GLuint index, const GLdouble *params);
1534 __attribute__((visibility("default"))) void glProgramLocalParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1535 __attribute__((visibility("default"))) void glProgramLocalParameter4fvARB (GLenum target, GLuint index, const GLfloat *params);
1536 __attribute__((visibility("default"))) void glGetProgramEnvParameterdvARB (GLenum target, GLuint index, GLdouble *params);
1537 __attribute__((visibility("default"))) void glGetProgramEnvParameterfvARB (GLenum target, GLuint index, GLfloat *params);
1538 __attribute__((visibility("default"))) void glGetProgramLocalParameterdvARB (GLenum target, GLuint index, GLdouble *params);
1539 __attribute__((visibility("default"))) void glGetProgramLocalParameterfvARB (GLenum target, GLuint index, GLfloat *params);
1540 __attribute__((visibility("default"))) void glGetProgramivARB (GLenum target, GLenum pname, GLint *params);
1541 __attribute__((visibility("default"))) void glGetProgramStringARB (GLenum target, GLenum pname, GLvoid *string);
1542 __attribute__((visibility("default"))) void glGetVertexAttribdvARB (GLuint index, GLenum pname, GLdouble *params);
1543 __attribute__((visibility("default"))) void glGetVertexAttribfvARB (GLuint index, GLenum pname, GLfloat *params);
1544 __attribute__((visibility("default"))) void glGetVertexAttribivARB (GLuint index, GLenum pname, GLint *params);
1545 __attribute__((visibility("default"))) void glGetVertexAttribPointervARB (GLuint index, GLenum pname, GLvoid* *pointer);
1546 __attribute__((visibility("default"))) GLboolean glIsProgramARB (GLuint program);
1547 typedef void ( * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
1548 typedef void ( * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
1549 typedef void ( * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
1550 typedef void ( * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
1551 typedef void ( * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
1552 typedef void ( * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
1553 typedef void ( * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
1554 typedef void ( * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
1555 typedef void ( * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
1556 typedef void ( * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
1557 typedef void ( * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
1558 typedef void ( * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
1559 typedef void ( * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
1560 typedef void ( * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
1561 typedef void ( * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
1562 typedef void ( * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
1563 typedef void ( * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
1564 typedef void ( * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v);
1565 typedef void ( * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v);
1566 typedef void ( * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v);
1567 typedef void ( * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v);
1568 typedef void ( * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
1569 typedef void ( * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v);
1570 typedef void ( * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
1571 typedef void ( * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
1572 typedef void ( * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
1573 typedef void ( * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1574 typedef void ( * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
1575 typedef void ( * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1576 typedef void ( * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
1577 typedef void ( * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
1578 typedef void ( * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
1579 typedef void ( * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v);
1580 typedef void ( * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v);
1581 typedef void ( * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v);
1582 typedef void ( * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v);
1583 typedef void ( * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
1584 typedef void ( * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
1585 typedef void ( * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
1586 typedef void ( * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
1587 typedef void ( * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
1588 typedef void ( * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
1589 typedef void ( * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
1590 typedef void ( * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1591 typedef void ( * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
1592 typedef void ( * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1593 typedef void ( * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
1594 typedef void ( * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1595 typedef void ( * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
1596 typedef void ( * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1597 typedef void ( * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
1598 typedef void ( * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
1599 typedef void ( * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
1600 typedef void ( * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
1601 typedef void ( * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
1602 typedef void ( * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
1603 typedef void ( * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string);
1604 typedef void ( * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
1605 typedef void ( * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
1606 typedef void ( * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
1607 typedef void ( * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
1608 typedef GLboolean ( * PFNGLISPROGRAMARBPROC) (GLuint program);
1609 __attribute__((visibility("default"))) void glBindBufferARB (GLenum target, GLuint buffer);
1610 __attribute__((visibility("default"))) void glDeleteBuffersARB (GLsizei n, const GLuint *buffers);
1611 __attribute__((visibility("default"))) void glGenBuffersARB (GLsizei n, GLuint *buffers);
1612 __attribute__((visibility("default"))) GLboolean glIsBufferARB (GLuint buffer);
1613 __attribute__((visibility("default"))) void glBufferDataARB (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
1614 __attribute__((visibility("default"))) void glBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
1615 __attribute__((visibility("default"))) void glGetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
1616 __attribute__((visibility("default"))) GLvoid* glMapBufferARB (GLenum target, GLenum access);
1617 __attribute__((visibility("default"))) GLboolean glUnmapBufferARB (GLenum target);
1618 __attribute__((visibility("default"))) void glGetBufferParameterivARB (GLenum target, GLenum pname, GLint *params);
1619 __attribute__((visibility("default"))) void glGetBufferPointervARB (GLenum target, GLenum pname, GLvoid* *params);
1620 typedef void ( * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
1621 typedef void ( * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
1622 typedef void ( * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
1623 typedef GLboolean ( * PFNGLISBUFFERARBPROC) (GLuint buffer);
1624 typedef void ( * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
1625 typedef void ( * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
1626 typedef void ( * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
1627 typedef GLvoid* ( * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access);
1628 typedef GLboolean ( * PFNGLUNMAPBUFFERARBPROC) (GLenum target);
1629 typedef void ( * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
1630 typedef void ( * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params);
1631 __attribute__((visibility("default"))) void glGenQueriesARB (GLsizei n, GLuint *ids);
1632 __attribute__((visibility("default"))) void glDeleteQueriesARB (GLsizei n, const GLuint *ids);
1633 __attribute__((visibility("default"))) GLboolean glIsQueryARB (GLuint id);
1634 __attribute__((visibility("default"))) void glBeginQueryARB (GLenum target, GLuint id);
1635 __attribute__((visibility("default"))) void glEndQueryARB (GLenum target);
1636 __attribute__((visibility("default"))) void glGetQueryivARB (GLenum target, GLenum pname, GLint *params);
1637 __attribute__((visibility("default"))) void glGetQueryObjectivARB (GLuint id, GLenum pname, GLint *params);
1638 __attribute__((visibility("default"))) void glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint *params);
1639 typedef void ( * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids);
1640 typedef void ( * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids);
1641 typedef GLboolean ( * PFNGLISQUERYARBPROC) (GLuint id);
1642 typedef void ( * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id);
1643 typedef void ( * PFNGLENDQUERYARBPROC) (GLenum target);
1644 typedef void ( * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params);
1645 typedef void ( * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params);
1646 typedef void ( * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params);
1647 __attribute__((visibility("default"))) void glDeleteObjectARB (GLhandleARB obj);
1648 __attribute__((visibility("default"))) GLhandleARB glGetHandleARB (GLenum pname);
1649 __attribute__((visibility("default"))) void glDetachObjectARB (GLhandleARB containerObj, GLhandleARB attachedObj);
1650 __attribute__((visibility("default"))) GLhandleARB glCreateShaderObjectARB (GLenum shaderType);
1651 __attribute__((visibility("default"))) void glShaderSourceARB (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length);
1652 __attribute__((visibility("default"))) void glCompileShaderARB (GLhandleARB shaderObj);
1653 __attribute__((visibility("default"))) GLhandleARB glCreateProgramObjectARB (void);
1654 __attribute__((visibility("default"))) void glAttachObjectARB (GLhandleARB containerObj, GLhandleARB obj);
1655 __attribute__((visibility("default"))) void glLinkProgramARB (GLhandleARB programObj);
1656 __attribute__((visibility("default"))) void glUseProgramObjectARB (GLhandleARB programObj);
1657 __attribute__((visibility("default"))) void glValidateProgramARB (GLhandleARB programObj);
1658 __attribute__((visibility("default"))) void glUniform1fARB (GLint location, GLfloat v0);
1659 __attribute__((visibility("default"))) void glUniform2fARB (GLint location, GLfloat v0, GLfloat v1);
1660 __attribute__((visibility("default"))) void glUniform3fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
1661 __attribute__((visibility("default"))) void glUniform4fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
1662 __attribute__((visibility("default"))) void glUniform1iARB (GLint location, GLint v0);
1663 __attribute__((visibility("default"))) void glUniform2iARB (GLint location, GLint v0, GLint v1);
1664 __attribute__((visibility("default"))) void glUniform3iARB (GLint location, GLint v0, GLint v1, GLint v2);
1665 __attribute__((visibility("default"))) void glUniform4iARB (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
1666 __attribute__((visibility("default"))) void glUniform1fvARB (GLint location, GLsizei count, const GLfloat *value);
1667 __attribute__((visibility("default"))) void glUniform2fvARB (GLint location, GLsizei count, const GLfloat *value);
1668 __attribute__((visibility("default"))) void glUniform3fvARB (GLint location, GLsizei count, const GLfloat *value);
1669 __attribute__((visibility("default"))) void glUniform4fvARB (GLint location, GLsizei count, const GLfloat *value);
1670 __attribute__((visibility("default"))) void glUniform1ivARB (GLint location, GLsizei count, const GLint *value);
1671 __attribute__((visibility("default"))) void glUniform2ivARB (GLint location, GLsizei count, const GLint *value);
1672 __attribute__((visibility("default"))) void glUniform3ivARB (GLint location, GLsizei count, const GLint *value);
1673 __attribute__((visibility("default"))) void glUniform4ivARB (GLint location, GLsizei count, const GLint *value);
1674 __attribute__((visibility("default"))) void glUniformMatrix2fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1675 __attribute__((visibility("default"))) void glUniformMatrix3fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1676 __attribute__((visibility("default"))) void glUniformMatrix4fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1677 __attribute__((visibility("default"))) void glGetObjectParameterfvARB (GLhandleARB obj, GLenum pname, GLfloat *params);
1678 __attribute__((visibility("default"))) void glGetObjectParameterivARB (GLhandleARB obj, GLenum pname, GLint *params);
1679 __attribute__((visibility("default"))) void glGetInfoLogARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
1680 __attribute__((visibility("default"))) void glGetAttachedObjectsARB (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
1681 __attribute__((visibility("default"))) GLint glGetUniformLocationARB (GLhandleARB programObj, const GLcharARB *name);
1682 __attribute__((visibility("default"))) void glGetActiveUniformARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
1683 __attribute__((visibility("default"))) void glGetUniformfvARB (GLhandleARB programObj, GLint location, GLfloat *params);
1684 __attribute__((visibility("default"))) void glGetUniformivARB (GLhandleARB programObj, GLint location, GLint *params);
1685 __attribute__((visibility("default"))) void glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
1686 typedef void ( * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
1687 typedef GLhandleARB ( * PFNGLGETHANDLEARBPROC) (GLenum pname);
1688 typedef void ( * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj);
1689 typedef GLhandleARB ( * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
1690 typedef void ( * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length);
1691 typedef void ( * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
1692 typedef GLhandleARB ( * PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
1693 typedef void ( * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj);
1694 typedef void ( * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
1695 typedef void ( * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
1696 typedef void ( * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj);
1697 typedef void ( * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
1698 typedef void ( * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
1699 typedef void ( * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
1700 typedef void ( * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
1701 typedef void ( * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
1702 typedef void ( * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
1703 typedef void ( * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
1704 typedef void ( * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
1705 typedef void ( * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
1706 typedef void ( * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
1707 typedef void ( * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
1708 typedef void ( * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
1709 typedef void ( * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value);
1710 typedef void ( * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value);
1711 typedef void ( * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value);
1712 typedef void ( * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value);
1713 typedef void ( * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1714 typedef void ( * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1715 typedef void ( * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1716 typedef void ( * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params);
1717 typedef void ( * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params);
1718 typedef void ( * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
1719 typedef void ( * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
1720 typedef GLint ( * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
1721 typedef void ( * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
1722 typedef void ( * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params);
1723 typedef void ( * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params);
1724 typedef void ( * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
1725 __attribute__((visibility("default"))) void glBindAttribLocationARB (GLhandleARB programObj, GLuint index, const GLcharARB *name);
1726 __attribute__((visibility("default"))) void glGetActiveAttribARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
1727 __attribute__((visibility("default"))) GLint glGetAttribLocationARB (GLhandleARB programObj, const GLcharARB *name);
1728 typedef void ( * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name);
1729 typedef void ( * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
1730 typedef GLint ( * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
1731 __attribute__((visibility("default"))) void glDrawBuffersARB (GLsizei n, const GLenum *bufs);
1732 typedef void ( * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs);
1733 __attribute__((visibility("default"))) void glClampColorARB (GLenum target, GLenum clamp);
1734 typedef void ( * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp);
1735 __attribute__((visibility("default"))) void glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1736 __attribute__((visibility("default"))) void glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
1737 typedef void ( * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1738 typedef void ( * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
1739 __attribute__((visibility("default"))) GLboolean glIsRenderbuffer (GLuint renderbuffer);
1740 __attribute__((visibility("default"))) void glBindRenderbuffer (GLenum target, GLuint renderbuffer);
1741 __attribute__((visibility("default"))) void glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers);
1742 __attribute__((visibility("default"))) void glGenRenderbuffers (GLsizei n, GLuint *renderbuffers);
1743 __attribute__((visibility("default"))) void glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
1744 __attribute__((visibility("default"))) void glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params);
1745 __attribute__((visibility("default"))) GLboolean glIsFramebuffer (GLuint framebuffer);
1746 __attribute__((visibility("default"))) void glBindFramebuffer (GLenum target, GLuint framebuffer);
1747 __attribute__((visibility("default"))) void glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers);
1748 __attribute__((visibility("default"))) void glGenFramebuffers (GLsizei n, GLuint *framebuffers);
1749 __attribute__((visibility("default"))) GLenum glCheckFramebufferStatus (GLenum target);
1750 __attribute__((visibility("default"))) void glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1751 __attribute__((visibility("default"))) void glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1752 __attribute__((visibility("default"))) void glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
1753 __attribute__((visibility("default"))) void glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
1754 __attribute__((visibility("default"))) void glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params);
1755 __attribute__((visibility("default"))) void glGenerateMipmap (GLenum target);
1756 __attribute__((visibility("default"))) void glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
1757 __attribute__((visibility("default"))) void glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1758 __attribute__((visibility("default"))) void glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
1759 typedef GLboolean ( * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
1760 typedef void ( * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
1761 typedef void ( * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
1762 typedef void ( * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
1763 typedef void ( * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
1764 typedef void ( * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
1765 typedef GLboolean ( * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
1766 typedef void ( * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
1767 typedef void ( * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
1768 typedef void ( * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
1769 typedef GLenum ( * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
1770 typedef void ( * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1771 typedef void ( * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1772 typedef void ( * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
1773 typedef void ( * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
1774 typedef void ( * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
1775 typedef void ( * PFNGLGENERATEMIPMAPPROC) (GLenum target);
1776 typedef void ( * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
1777 typedef void ( * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1778 typedef void ( * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
1779 __attribute__((visibility("default"))) void glProgramParameteriARB (GLuint program, GLenum pname, GLint value);
1780 __attribute__((visibility("default"))) void glFramebufferTextureARB (GLenum target, GLenum attachment, GLuint texture, GLint level);
1781 __attribute__((visibility("default"))) void glFramebufferTextureLayerARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
1782 __attribute__((visibility("default"))) void glFramebufferTextureFaceARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
1783 typedef void ( * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value);
1784 typedef void ( * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
1785 typedef void ( * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
1786 typedef void ( * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
1787 __attribute__((visibility("default"))) void glVertexAttribDivisorARB (GLuint index, GLuint divisor);
1788 typedef void ( * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor);
1789 __attribute__((visibility("default"))) GLvoid* glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
1790 __attribute__((visibility("default"))) void glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length);
1791 typedef GLvoid* ( * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
1792 typedef void ( * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
1793 __attribute__((visibility("default"))) void glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer);
1794 typedef void ( * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer);
1795 __attribute__((visibility("default"))) void glBindVertexArray (GLuint array);
1796 __attribute__((visibility("default"))) void glDeleteVertexArrays (GLsizei n, const GLuint *arrays);
1797 __attribute__((visibility("default"))) void glGenVertexArrays (GLsizei n, GLuint *arrays);
1798 __attribute__((visibility("default"))) GLboolean glIsVertexArray (GLuint array);
1799 typedef void ( * PFNGLBINDVERTEXARRAYPROC) (GLuint array);
1800 typedef void ( * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
1801 typedef void ( * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
1802 typedef GLboolean ( * PFNGLISVERTEXARRAYPROC) (GLuint array);
1803 __attribute__((visibility("default"))) void glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices);
1804 __attribute__((visibility("default"))) void glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
1805 __attribute__((visibility("default"))) void glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
1806 __attribute__((visibility("default"))) GLuint glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName);
1807 __attribute__((visibility("default"))) void glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
1808 __attribute__((visibility("default"))) void glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
1809 __attribute__((visibility("default"))) void glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
1810 typedef void ( * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices);
1811 typedef void ( * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
1812 typedef void ( * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
1813 typedef GLuint ( * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
1814 typedef void ( * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
1815 typedef void ( * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
1816 typedef void ( * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
1817 __attribute__((visibility("default"))) void glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
1818 typedef void ( * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
1819 __attribute__((visibility("default"))) void glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
1820 __attribute__((visibility("default"))) void glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
1821 __attribute__((visibility("default"))) void glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex);
1822 __attribute__((visibility("default"))) void glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, const GLint *basevertex);
1823 typedef void ( * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
1824 typedef void ( * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
1825 typedef void ( * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex);
1826 typedef void ( * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, const GLint *basevertex);
1827 __attribute__((visibility("default"))) void glProvokingVertex (GLenum mode);
1828 typedef void ( * PFNGLPROVOKINGVERTEXPROC) (GLenum mode);
1829 __attribute__((visibility("default"))) GLsync glFenceSync (GLenum condition, GLbitfield flags);
1830 __attribute__((visibility("default"))) GLboolean glIsSync (GLsync sync);
1831 __attribute__((visibility("default"))) void glDeleteSync (GLsync sync);
1832 __attribute__((visibility("default"))) GLenum glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
1833 __attribute__((visibility("default"))) void glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
1834 __attribute__((visibility("default"))) void glGetInteger64v (GLenum pname, GLint64 *params);
1835 __attribute__((visibility("default"))) void glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
1836 typedef GLsync ( * PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags);
1837 typedef GLboolean ( * PFNGLISSYNCPROC) (GLsync sync);
1838 typedef void ( * PFNGLDELETESYNCPROC) (GLsync sync);
1839 typedef GLenum ( * PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
1840 typedef void ( * PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
1841 typedef void ( * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params);
1842 typedef void ( * PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
1843 __attribute__((visibility("default"))) void glTexImage2DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
1844 __attribute__((visibility("default"))) void glTexImage3DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
1845 __attribute__((visibility("default"))) void glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val);
1846 __attribute__((visibility("default"))) void glSampleMaski (GLuint index, GLbitfield mask);
1847 typedef void ( * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
1848 typedef void ( * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
1849 typedef void ( * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val);
1850 typedef void ( * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask);
1851 __attribute__((visibility("default"))) void glBlendEquationiARB (GLuint buf, GLenum mode);
1852 __attribute__((visibility("default"))) void glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
1853 __attribute__((visibility("default"))) void glBlendFunciARB (GLuint buf, GLenum src, GLenum dst);
1854 __attribute__((visibility("default"))) void glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
1855 typedef void ( * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode);
1856 typedef void ( * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
1857 typedef void ( * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst);
1858 typedef void ( * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
1859 __attribute__((visibility("default"))) void glMinSampleShadingARB (GLclampf value);
1860 typedef void ( * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value);
1861 __attribute__((visibility("default"))) void glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
1862 __attribute__((visibility("default"))) void glDeleteNamedStringARB (GLint namelen, const GLchar *name);
1863 __attribute__((visibility("default"))) void glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar* *path, const GLint *length);
1864 __attribute__((visibility("default"))) GLboolean glIsNamedStringARB (GLint namelen, const GLchar *name);
1865 __attribute__((visibility("default"))) void glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
1866 __attribute__((visibility("default"))) void glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params);
1867 typedef void ( * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
1868 typedef void ( * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name);
1869 typedef void ( * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* *path, const GLint *length);
1870 typedef GLboolean ( * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name);
1871 typedef void ( * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
1872 typedef void ( * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params);
1873 __attribute__((visibility("default"))) void glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
1874 __attribute__((visibility("default"))) GLint glGetFragDataIndex (GLuint program, const GLchar *name);
1875 typedef void ( * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
1876 typedef GLint ( * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name);
1877 __attribute__((visibility("default"))) void glGenSamplers (GLsizei count, GLuint *samplers);
1878 __attribute__((visibility("default"))) void glDeleteSamplers (GLsizei count, const GLuint *samplers);
1879 __attribute__((visibility("default"))) GLboolean glIsSampler (GLuint sampler);
1880 __attribute__((visibility("default"))) void glBindSampler (GLuint unit, GLuint sampler);
1881 __attribute__((visibility("default"))) void glSamplerParameteri (GLuint sampler, GLenum pname, GLint param);
1882 __attribute__((visibility("default"))) void glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param);
1883 __attribute__((visibility("default"))) void glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param);
1884 __attribute__((visibility("default"))) void glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param);
1885 __attribute__((visibility("default"))) void glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param);
1886 __attribute__((visibility("default"))) void glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param);
1887 __attribute__((visibility("default"))) void glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params);
1888 __attribute__((visibility("default"))) void glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params);
1889 __attribute__((visibility("default"))) void glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params);
1890 __attribute__((visibility("default"))) void glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params);
1891 typedef void ( * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers);
1892 typedef void ( * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers);
1893 typedef GLboolean ( * PFNGLISSAMPLERPROC) (GLuint sampler);
1894 typedef void ( * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
1895 typedef void ( * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
1896 typedef void ( * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
1897 typedef void ( * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
1898 typedef void ( * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param);
1899 typedef void ( * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
1900 typedef void ( * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param);
1901 typedef void ( * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params);
1902 typedef void ( * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params);
1903 typedef void ( * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params);
1904 typedef void ( * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params);
1905 __attribute__((visibility("default"))) void glQueryCounter (GLuint id, GLenum target);
1906 __attribute__((visibility("default"))) void glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params);
1907 __attribute__((visibility("default"))) void glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params);
1908 typedef void ( * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target);
1909 typedef void ( * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params);
1910 typedef void ( * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params);
1911 __attribute__((visibility("default"))) void glVertexP2ui (GLenum type, GLuint value);
1912 __attribute__((visibility("default"))) void glVertexP2uiv (GLenum type, const GLuint *value);
1913 __attribute__((visibility("default"))) void glVertexP3ui (GLenum type, GLuint value);
1914 __attribute__((visibility("default"))) void glVertexP3uiv (GLenum type, const GLuint *value);
1915 __attribute__((visibility("default"))) void glVertexP4ui (GLenum type, GLuint value);
1916 __attribute__((visibility("default"))) void glVertexP4uiv (GLenum type, const GLuint *value);
1917 __attribute__((visibility("default"))) void glTexCoordP1ui (GLenum type, GLuint coords);
1918 __attribute__((visibility("default"))) void glTexCoordP1uiv (GLenum type, const GLuint *coords);
1919 __attribute__((visibility("default"))) void glTexCoordP2ui (GLenum type, GLuint coords);
1920 __attribute__((visibility("default"))) void glTexCoordP2uiv (GLenum type, const GLuint *coords);
1921 __attribute__((visibility("default"))) void glTexCoordP3ui (GLenum type, GLuint coords);
1922 __attribute__((visibility("default"))) void glTexCoordP3uiv (GLenum type, const GLuint *coords);
1923 __attribute__((visibility("default"))) void glTexCoordP4ui (GLenum type, GLuint coords);
1924 __attribute__((visibility("default"))) void glTexCoordP4uiv (GLenum type, const GLuint *coords);
1925 __attribute__((visibility("default"))) void glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords);
1926 __attribute__((visibility("default"))) void glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords);
1927 __attribute__((visibility("default"))) void glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords);
1928 __attribute__((visibility("default"))) void glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords);
1929 __attribute__((visibility("default"))) void glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords);
1930 __attribute__((visibility("default"))) void glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords);
1931 __attribute__((visibility("default"))) void glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords);
1932 __attribute__((visibility("default"))) void glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords);
1933 __attribute__((visibility("default"))) void glNormalP3ui (GLenum type, GLuint coords);
1934 __attribute__((visibility("default"))) void glNormalP3uiv (GLenum type, const GLuint *coords);
1935 __attribute__((visibility("default"))) void glColorP3ui (GLenum type, GLuint color);
1936 __attribute__((visibility("default"))) void glColorP3uiv (GLenum type, const GLuint *color);
1937 __attribute__((visibility("default"))) void glColorP4ui (GLenum type, GLuint color);
1938 __attribute__((visibility("default"))) void glColorP4uiv (GLenum type, const GLuint *color);
1939 __attribute__((visibility("default"))) void glSecondaryColorP3ui (GLenum type, GLuint color);
1940 __attribute__((visibility("default"))) void glSecondaryColorP3uiv (GLenum type, const GLuint *color);
1941 __attribute__((visibility("default"))) void glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1942 __attribute__((visibility("default"))) void glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1943 __attribute__((visibility("default"))) void glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1944 __attribute__((visibility("default"))) void glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1945 __attribute__((visibility("default"))) void glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1946 __attribute__((visibility("default"))) void glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1947 __attribute__((visibility("default"))) void glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1948 __attribute__((visibility("default"))) void glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1949 typedef void ( * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value);
1950 typedef void ( * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value);
1951 typedef void ( * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value);
1952 typedef void ( * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value);
1953 typedef void ( * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value);
1954 typedef void ( * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value);
1955 typedef void ( * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords);
1956 typedef void ( * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords);
1957 typedef void ( * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords);
1958 typedef void ( * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords);
1959 typedef void ( * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords);
1960 typedef void ( * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords);
1961 typedef void ( * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords);
1962 typedef void ( * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords);
1963 typedef void ( * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords);
1964 typedef void ( * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
1965 typedef void ( * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords);
1966 typedef void ( * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
1967 typedef void ( * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords);
1968 typedef void ( * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
1969 typedef void ( * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords);
1970 typedef void ( * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
1971 typedef void ( * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords);
1972 typedef void ( * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords);
1973 typedef void ( * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color);
1974 typedef void ( * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color);
1975 typedef void ( * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color);
1976 typedef void ( * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color);
1977 typedef void ( * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color);
1978 typedef void ( * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color);
1979 typedef void ( * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1980 typedef void ( * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1981 typedef void ( * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1982 typedef void ( * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1983 typedef void ( * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1984 typedef void ( * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1985 typedef void ( * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1986 typedef void ( * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1987 __attribute__((visibility("default"))) void glDrawArraysIndirect (GLenum mode, const GLvoid *indirect);
1988 __attribute__((visibility("default"))) void glDrawElementsIndirect (GLenum mode, GLenum type, const GLvoid *indirect);
1989 typedef void ( * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const GLvoid *indirect);
1990 typedef void ( * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const GLvoid *indirect);
1991 __attribute__((visibility("default"))) void glUniform1d (GLint location, GLdouble x);
1992 __attribute__((visibility("default"))) void glUniform2d (GLint location, GLdouble x, GLdouble y);
1993 __attribute__((visibility("default"))) void glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z);
1994 __attribute__((visibility("default"))) void glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1995 __attribute__((visibility("default"))) void glUniform1dv (GLint location, GLsizei count, const GLdouble *value);
1996 __attribute__((visibility("default"))) void glUniform2dv (GLint location, GLsizei count, const GLdouble *value);
1997 __attribute__((visibility("default"))) void glUniform3dv (GLint location, GLsizei count, const GLdouble *value);
1998 __attribute__((visibility("default"))) void glUniform4dv (GLint location, GLsizei count, const GLdouble *value);
1999 __attribute__((visibility("default"))) void glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2000 __attribute__((visibility("default"))) void glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2001 __attribute__((visibility("default"))) void glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2002 __attribute__((visibility("default"))) void glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2003 __attribute__((visibility("default"))) void glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2004 __attribute__((visibility("default"))) void glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2005 __attribute__((visibility("default"))) void glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2006 __attribute__((visibility("default"))) void glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2007 __attribute__((visibility("default"))) void glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2008 __attribute__((visibility("default"))) void glGetUniformdv (GLuint program, GLint location, GLdouble *params);
2009 typedef void ( * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x);
2010 typedef void ( * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y);
2011 typedef void ( * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z);
2012 typedef void ( * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2013 typedef void ( * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value);
2014 typedef void ( * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value);
2015 typedef void ( * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value);
2016 typedef void ( * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value);
2017 typedef void ( * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2018 typedef void ( * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2019 typedef void ( * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2020 typedef void ( * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2021 typedef void ( * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2022 typedef void ( * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2023 typedef void ( * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2024 typedef void ( * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2025 typedef void ( * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2026 typedef void ( * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params);
2027 __attribute__((visibility("default"))) GLint glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name);
2028 __attribute__((visibility("default"))) GLuint glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name);
2029 __attribute__((visibility("default"))) void glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
2030 __attribute__((visibility("default"))) void glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
2031 __attribute__((visibility("default"))) void glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
2032 __attribute__((visibility("default"))) void glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices);
2033 __attribute__((visibility("default"))) void glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params);
2034 __attribute__((visibility("default"))) void glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values);
2035 typedef GLint ( * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name);
2036 typedef GLuint ( * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name);
2037 typedef void ( * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
2038 typedef void ( * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
2039 typedef void ( * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
2040 typedef void ( * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices);
2041 typedef void ( * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params);
2042 typedef void ( * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values);
2043 __attribute__((visibility("default"))) void glPatchParameteri (GLenum pname, GLint value);
2044 __attribute__((visibility("default"))) void glPatchParameterfv (GLenum pname, const GLfloat *values);
2045 typedef void ( * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value);
2046 typedef void ( * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values);
2047 __attribute__((visibility("default"))) void glBindTransformFeedback (GLenum target, GLuint id);
2048 __attribute__((visibility("default"))) void glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids);
2049 __attribute__((visibility("default"))) void glGenTransformFeedbacks (GLsizei n, GLuint *ids);
2050 __attribute__((visibility("default"))) GLboolean glIsTransformFeedback (GLuint id);
2051 __attribute__((visibility("default"))) void glPauseTransformFeedback (void);
2052 __attribute__((visibility("default"))) void glResumeTransformFeedback (void);
2053 __attribute__((visibility("default"))) void glDrawTransformFeedback (GLenum mode, GLuint id);
2054 typedef void ( * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id);
2055 typedef void ( * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids);
2056 typedef void ( * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids);
2057 typedef GLboolean ( * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id);
2058 typedef void ( * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void);
2059 typedef void ( * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void);
2060 typedef void ( * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id);
2061 __attribute__((visibility("default"))) void glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream);
2062 __attribute__((visibility("default"))) void glBeginQueryIndexed (GLenum target, GLuint index, GLuint id);
2063 __attribute__((visibility("default"))) void glEndQueryIndexed (GLenum target, GLuint index);
2064 __attribute__((visibility("default"))) void glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params);
2065 typedef void ( * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream);
2066 typedef void ( * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id);
2067 typedef void ( * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index);
2068 typedef void ( * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
2069 __attribute__((visibility("default"))) void glReleaseShaderCompiler (void);
2070 __attribute__((visibility("default"))) void glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length);
2071 __attribute__((visibility("default"))) void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
2072 __attribute__((visibility("default"))) void glDepthRangef (GLclampf n, GLclampf f);
2073 __attribute__((visibility("default"))) void glClearDepthf (GLclampf d);
2074 typedef void ( * PFNGLRELEASESHADERCOMPILERPROC) (void);
2075 typedef void ( * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length);
2076 typedef void ( * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
2077 typedef void ( * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f);
2078 typedef void ( * PFNGLCLEARDEPTHFPROC) (GLclampf d);
2079 __attribute__((visibility("default"))) void glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
2080 __attribute__((visibility("default"))) void glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length);
2081 __attribute__((visibility("default"))) void glProgramParameteri (GLuint program, GLenum pname, GLint value);
2082 typedef void ( * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
2083 typedef void ( * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length);
2084 typedef void ( * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value);
2085 __attribute__((visibility("default"))) void glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program);
2086 __attribute__((visibility("default"))) void glActiveShaderProgram (GLuint pipeline, GLuint program);
2087 __attribute__((visibility("default"))) GLuint glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar* *strings);
2088 __attribute__((visibility("default"))) void glBindProgramPipeline (GLuint pipeline);
2089 __attribute__((visibility("default"))) void glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines);
2090 __attribute__((visibility("default"))) void glGenProgramPipelines (GLsizei n, GLuint *pipelines);
2091 __attribute__((visibility("default"))) GLboolean glIsProgramPipeline (GLuint pipeline);
2092 __attribute__((visibility("default"))) void glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params);
2093 __attribute__((visibility("default"))) void glProgramUniform1i (GLuint program, GLint location, GLint v0);
2094 __attribute__((visibility("default"))) void glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value);
2095 __attribute__((visibility("default"))) void glProgramUniform1f (GLuint program, GLint location, GLfloat v0);
2096 __attribute__((visibility("default"))) void glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2097 __attribute__((visibility("default"))) void glProgramUniform1d (GLuint program, GLint location, GLdouble v0);
2098 __attribute__((visibility("default"))) void glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2099 __attribute__((visibility("default"))) void glProgramUniform1ui (GLuint program, GLint location, GLuint v0);
2100 __attribute__((visibility("default"))) void glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
2101 __attribute__((visibility("default"))) void glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1);
2102 __attribute__((visibility("default"))) void glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value);
2103 __attribute__((visibility("default"))) void glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1);
2104 __attribute__((visibility("default"))) void glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2105 __attribute__((visibility("default"))) void glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1);
2106 __attribute__((visibility("default"))) void glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2107 __attribute__((visibility("default"))) void glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1);
2108 __attribute__((visibility("default"))) void glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
2109 __attribute__((visibility("default"))) void glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
2110 __attribute__((visibility("default"))) void glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value);
2111 __attribute__((visibility("default"))) void glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
2112 __attribute__((visibility("default"))) void glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2113 __attribute__((visibility("default"))) void glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
2114 __attribute__((visibility("default"))) void glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2115 __attribute__((visibility("default"))) void glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
2116 __attribute__((visibility("default"))) void glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
2117 __attribute__((visibility("default"))) void glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
2118 __attribute__((visibility("default"))) void glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value);
2119 __attribute__((visibility("default"))) void glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
2120 __attribute__((visibility("default"))) void glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2121 __attribute__((visibility("default"))) void glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
2122 __attribute__((visibility("default"))) void glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2123 __attribute__((visibility("default"))) void glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2124 __attribute__((visibility("default"))) void glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
2125 __attribute__((visibility("default"))) void glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2126 __attribute__((visibility("default"))) void glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2127 __attribute__((visibility("default"))) void glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2128 __attribute__((visibility("default"))) void glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2129 __attribute__((visibility("default"))) void glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2130 __attribute__((visibility("default"))) void glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2131 __attribute__((visibility("default"))) void glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2132 __attribute__((visibility("default"))) void glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2133 __attribute__((visibility("default"))) void glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2134 __attribute__((visibility("default"))) void glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2135 __attribute__((visibility("default"))) void glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2136 __attribute__((visibility("default"))) void glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2137 __attribute__((visibility("default"))) void glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2138 __attribute__((visibility("default"))) void glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2139 __attribute__((visibility("default"))) void glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2140 __attribute__((visibility("default"))) void glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2141 __attribute__((visibility("default"))) void glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2142 __attribute__((visibility("default"))) void glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2143 __attribute__((visibility("default"))) void glValidateProgramPipeline (GLuint pipeline);
2144 __attribute__((visibility("default"))) void glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
2145 typedef void ( * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
2146 typedef void ( * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program);
2147 typedef GLuint ( * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar* *strings);
2148 typedef void ( * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline);
2149 typedef void ( * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines);
2150 typedef void ( * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines);
2151 typedef GLboolean ( * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline);
2152 typedef void ( * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params);
2153 typedef void ( * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0);
2154 typedef void ( * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
2155 typedef void ( * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0);
2156 typedef void ( * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2157 typedef void ( * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0);
2158 typedef void ( * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2159 typedef void ( * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0);
2160 typedef void ( * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
2161 typedef void ( * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1);
2162 typedef void ( * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
2163 typedef void ( * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
2164 typedef void ( * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2165 typedef void ( * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1);
2166 typedef void ( * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2167 typedef void ( * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
2168 typedef void ( * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
2169 typedef void ( * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
2170 typedef void ( * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
2171 typedef void ( * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
2172 typedef void ( * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2173 typedef void ( * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
2174 typedef void ( * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2175 typedef void ( * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
2176 typedef void ( * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
2177 typedef void ( * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
2178 typedef void ( * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
2179 typedef void ( * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
2180 typedef void ( * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2181 typedef void ( * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
2182 typedef void ( * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2183 typedef void ( * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2184 typedef void ( * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
2185 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2186 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2187 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2188 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2189 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2190 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2191 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2192 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2193 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2194 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2195 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2196 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2197 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2198 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2199 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2200 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2201 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2202 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2203 typedef void ( * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline);
2204 typedef void ( * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
2205 __attribute__((visibility("default"))) void glVertexAttribL1d (GLuint index, GLdouble x);
2206 __attribute__((visibility("default"))) void glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y);
2207 __attribute__((visibility("default"))) void glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z);
2208 __attribute__((visibility("default"))) void glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2209 __attribute__((visibility("default"))) void glVertexAttribL1dv (GLuint index, const GLdouble *v);
2210 __attribute__((visibility("default"))) void glVertexAttribL2dv (GLuint index, const GLdouble *v);
2211 __attribute__((visibility("default"))) void glVertexAttribL3dv (GLuint index, const GLdouble *v);
2212 __attribute__((visibility("default"))) void glVertexAttribL4dv (GLuint index, const GLdouble *v);
2213 __attribute__((visibility("default"))) void glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
2214 __attribute__((visibility("default"))) void glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params);
2215 typedef void ( * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x);
2216 typedef void ( * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y);
2217 typedef void ( * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
2218 typedef void ( * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2219 typedef void ( * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v);
2220 typedef void ( * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v);
2221 typedef void ( * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v);
2222 typedef void ( * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v);
2223 typedef void ( * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
2224 typedef void ( * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params);
2225 __attribute__((visibility("default"))) void glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v);
2226 __attribute__((visibility("default"))) void glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
2227 __attribute__((visibility("default"))) void glViewportIndexedfv (GLuint index, const GLfloat *v);
2228 __attribute__((visibility("default"))) void glScissorArrayv (GLuint first, GLsizei count, const GLint *v);
2229 __attribute__((visibility("default"))) void glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
2230 __attribute__((visibility("default"))) void glScissorIndexedv (GLuint index, const GLint *v);
2231 __attribute__((visibility("default"))) void glDepthRangeArrayv (GLuint first, GLsizei count, const GLclampd *v);
2232 __attribute__((visibility("default"))) void glDepthRangeIndexed (GLuint index, GLclampd n, GLclampd f);
2233 __attribute__((visibility("default"))) void glGetFloati_v (GLenum target, GLuint index, GLfloat *data);
2234 __attribute__((visibility("default"))) void glGetDoublei_v (GLenum target, GLuint index, GLdouble *data);
2235 typedef void ( * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v);
2236 typedef void ( * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
2237 typedef void ( * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v);
2238 typedef void ( * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v);
2239 typedef void ( * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
2240 typedef void ( * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v);
2241 typedef void ( * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd *v);
2242 typedef void ( * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f);
2243 typedef void ( * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data);
2244 typedef void ( * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data);
2245 __attribute__((visibility("default"))) GLsync glCreateSyncFromCLeventARB (struct _cl_context * context, struct _cl_event * event, GLbitfield flags);
2246 typedef GLsync ( * PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context * context, struct _cl_event * event, GLbitfield flags);
2247 __attribute__((visibility("default"))) void glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
2248 __attribute__((visibility("default"))) void glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
2249 __attribute__((visibility("default"))) void glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const GLvoid *userParam);
2250 __attribute__((visibility("default"))) GLuint glGetDebugMessageLogARB (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
2251 typedef void ( * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
2252 typedef void ( * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
2253 typedef void ( * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const GLvoid *userParam);
2254 typedef GLuint ( * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
2255 __attribute__((visibility("default"))) GLenum glGetGraphicsResetStatusARB (void);
2256 __attribute__((visibility("default"))) void glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
2257 __attribute__((visibility("default"))) void glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
2258 __attribute__((visibility("default"))) void glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
2259 __attribute__((visibility("default"))) void glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat *values);
2260 __attribute__((visibility("default"))) void glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint *values);
2261 __attribute__((visibility("default"))) void glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort *values);
2262 __attribute__((visibility("default"))) void glGetnPolygonStippleARB (GLsizei bufSize, GLubyte *pattern);
2263 __attribute__((visibility("default"))) void glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table);
2264 __attribute__((visibility("default"))) void glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image);
2265 __attribute__((visibility("default"))) void glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span);
2266 __attribute__((visibility("default"))) void glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
2267 __attribute__((visibility("default"))) void glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
2268 __attribute__((visibility("default"))) void glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img);
2269 __attribute__((visibility("default"))) void glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
2270 __attribute__((visibility("default"))) void glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, GLvoid *img);
2271 __attribute__((visibility("default"))) void glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
2272 __attribute__((visibility("default"))) void glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint *params);
2273 __attribute__((visibility("default"))) void glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
2274 __attribute__((visibility("default"))) void glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
2275 typedef GLenum ( * PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void);
2276 typedef void ( * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
2277 typedef void ( * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
2278 typedef void ( * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
2279 typedef void ( * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values);
2280 typedef void ( * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values);
2281 typedef void ( * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values);
2282 typedef void ( * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern);
2283 typedef void ( * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table);
2284 typedef void ( * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image);
2285 typedef void ( * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span);
2286 typedef void ( * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
2287 typedef void ( * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
2288 typedef void ( * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img);
2289 typedef void ( * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
2290 typedef void ( * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, GLvoid *img);
2291 typedef void ( * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
2292 typedef void ( * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
2293 typedef void ( * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
2294 typedef void ( * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
2295 __attribute__((visibility("default"))) void glBlendColorEXT (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
2296 typedef void ( * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
2297 __attribute__((visibility("default"))) void glPolygonOffsetEXT (GLfloat factor, GLfloat bias);
2298 typedef void ( * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias);
2299 __attribute__((visibility("default"))) void glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2300 __attribute__((visibility("default"))) void glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
2301 typedef void ( * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2302 typedef void ( * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
2303 __attribute__((visibility("default"))) void glGetTexFilterFuncSGIS (GLenum target, GLenum filter, GLfloat *weights);
2304 __attribute__((visibility("default"))) void glTexFilterFuncSGIS (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
2305 typedef void ( * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights);
2306 typedef void ( * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
2307 __attribute__((visibility("default"))) void glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
2308 __attribute__((visibility("default"))) void glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
2309 typedef void ( * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
2310 typedef void ( * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
2311 __attribute__((visibility("default"))) void glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
2312 __attribute__((visibility("default"))) void glCopyTexImage2DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
2313 __attribute__((visibility("default"))) void glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
2314 __attribute__((visibility("default"))) void glCopyTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2315 __attribute__((visibility("default"))) void glCopyTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2316 typedef void ( * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
2317 typedef void ( * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
2318 typedef void ( * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
2319 typedef void ( * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2320 typedef void ( * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2321 __attribute__((visibility("default"))) void glGetHistogramEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
2322 __attribute__((visibility("default"))) void glGetHistogramParameterfvEXT (GLenum target, GLenum pname, GLfloat *params);
2323 __attribute__((visibility("default"))) void glGetHistogramParameterivEXT (GLenum target, GLenum pname, GLint *params);
2324 __attribute__((visibility("default"))) void glGetMinmaxEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
2325 __attribute__((visibility("default"))) void glGetMinmaxParameterfvEXT (GLenum target, GLenum pname, GLfloat *params);
2326 __attribute__((visibility("default"))) void glGetMinmaxParameterivEXT (GLenum target, GLenum pname, GLint *params);
2327 __attribute__((visibility("default"))) void glHistogramEXT (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
2328 __attribute__((visibility("default"))) void glMinmaxEXT (GLenum target, GLenum internalformat, GLboolean sink);
2329 __attribute__((visibility("default"))) void glResetHistogramEXT (GLenum target);
2330 __attribute__((visibility("default"))) void glResetMinmaxEXT (GLenum target);
2331 typedef void ( * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
2332 typedef void ( * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
2333 typedef void ( * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
2334 typedef void ( * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
2335 typedef void ( * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
2336 typedef void ( * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
2337 typedef void ( * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
2338 typedef void ( * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink);
2339 typedef void ( * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target);
2340 typedef void ( * PFNGLRESETMINMAXEXTPROC) (GLenum target);
2341 __attribute__((visibility("default"))) void glConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
2342 __attribute__((visibility("default"))) void glConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
2343 __attribute__((visibility("default"))) void glConvolutionParameterfEXT (GLenum target, GLenum pname, GLfloat params);
2344 __attribute__((visibility("default"))) void glConvolutionParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params);
2345 __attribute__((visibility("default"))) void glConvolutionParameteriEXT (GLenum target, GLenum pname, GLint params);
2346 __attribute__((visibility("default"))) void glConvolutionParameterivEXT (GLenum target, GLenum pname, const GLint *params);
2347 __attribute__((visibility("default"))) void glCopyConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
2348 __attribute__((visibility("default"))) void glCopyConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
2349 __attribute__((visibility("default"))) void glGetConvolutionFilterEXT (GLenum target, GLenum format, GLenum type, GLvoid *image);
2350 __attribute__((visibility("default"))) void glGetConvolutionParameterfvEXT (GLenum target, GLenum pname, GLfloat *params);
2351 __attribute__((visibility("default"))) void glGetConvolutionParameterivEXT (GLenum target, GLenum pname, GLint *params);
2352 __attribute__((visibility("default"))) void glGetSeparableFilterEXT (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
2353 __attribute__((visibility("default"))) void glSeparableFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
2354 typedef void ( * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
2355 typedef void ( * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
2356 typedef void ( * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params);
2357 typedef void ( * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
2358 typedef void ( * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params);
2359 typedef void ( * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
2360 typedef void ( * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
2361 typedef void ( * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
2362 typedef void ( * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
2363 typedef void ( * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
2364 typedef void ( * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
2365 typedef void ( * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
2366 typedef void ( * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
2367 __attribute__((visibility("default"))) void glColorTableSGI (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
2368 __attribute__((visibility("default"))) void glColorTableParameterfvSGI (GLenum target, GLenum pname, const GLfloat *params);
2369 __attribute__((visibility("default"))) void glColorTableParameterivSGI (GLenum target, GLenum pname, const GLint *params);
2370 __attribute__((visibility("default"))) void glCopyColorTableSGI (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
2371 __attribute__((visibility("default"))) void glGetColorTableSGI (GLenum target, GLenum format, GLenum type, GLvoid *table);
2372 __attribute__((visibility("default"))) void glGetColorTableParameterfvSGI (GLenum target, GLenum pname, GLfloat *params);
2373 __attribute__((visibility("default"))) void glGetColorTableParameterivSGI (GLenum target, GLenum pname, GLint *params);
2374 typedef void ( * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
2375 typedef void ( * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params);
2376 typedef void ( * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params);
2377 typedef void ( * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
2378 typedef void ( * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
2379 typedef void ( * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params);
2380 typedef void ( * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params);
2381 __attribute__((visibility("default"))) void glPixelTexGenSGIX (GLenum mode);
2382 typedef void ( * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode);
2383 __attribute__((visibility("default"))) void glPixelTexGenParameteriSGIS (GLenum pname, GLint param);
2384 __attribute__((visibility("default"))) void glPixelTexGenParameterivSGIS (GLenum pname, const GLint *params);
2385 __attribute__((visibility("default"))) void glPixelTexGenParameterfSGIS (GLenum pname, GLfloat param);
2386 __attribute__((visibility("default"))) void glPixelTexGenParameterfvSGIS (GLenum pname, const GLfloat *params);
2387 __attribute__((visibility("default"))) void glGetPixelTexGenParameterivSGIS (GLenum pname, GLint *params);
2388 __attribute__((visibility("default"))) void glGetPixelTexGenParameterfvSGIS (GLenum pname, GLfloat *params);
2389 typedef void ( * PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param);
2390 typedef void ( * PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params);
2391 typedef void ( * PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
2392 typedef void ( * PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
2393 typedef void ( * PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params);
2394 typedef void ( * PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params);
2395 __attribute__((visibility("default"))) void glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2396 __attribute__((visibility("default"))) void glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels);
2397 typedef void ( * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2398 typedef void ( * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels);
2399 __attribute__((visibility("default"))) GLboolean glAreTexturesResidentEXT (GLsizei n, const GLuint *textures, GLboolean *residences);
2400 __attribute__((visibility("default"))) void glBindTextureEXT (GLenum target, GLuint texture);
2401 __attribute__((visibility("default"))) void glDeleteTexturesEXT (GLsizei n, const GLuint *textures);
2402 __attribute__((visibility("default"))) void glGenTexturesEXT (GLsizei n, GLuint *textures);
2403 __attribute__((visibility("default"))) GLboolean glIsTextureEXT (GLuint texture);
2404 __attribute__((visibility("default"))) void glPrioritizeTexturesEXT (GLsizei n, const GLuint *textures, const GLclampf *priorities);
2405 typedef GLboolean ( * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences);
2406 typedef void ( * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture);
2407 typedef void ( * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures);
2408 typedef void ( * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures);
2409 typedef GLboolean ( * PFNGLISTEXTUREEXTPROC) (GLuint texture);
2410 typedef void ( * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
2411 __attribute__((visibility("default"))) void glDetailTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points);
2412 __attribute__((visibility("default"))) void glGetDetailTexFuncSGIS (GLenum target, GLfloat *points);
2413 typedef void ( * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
2414 typedef void ( * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
2415 __attribute__((visibility("default"))) void glSharpenTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points);
2416 __attribute__((visibility("default"))) void glGetSharpenTexFuncSGIS (GLenum target, GLfloat *points);
2417 typedef void ( * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
2418 typedef void ( * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
2419 __attribute__((visibility("default"))) void glSampleMaskSGIS (GLclampf value, GLboolean invert);
2420 __attribute__((visibility("default"))) void glSamplePatternSGIS (GLenum pattern);
2421 typedef void ( * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert);
2422 typedef void ( * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern);
2423 __attribute__((visibility("default"))) void glArrayElementEXT (GLint i);
2424 __attribute__((visibility("default"))) void glColorPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2425 __attribute__((visibility("default"))) void glDrawArraysEXT (GLenum mode, GLint first, GLsizei count);
2426 __attribute__((visibility("default"))) void glEdgeFlagPointerEXT (GLsizei stride, GLsizei count, const GLboolean *pointer);
2427 __attribute__((visibility("default"))) void glGetPointervEXT (GLenum pname, GLvoid* *params);
2428 __attribute__((visibility("default"))) void glIndexPointerEXT (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2429 __attribute__((visibility("default"))) void glNormalPointerEXT (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2430 __attribute__((visibility("default"))) void glTexCoordPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2431 __attribute__((visibility("default"))) void glVertexPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2432 typedef void ( * PFNGLARRAYELEMENTEXTPROC) (GLint i);
2433 typedef void ( * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2434 typedef void ( * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
2435 typedef void ( * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer);
2436 typedef void ( * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params);
2437 typedef void ( * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2438 typedef void ( * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2439 typedef void ( * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2440 typedef void ( * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2441 __attribute__((visibility("default"))) void glBlendEquationEXT (GLenum mode);
2442 typedef void ( * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
2443 __attribute__((visibility("default"))) void glSpriteParameterfSGIX (GLenum pname, GLfloat param);
2444 __attribute__((visibility("default"))) void glSpriteParameterfvSGIX (GLenum pname, const GLfloat *params);
2445 __attribute__((visibility("default"))) void glSpriteParameteriSGIX (GLenum pname, GLint param);
2446 __attribute__((visibility("default"))) void glSpriteParameterivSGIX (GLenum pname, const GLint *params);
2447 typedef void ( * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param);
2448 typedef void ( * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params);
2449 typedef void ( * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param);
2450 typedef void ( * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params);
2451 __attribute__((visibility("default"))) void glPointParameterfEXT (GLenum pname, GLfloat param);
2452 __attribute__((visibility("default"))) void glPointParameterfvEXT (GLenum pname, const GLfloat *params);
2453 typedef void ( * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
2454 typedef void ( * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params);
2455 __attribute__((visibility("default"))) void glPointParameterfSGIS (GLenum pname, GLfloat param);
2456 __attribute__((visibility("default"))) void glPointParameterfvSGIS (GLenum pname, const GLfloat *params);
2457 typedef void ( * PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
2458 typedef void ( * PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
2459 __attribute__((visibility("default"))) GLint glGetInstrumentsSGIX (void);
2460 __attribute__((visibility("default"))) void glInstrumentsBufferSGIX (GLsizei size, GLint *buffer);
2461 __attribute__((visibility("default"))) GLint glPollInstrumentsSGIX (GLint *marker_p);
2462 __attribute__((visibility("default"))) void glReadInstrumentsSGIX (GLint marker);
2463 __attribute__((visibility("default"))) void glStartInstrumentsSGIX (void);
2464 __attribute__((visibility("default"))) void glStopInstrumentsSGIX (GLint marker);
2465 typedef GLint ( * PFNGLGETINSTRUMENTSSGIXPROC) (void);
2466 typedef void ( * PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer);
2467 typedef GLint ( * PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p);
2468 typedef void ( * PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker);
2469 typedef void ( * PFNGLSTARTINSTRUMENTSSGIXPROC) (void);
2470 typedef void ( * PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker);
2471 __attribute__((visibility("default"))) void glFrameZoomSGIX (GLint factor);
2472 typedef void ( * PFNGLFRAMEZOOMSGIXPROC) (GLint factor);
2473 __attribute__((visibility("default"))) void glTagSampleBufferSGIX (void);
2474 typedef void ( * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void);
2475 __attribute__((visibility("default"))) void glDeformationMap3dSGIX (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
2476 __attribute__((visibility("default"))) void glDeformationMap3fSGIX (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
2477 __attribute__((visibility("default"))) void glDeformSGIX (GLbitfield mask);
2478 __attribute__((visibility("default"))) void glLoadIdentityDeformationMapSGIX (GLbitfield mask);
2479 typedef void ( * PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
2480 typedef void ( * PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
2481 typedef void ( * PFNGLDEFORMSGIXPROC) (GLbitfield mask);
2482 typedef void ( * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask);
2483 __attribute__((visibility("default"))) void glReferencePlaneSGIX (const GLdouble *equation);
2484 typedef void ( * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation);
2485 __attribute__((visibility("default"))) void glFlushRasterSGIX (void);
2486 typedef void ( * PFNGLFLUSHRASTERSGIXPROC) (void);
2487 __attribute__((visibility("default"))) void glFogFuncSGIS (GLsizei n, const GLfloat *points);
2488 __attribute__((visibility("default"))) void glGetFogFuncSGIS (GLfloat *points);
2489 typedef void ( * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points);
2490 typedef void ( * PFNGLGETFOGFUNCSGISPROC) (GLfloat *points);
2491 __attribute__((visibility("default"))) void glImageTransformParameteriHP (GLenum target, GLenum pname, GLint param);
2492 __attribute__((visibility("default"))) void glImageTransformParameterfHP (GLenum target, GLenum pname, GLfloat param);
2493 __attribute__((visibility("default"))) void glImageTransformParameterivHP (GLenum target, GLenum pname, const GLint *params);
2494 __attribute__((visibility("default"))) void glImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat *params);
2495 __attribute__((visibility("default"))) void glGetImageTransformParameterivHP (GLenum target, GLenum pname, GLint *params);
2496 __attribute__((visibility("default"))) void glGetImageTransformParameterfvHP (GLenum target, GLenum pname, GLfloat *params);
2497 typedef void ( * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param);
2498 typedef void ( * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param);
2499 typedef void ( * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params);
2500 typedef void ( * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params);
2501 typedef void ( * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params);
2502 typedef void ( * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params);
2503 __attribute__((visibility("default"))) void glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
2504 __attribute__((visibility("default"))) void glCopyColorSubTableEXT (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
2505 typedef void ( * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
2506 typedef void ( * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
2507 __attribute__((visibility("default"))) void glHintPGI (GLenum target, GLint mode);
2508 typedef void ( * PFNGLHINTPGIPROC) (GLenum target, GLint mode);
2509 __attribute__((visibility("default"))) void glColorTableEXT (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
2510 __attribute__((visibility("default"))) void glGetColorTableEXT (GLenum target, GLenum format, GLenum type, GLvoid *data);
2511 __attribute__((visibility("default"))) void glGetColorTableParameterivEXT (GLenum target, GLenum pname, GLint *params);
2512 __attribute__((visibility("default"))) void glGetColorTableParameterfvEXT (GLenum target, GLenum pname, GLfloat *params);
2513 typedef void ( * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
2514 typedef void ( * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data);
2515 typedef void ( * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
2516 typedef void ( * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
2517 __attribute__((visibility("default"))) void glGetListParameterfvSGIX (GLuint list, GLenum pname, GLfloat *params);
2518 __attribute__((visibility("default"))) void glGetListParameterivSGIX (GLuint list, GLenum pname, GLint *params);
2519 __attribute__((visibility("default"))) void glListParameterfSGIX (GLuint list, GLenum pname, GLfloat param);
2520 __attribute__((visibility("default"))) void glListParameterfvSGIX (GLuint list, GLenum pname, const GLfloat *params);
2521 __attribute__((visibility("default"))) void glListParameteriSGIX (GLuint list, GLenum pname, GLint param);
2522 __attribute__((visibility("default"))) void glListParameterivSGIX (GLuint list, GLenum pname, const GLint *params);
2523 typedef void ( * PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params);
2524 typedef void ( * PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params);
2525 typedef void ( * PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param);
2526 typedef void ( * PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params);
2527 typedef void ( * PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param);
2528 typedef void ( * PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params);
2529 __attribute__((visibility("default"))) void glIndexMaterialEXT (GLenum face, GLenum mode);
2530 typedef void ( * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode);
2531 __attribute__((visibility("default"))) void glIndexFuncEXT (GLenum func, GLclampf ref);
2532 typedef void ( * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref);
2533 __attribute__((visibility("default"))) void glLockArraysEXT (GLint first, GLsizei count);
2534 __attribute__((visibility("default"))) void glUnlockArraysEXT (void);
2535 typedef void ( * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
2536 typedef void ( * PFNGLUNLOCKARRAYSEXTPROC) (void);
2537 __attribute__((visibility("default"))) void glCullParameterdvEXT (GLenum pname, GLdouble *params);
2538 __attribute__((visibility("default"))) void glCullParameterfvEXT (GLenum pname, GLfloat *params);
2539 typedef void ( * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params);
2540 typedef void ( * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params);
2541 __attribute__((visibility("default"))) void glFragmentColorMaterialSGIX (GLenum face, GLenum mode);
2542 __attribute__((visibility("default"))) void glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param);
2543 __attribute__((visibility("default"))) void glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params);
2544 __attribute__((visibility("default"))) void glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param);
2545 __attribute__((visibility("default"))) void glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params);
2546 __attribute__((visibility("default"))) void glFragmentLightModelfSGIX (GLenum pname, GLfloat param);
2547 __attribute__((visibility("default"))) void glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params);
2548 __attribute__((visibility("default"))) void glFragmentLightModeliSGIX (GLenum pname, GLint param);
2549 __attribute__((visibility("default"))) void glFragmentLightModelivSGIX (GLenum pname, const GLint *params);
2550 __attribute__((visibility("default"))) void glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param);
2551 __attribute__((visibility("default"))) void glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params);
2552 __attribute__((visibility("default"))) void glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param);
2553 __attribute__((visibility("default"))) void glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params);
2554 __attribute__((visibility("default"))) void glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params);
2555 __attribute__((visibility("default"))) void glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params);
2556 __attribute__((visibility("default"))) void glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params);
2557 __attribute__((visibility("default"))) void glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params);
2558 __attribute__((visibility("default"))) void glLightEnviSGIX (GLenum pname, GLint param);
2559 typedef void ( * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode);
2560 typedef void ( * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param);
2561 typedef void ( * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params);
2562 typedef void ( * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param);
2563 typedef void ( * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params);
2564 typedef void ( * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param);
2565 typedef void ( * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params);
2566 typedef void ( * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param);
2567 typedef void ( * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params);
2568 typedef void ( * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param);
2569 typedef void ( * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params);
2570 typedef void ( * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param);
2571 typedef void ( * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params);
2572 typedef void ( * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params);
2573 typedef void ( * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params);
2574 typedef void ( * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params);
2575 typedef void ( * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params);
2576 typedef void ( * PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param);
2577 __attribute__((visibility("default"))) void glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
2578 typedef void ( * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
2579 __attribute__((visibility("default"))) void glApplyTextureEXT (GLenum mode);
2580 __attribute__((visibility("default"))) void glTextureLightEXT (GLenum pname);
2581 __attribute__((visibility("default"))) void glTextureMaterialEXT (GLenum face, GLenum mode);
2582 typedef void ( * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode);
2583 typedef void ( * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname);
2584 typedef void ( * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode);
2585 __attribute__((visibility("default"))) void glAsyncMarkerSGIX (GLuint marker);
2586 __attribute__((visibility("default"))) GLint glFinishAsyncSGIX (GLuint *markerp);
2587 __attribute__((visibility("default"))) GLint glPollAsyncSGIX (GLuint *markerp);
2588 __attribute__((visibility("default"))) GLuint glGenAsyncMarkersSGIX (GLsizei range);
2589 __attribute__((visibility("default"))) void glDeleteAsyncMarkersSGIX (GLuint marker, GLsizei range);
2590 __attribute__((visibility("default"))) GLboolean glIsAsyncMarkerSGIX (GLuint marker);
2591 typedef void ( * PFNGLASYNCMARKERSGIXPROC) (GLuint marker);
2592 typedef GLint ( * PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp);
2593 typedef GLint ( * PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp);
2594 typedef GLuint ( * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range);
2595 typedef void ( * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range);
2596 typedef GLboolean ( * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker);
2597 __attribute__((visibility("default"))) void glVertexPointervINTEL (GLint size, GLenum type, const GLvoid* *pointer);
2598 __attribute__((visibility("default"))) void glNormalPointervINTEL (GLenum type, const GLvoid* *pointer);
2599 __attribute__((visibility("default"))) void glColorPointervINTEL (GLint size, GLenum type, const GLvoid* *pointer);
2600 __attribute__((visibility("default"))) void glTexCoordPointervINTEL (GLint size, GLenum type, const GLvoid* *pointer);
2601 typedef void ( * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
2602 typedef void ( * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer);
2603 typedef void ( * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
2604 typedef void ( * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
2605 __attribute__((visibility("default"))) void glPixelTransformParameteriEXT (GLenum target, GLenum pname, GLint param);
2606 __attribute__((visibility("default"))) void glPixelTransformParameterfEXT (GLenum target, GLenum pname, GLfloat param);
2607 __attribute__((visibility("default"))) void glPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint *params);
2608 __attribute__((visibility("default"))) void glPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params);
2609 typedef void ( * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param);
2610 typedef void ( * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param);
2611 typedef void ( * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
2612 typedef void ( * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
2613 __attribute__((visibility("default"))) void glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue);
2614 __attribute__((visibility("default"))) void glSecondaryColor3bvEXT (const GLbyte *v);
2615 __attribute__((visibility("default"))) void glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue);
2616 __attribute__((visibility("default"))) void glSecondaryColor3dvEXT (const GLdouble *v);
2617 __attribute__((visibility("default"))) void glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue);
2618 __attribute__((visibility("default"))) void glSecondaryColor3fvEXT (const GLfloat *v);
2619 __attribute__((visibility("default"))) void glSecondaryColor3iEXT (GLint red, GLint green, GLint blue);
2620 __attribute__((visibility("default"))) void glSecondaryColor3ivEXT (const GLint *v);
2621 __attribute__((visibility("default"))) void glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue);
2622 __attribute__((visibility("default"))) void glSecondaryColor3svEXT (const GLshort *v);
2623 __attribute__((visibility("default"))) void glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue);
2624 __attribute__((visibility("default"))) void glSecondaryColor3ubvEXT (const GLubyte *v);
2625 __attribute__((visibility("default"))) void glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue);
2626 __attribute__((visibility("default"))) void glSecondaryColor3uivEXT (const GLuint *v);
2627 __attribute__((visibility("default"))) void glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue);
2628 __attribute__((visibility("default"))) void glSecondaryColor3usvEXT (const GLushort *v);
2629 __attribute__((visibility("default"))) void glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
2630 typedef void ( * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
2631 typedef void ( * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v);
2632 typedef void ( * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
2633 typedef void ( * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v);
2634 typedef void ( * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
2635 typedef void ( * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v);
2636 typedef void ( * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue);
2637 typedef void ( * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v);
2638 typedef void ( * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue);
2639 typedef void ( * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v);
2640 typedef void ( * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
2641 typedef void ( * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v);
2642 typedef void ( * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue);
2643 typedef void ( * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v);
2644 typedef void ( * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue);
2645 typedef void ( * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v);
2646 typedef void ( * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
2647 __attribute__((visibility("default"))) void glTextureNormalEXT (GLenum mode);
2648 typedef void ( * PFNGLTEXTURENORMALEXTPROC) (GLenum mode);
2649 __attribute__((visibility("default"))) void glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
2650 __attribute__((visibility("default"))) void glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
2651 typedef void ( * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
2652 typedef void ( * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
2653 __attribute__((visibility("default"))) void glFogCoordfEXT (GLfloat coord);
2654 __attribute__((visibility("default"))) void glFogCoordfvEXT (const GLfloat *coord);
2655 __attribute__((visibility("default"))) void glFogCoorddEXT (GLdouble coord);
2656 __attribute__((visibility("default"))) void glFogCoorddvEXT (const GLdouble *coord);
2657 __attribute__((visibility("default"))) void glFogCoordPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer);
2658 typedef void ( * PFNGLFOGCOORDFEXTPROC) (GLfloat coord);
2659 typedef void ( * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord);
2660 typedef void ( * PFNGLFOGCOORDDEXTPROC) (GLdouble coord);
2661 typedef void ( * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord);
2662 typedef void ( * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
2663 __attribute__((visibility("default"))) void glTangent3bEXT (GLbyte tx, GLbyte ty, GLbyte tz);
2664 __attribute__((visibility("default"))) void glTangent3bvEXT (const GLbyte *v);
2665 __attribute__((visibility("default"))) void glTangent3dEXT (GLdouble tx, GLdouble ty, GLdouble tz);
2666 __attribute__((visibility("default"))) void glTangent3dvEXT (const GLdouble *v);
2667 __attribute__((visibility("default"))) void glTangent3fEXT (GLfloat tx, GLfloat ty, GLfloat tz);
2668 __attribute__((visibility("default"))) void glTangent3fvEXT (const GLfloat *v);
2669 __attribute__((visibility("default"))) void glTangent3iEXT (GLint tx, GLint ty, GLint tz);
2670 __attribute__((visibility("default"))) void glTangent3ivEXT (const GLint *v);
2671 __attribute__((visibility("default"))) void glTangent3sEXT (GLshort tx, GLshort ty, GLshort tz);
2672 __attribute__((visibility("default"))) void glTangent3svEXT (const GLshort *v);
2673 __attribute__((visibility("default"))) void glBinormal3bEXT (GLbyte bx, GLbyte by, GLbyte bz);
2674 __attribute__((visibility("default"))) void glBinormal3bvEXT (const GLbyte *v);
2675 __attribute__((visibility("default"))) void glBinormal3dEXT (GLdouble bx, GLdouble by, GLdouble bz);
2676 __attribute__((visibility("default"))) void glBinormal3dvEXT (const GLdouble *v);
2677 __attribute__((visibility("default"))) void glBinormal3fEXT (GLfloat bx, GLfloat by, GLfloat bz);
2678 __attribute__((visibility("default"))) void glBinormal3fvEXT (const GLfloat *v);
2679 __attribute__((visibility("default"))) void glBinormal3iEXT (GLint bx, GLint by, GLint bz);
2680 __attribute__((visibility("default"))) void glBinormal3ivEXT (const GLint *v);
2681 __attribute__((visibility("default"))) void glBinormal3sEXT (GLshort bx, GLshort by, GLshort bz);
2682 __attribute__((visibility("default"))) void glBinormal3svEXT (const GLshort *v);
2683 __attribute__((visibility("default"))) void glTangentPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer);
2684 __attribute__((visibility("default"))) void glBinormalPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer);
2685 typedef void ( * PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz);
2686 typedef void ( * PFNGLTANGENT3BVEXTPROC) (const GLbyte *v);
2687 typedef void ( * PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz);
2688 typedef void ( * PFNGLTANGENT3DVEXTPROC) (const GLdouble *v);
2689 typedef void ( * PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz);
2690 typedef void ( * PFNGLTANGENT3FVEXTPROC) (const GLfloat *v);
2691 typedef void ( * PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz);
2692 typedef void ( * PFNGLTANGENT3IVEXTPROC) (const GLint *v);
2693 typedef void ( * PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz);
2694 typedef void ( * PFNGLTANGENT3SVEXTPROC) (const GLshort *v);
2695 typedef void ( * PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz);
2696 typedef void ( * PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v);
2697 typedef void ( * PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz);
2698 typedef void ( * PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v);
2699 typedef void ( * PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz);
2700 typedef void ( * PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v);
2701 typedef void ( * PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz);
2702 typedef void ( * PFNGLBINORMAL3IVEXTPROC) (const GLint *v);
2703 typedef void ( * PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz);
2704 typedef void ( * PFNGLBINORMAL3SVEXTPROC) (const GLshort *v);
2705 typedef void ( * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
2706 typedef void ( * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
2707 __attribute__((visibility("default"))) void glFinishTextureSUNX (void);
2708 typedef void ( * PFNGLFINISHTEXTURESUNXPROC) (void);
2709 __attribute__((visibility("default"))) void glGlobalAlphaFactorbSUN (GLbyte factor);
2710 __attribute__((visibility("default"))) void glGlobalAlphaFactorsSUN (GLshort factor);
2711 __attribute__((visibility("default"))) void glGlobalAlphaFactoriSUN (GLint factor);
2712 __attribute__((visibility("default"))) void glGlobalAlphaFactorfSUN (GLfloat factor);
2713 __attribute__((visibility("default"))) void glGlobalAlphaFactordSUN (GLdouble factor);
2714 __attribute__((visibility("default"))) void glGlobalAlphaFactorubSUN (GLubyte factor);
2715 __attribute__((visibility("default"))) void glGlobalAlphaFactorusSUN (GLushort factor);
2716 __attribute__((visibility("default"))) void glGlobalAlphaFactoruiSUN (GLuint factor);
2717 typedef void ( * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor);
2718 typedef void ( * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor);
2719 typedef void ( * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor);
2720 typedef void ( * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor);
2721 typedef void ( * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor);
2722 typedef void ( * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor);
2723 typedef void ( * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor);
2724 typedef void ( * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor);
2725 __attribute__((visibility("default"))) void glReplacementCodeuiSUN (GLuint code);
2726 __attribute__((visibility("default"))) void glReplacementCodeusSUN (GLushort code);
2727 __attribute__((visibility("default"))) void glReplacementCodeubSUN (GLubyte code);
2728 __attribute__((visibility("default"))) void glReplacementCodeuivSUN (const GLuint *code);
2729 __attribute__((visibility("default"))) void glReplacementCodeusvSUN (const GLushort *code);
2730 __attribute__((visibility("default"))) void glReplacementCodeubvSUN (const GLubyte *code);
2731 __attribute__((visibility("default"))) void glReplacementCodePointerSUN (GLenum type, GLsizei stride, const GLvoid* *pointer);
2732 typedef void ( * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code);
2733 typedef void ( * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code);
2734 typedef void ( * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code);
2735 typedef void ( * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code);
2736 typedef void ( * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code);
2737 typedef void ( * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code);
2738 typedef void ( * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer);
2739 __attribute__((visibility("default"))) void glColor4ubVertex2fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
2740 __attribute__((visibility("default"))) void glColor4ubVertex2fvSUN (const GLubyte *c, const GLfloat *v);
2741 __attribute__((visibility("default"))) void glColor4ubVertex3fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
2742 __attribute__((visibility("default"))) void glColor4ubVertex3fvSUN (const GLubyte *c, const GLfloat *v);
2743 __attribute__((visibility("default"))) void glColor3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
2744 __attribute__((visibility("default"))) void glColor3fVertex3fvSUN (const GLfloat *c, const GLfloat *v);
2745 __attribute__((visibility("default"))) void glNormal3fVertex3fSUN (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2746 __attribute__((visibility("default"))) void glNormal3fVertex3fvSUN (const GLfloat *n, const GLfloat *v);
2747 __attribute__((visibility("default"))) void glColor4fNormal3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2748 __attribute__((visibility("default"))) void glColor4fNormal3fVertex3fvSUN (const GLfloat *c, const GLfloat *n, const GLfloat *v);
2749 __attribute__((visibility("default"))) void glTexCoord2fVertex3fSUN (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
2750 __attribute__((visibility("default"))) void glTexCoord2fVertex3fvSUN (const GLfloat *tc, const GLfloat *v);
2751 __attribute__((visibility("default"))) void glTexCoord4fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2752 __attribute__((visibility("default"))) void glTexCoord4fVertex4fvSUN (const GLfloat *tc, const GLfloat *v);
2753 __attribute__((visibility("default"))) void glTexCoord2fColor4ubVertex3fSUN (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
2754 __attribute__((visibility("default"))) void glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *tc, const GLubyte *c, const GLfloat *v);
2755 __attribute__((visibility("default"))) void glTexCoord2fColor3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
2756 __attribute__((visibility("default"))) void glTexCoord2fColor3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *v);
2757 __attribute__((visibility("default"))) void glTexCoord2fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2758 __attribute__((visibility("default"))) void glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *n, const GLfloat *v);
2759 __attribute__((visibility("default"))) void glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2760 __attribute__((visibility("default"))) void glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2761 __attribute__((visibility("default"))) void glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2762 __attribute__((visibility("default"))) void glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2763 __attribute__((visibility("default"))) void glReplacementCodeuiVertex3fSUN (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
2764 __attribute__((visibility("default"))) void glReplacementCodeuiVertex3fvSUN (const GLuint *rc, const GLfloat *v);
2765 __attribute__((visibility("default"))) void glReplacementCodeuiColor4ubVertex3fSUN (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
2766 __attribute__((visibility("default"))) void glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *rc, const GLubyte *c, const GLfloat *v);
2767 __attribute__((visibility("default"))) void glReplacementCodeuiColor3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
2768 __attribute__((visibility("default"))) void glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *v);
2769 __attribute__((visibility("default"))) void glReplacementCodeuiNormal3fVertex3fSUN (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2770 __attribute__((visibility("default"))) void glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *n, const GLfloat *v);
2771 __attribute__((visibility("default"))) void glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2772 __attribute__((visibility("default"))) void glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2773 __attribute__((visibility("default"))) void glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
2774 __attribute__((visibility("default"))) void glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *v);
2775 __attribute__((visibility("default"))) void glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2776 __attribute__((visibility("default"))) void glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
2777 __attribute__((visibility("default"))) void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2778 __attribute__((visibility("default"))) void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2779 typedef void ( * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
2780 typedef void ( * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v);
2781 typedef void ( * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
2782 typedef void ( * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v);
2783 typedef void ( * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
2784 typedef void ( * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v);
2785 typedef void ( * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2786 typedef void ( * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v);
2787 typedef void ( * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2788 typedef void ( * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v);
2789 typedef void ( * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
2790 typedef void ( * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
2791 typedef void ( * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2792 typedef void ( * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
2793 typedef void ( * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
2794 typedef void ( * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v);
2795 typedef void ( * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
2796 typedef void ( * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v);
2797 typedef void ( * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2798 typedef void ( * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v);
2799 typedef void ( * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2800 typedef void ( * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2801 typedef void ( * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2802 typedef void ( * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2803 typedef void ( * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
2804 typedef void ( * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v);
2805 typedef void ( * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
2806 typedef void ( * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v);
2807 typedef void ( * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
2808 typedef void ( * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v);
2809 typedef void ( * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2810 typedef void ( * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v);
2811 typedef void ( * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2812 typedef void ( * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2813 typedef void ( * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
2814 typedef void ( * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v);
2815 typedef void ( * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2816 typedef void ( * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
2817 typedef void ( * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2818 typedef void ( * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2819 __attribute__((visibility("default"))) void glBlendFuncSeparateEXT (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
2820 typedef void ( * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
2821 __attribute__((visibility("default"))) void glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
2822 typedef void ( * PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
2823 __attribute__((visibility("default"))) void glVertexWeightfEXT (GLfloat weight);
2824 __attribute__((visibility("default"))) void glVertexWeightfvEXT (const GLfloat *weight);
2825 __attribute__((visibility("default"))) void glVertexWeightPointerEXT (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
2826 typedef void ( * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight);
2827 typedef void ( * PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight);
2828 typedef void ( * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
2829 __attribute__((visibility("default"))) void glFlushVertexArrayRangeNV (void);
2830 __attribute__((visibility("default"))) void glVertexArrayRangeNV (GLsizei length, const GLvoid *pointer);
2831 typedef void ( * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void);
2832 typedef void ( * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer);
2833 __attribute__((visibility("default"))) void glCombinerParameterfvNV (GLenum pname, const GLfloat *params);
2834 __attribute__((visibility("default"))) void glCombinerParameterfNV (GLenum pname, GLfloat param);
2835 __attribute__((visibility("default"))) void glCombinerParameterivNV (GLenum pname, const GLint *params);
2836 __attribute__((visibility("default"))) void glCombinerParameteriNV (GLenum pname, GLint param);
2837 __attribute__((visibility("default"))) void glCombinerInputNV (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
2838 __attribute__((visibility("default"))) void glCombinerOutputNV (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
2839 __attribute__((visibility("default"))) void glFinalCombinerInputNV (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
2840 __attribute__((visibility("default"))) void glGetCombinerInputParameterfvNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
2841 __attribute__((visibility("default"))) void glGetCombinerInputParameterivNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
2842 __attribute__((visibility("default"))) void glGetCombinerOutputParameterfvNV (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
2843 __attribute__((visibility("default"))) void glGetCombinerOutputParameterivNV (GLenum stage, GLenum portion, GLenum pname, GLint *params);
2844 __attribute__((visibility("default"))) void glGetFinalCombinerInputParameterfvNV (GLenum variable, GLenum pname, GLfloat *params);
2845 __attribute__((visibility("default"))) void glGetFinalCombinerInputParameterivNV (GLenum variable, GLenum pname, GLint *params);
2846 typedef void ( * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params);
2847 typedef void ( * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
2848 typedef void ( * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
2849 typedef void ( * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
2850 typedef void ( * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
2851 typedef void ( * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
2852 typedef void ( * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
2853 typedef void ( * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
2854 typedef void ( * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
2855 typedef void ( * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
2856 typedef void ( * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
2857 typedef void ( * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params);
2858 typedef void ( * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params);
2859 __attribute__((visibility("default"))) void glResizeBuffersMESA (void);
2860 typedef void ( * PFNGLRESIZEBUFFERSMESAPROC) (void);
2861 __attribute__((visibility("default"))) void glWindowPos2dMESA (GLdouble x, GLdouble y);
2862 __attribute__((visibility("default"))) void glWindowPos2dvMESA (const GLdouble *v);
2863 __attribute__((visibility("default"))) void glWindowPos2fMESA (GLfloat x, GLfloat y);
2864 __attribute__((visibility("default"))) void glWindowPos2fvMESA (const GLfloat *v);
2865 __attribute__((visibility("default"))) void glWindowPos2iMESA (GLint x, GLint y);
2866 __attribute__((visibility("default"))) void glWindowPos2ivMESA (const GLint *v);
2867 __attribute__((visibility("default"))) void glWindowPos2sMESA (GLshort x, GLshort y);
2868 __attribute__((visibility("default"))) void glWindowPos2svMESA (const GLshort *v);
2869 __attribute__((visibility("default"))) void glWindowPos3dMESA (GLdouble x, GLdouble y, GLdouble z);
2870 __attribute__((visibility("default"))) void glWindowPos3dvMESA (const GLdouble *v);
2871 __attribute__((visibility("default"))) void glWindowPos3fMESA (GLfloat x, GLfloat y, GLfloat z);
2872 __attribute__((visibility("default"))) void glWindowPos3fvMESA (const GLfloat *v);
2873 __attribute__((visibility("default"))) void glWindowPos3iMESA (GLint x, GLint y, GLint z);
2874 __attribute__((visibility("default"))) void glWindowPos3ivMESA (const GLint *v);
2875 __attribute__((visibility("default"))) void glWindowPos3sMESA (GLshort x, GLshort y, GLshort z);
2876 __attribute__((visibility("default"))) void glWindowPos3svMESA (const GLshort *v);
2877 __attribute__((visibility("default"))) void glWindowPos4dMESA (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2878 __attribute__((visibility("default"))) void glWindowPos4dvMESA (const GLdouble *v);
2879 __attribute__((visibility("default"))) void glWindowPos4fMESA (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2880 __attribute__((visibility("default"))) void glWindowPos4fvMESA (const GLfloat *v);
2881 __attribute__((visibility("default"))) void glWindowPos4iMESA (GLint x, GLint y, GLint z, GLint w);
2882 __attribute__((visibility("default"))) void glWindowPos4ivMESA (const GLint *v);
2883 __attribute__((visibility("default"))) void glWindowPos4sMESA (GLshort x, GLshort y, GLshort z, GLshort w);
2884 __attribute__((visibility("default"))) void glWindowPos4svMESA (const GLshort *v);
2885 typedef void ( * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y);
2886 typedef void ( * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v);
2887 typedef void ( * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y);
2888 typedef void ( * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v);
2889 typedef void ( * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y);
2890 typedef void ( * PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v);
2891 typedef void ( * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y);
2892 typedef void ( * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v);
2893 typedef void ( * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z);
2894 typedef void ( * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v);
2895 typedef void ( * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z);
2896 typedef void ( * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v);
2897 typedef void ( * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z);
2898 typedef void ( * PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v);
2899 typedef void ( * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z);
2900 typedef void ( * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v);
2901 typedef void ( * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2902 typedef void ( * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v);
2903 typedef void ( * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2904 typedef void ( * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v);
2905 typedef void ( * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w);
2906 typedef void ( * PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v);
2907 typedef void ( * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w);
2908 typedef void ( * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v);
2909 __attribute__((visibility("default"))) void glMultiModeDrawArraysIBM (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
2910 __attribute__((visibility("default"))) void glMultiModeDrawElementsIBM (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride);
2911 typedef void ( * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
2912 typedef void ( * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride);
2913 __attribute__((visibility("default"))) void glColorPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2914 __attribute__((visibility("default"))) void glSecondaryColorPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2915 __attribute__((visibility("default"))) void glEdgeFlagPointerListIBM (GLint stride, const GLboolean* *pointer, GLint ptrstride);
2916 __attribute__((visibility("default"))) void glFogCoordPointerListIBM (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2917 __attribute__((visibility("default"))) void glIndexPointerListIBM (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2918 __attribute__((visibility("default"))) void glNormalPointerListIBM (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2919 __attribute__((visibility("default"))) void glTexCoordPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2920 __attribute__((visibility("default"))) void glVertexPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2921 typedef void ( * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2922 typedef void ( * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2923 typedef void ( * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride);
2924 typedef void ( * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2925 typedef void ( * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2926 typedef void ( * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2927 typedef void ( * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2928 typedef void ( * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2929 __attribute__((visibility("default"))) void glTbufferMask3DFX (GLuint mask);
2930 typedef void ( * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask);
2931 __attribute__((visibility("default"))) void glSampleMaskEXT (GLclampf value, GLboolean invert);
2932 __attribute__((visibility("default"))) void glSamplePatternEXT (GLenum pattern);
2933 typedef void ( * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert);
2934 typedef void ( * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern);
2935 __attribute__((visibility("default"))) void glTextureColorMaskSGIS (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
2936 typedef void ( * PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
2937 __attribute__((visibility("default"))) void glIglooInterfaceSGIX (GLenum pname, const GLvoid *params);
2938 typedef void ( * PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params);
2939 __attribute__((visibility("default"))) void glDeleteFencesNV (GLsizei n, const GLuint *fences);
2940 __attribute__((visibility("default"))) void glGenFencesNV (GLsizei n, GLuint *fences);
2941 __attribute__((visibility("default"))) GLboolean glIsFenceNV (GLuint fence);
2942 __attribute__((visibility("default"))) GLboolean glTestFenceNV (GLuint fence);
2943 __attribute__((visibility("default"))) void glGetFenceivNV (GLuint fence, GLenum pname, GLint *params);
2944 __attribute__((visibility("default"))) void glFinishFenceNV (GLuint fence);
2945 __attribute__((visibility("default"))) void glSetFenceNV (GLuint fence, GLenum condition);
2946 typedef void ( * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
2947 typedef void ( * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
2948 typedef GLboolean ( * PFNGLISFENCENVPROC) (GLuint fence);
2949 typedef GLboolean ( * PFNGLTESTFENCENVPROC) (GLuint fence);
2950 typedef void ( * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
2951 typedef void ( * PFNGLFINISHFENCENVPROC) (GLuint fence);
2952 typedef void ( * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
2953 __attribute__((visibility("default"))) void glMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
2954 __attribute__((visibility("default"))) void glMapParameterivNV (GLenum target, GLenum pname, const GLint *params);
2955 __attribute__((visibility("default"))) void glMapParameterfvNV (GLenum target, GLenum pname, const GLfloat *params);
2956 __attribute__((visibility("default"))) void glGetMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
2957 __attribute__((visibility("default"))) void glGetMapParameterivNV (GLenum target, GLenum pname, GLint *params);
2958 __attribute__((visibility("default"))) void glGetMapParameterfvNV (GLenum target, GLenum pname, GLfloat *params);
2959 __attribute__((visibility("default"))) void glGetMapAttribParameterivNV (GLenum target, GLuint index, GLenum pname, GLint *params);
2960 __attribute__((visibility("default"))) void glGetMapAttribParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params);
2961 __attribute__((visibility("default"))) void glEvalMapsNV (GLenum target, GLenum mode);
2962 typedef void ( * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
2963 typedef void ( * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params);
2964 typedef void ( * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params);
2965 typedef void ( * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
2966 typedef void ( * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params);
2967 typedef void ( * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params);
2968 typedef void ( * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
2969 typedef void ( * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
2970 typedef void ( * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode);
2971 __attribute__((visibility("default"))) void glCombinerStageParameterfvNV (GLenum stage, GLenum pname, const GLfloat *params);
2972 __attribute__((visibility("default"))) void glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname, GLfloat *params);
2973 typedef void ( * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
2974 typedef void ( * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
2975 __attribute__((visibility("default"))) GLboolean glAreProgramsResidentNV (GLsizei n, const GLuint *programs, GLboolean *residences);
2976 __attribute__((visibility("default"))) void glBindProgramNV (GLenum target, GLuint id);
2977 __attribute__((visibility("default"))) void glDeleteProgramsNV (GLsizei n, const GLuint *programs);
2978 __attribute__((visibility("default"))) void glExecuteProgramNV (GLenum target, GLuint id, const GLfloat *params);
2979 __attribute__((visibility("default"))) void glGenProgramsNV (GLsizei n, GLuint *programs);
2980 __attribute__((visibility("default"))) void glGetProgramParameterdvNV (GLenum target, GLuint index, GLenum pname, GLdouble *params);
2981 __attribute__((visibility("default"))) void glGetProgramParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params);
2982 __attribute__((visibility("default"))) void glGetProgramivNV (GLuint id, GLenum pname, GLint *params);
2983 __attribute__((visibility("default"))) void glGetProgramStringNV (GLuint id, GLenum pname, GLubyte *program);
2984 __attribute__((visibility("default"))) void glGetTrackMatrixivNV (GLenum target, GLuint address, GLenum pname, GLint *params);
2985 __attribute__((visibility("default"))) void glGetVertexAttribdvNV (GLuint index, GLenum pname, GLdouble *params);
2986 __attribute__((visibility("default"))) void glGetVertexAttribfvNV (GLuint index, GLenum pname, GLfloat *params);
2987 __attribute__((visibility("default"))) void glGetVertexAttribivNV (GLuint index, GLenum pname, GLint *params);
2988 __attribute__((visibility("default"))) void glGetVertexAttribPointervNV (GLuint index, GLenum pname, GLvoid* *pointer);
2989 __attribute__((visibility("default"))) GLboolean glIsProgramNV (GLuint id);
2990 __attribute__((visibility("default"))) void glLoadProgramNV (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
2991 __attribute__((visibility("default"))) void glProgramParameter4dNV (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2992 __attribute__((visibility("default"))) void glProgramParameter4dvNV (GLenum target, GLuint index, const GLdouble *v);
2993 __attribute__((visibility("default"))) void glProgramParameter4fNV (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2994 __attribute__((visibility("default"))) void glProgramParameter4fvNV (GLenum target, GLuint index, const GLfloat *v);
2995 __attribute__((visibility("default"))) void glProgramParameters4dvNV (GLenum target, GLuint index, GLsizei count, const GLdouble *v);
2996 __attribute__((visibility("default"))) void glProgramParameters4fvNV (GLenum target, GLuint index, GLsizei count, const GLfloat *v);
2997 __attribute__((visibility("default"))) void glRequestResidentProgramsNV (GLsizei n, const GLuint *programs);
2998 __attribute__((visibility("default"))) void glTrackMatrixNV (GLenum target, GLuint address, GLenum matrix, GLenum transform);
2999 __attribute__((visibility("default"))) void glVertexAttribPointerNV (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
3000 __attribute__((visibility("default"))) void glVertexAttrib1dNV (GLuint index, GLdouble x);
3001 __attribute__((visibility("default"))) void glVertexAttrib1dvNV (GLuint index, const GLdouble *v);
3002 __attribute__((visibility("default"))) void glVertexAttrib1fNV (GLuint index, GLfloat x);
3003 __attribute__((visibility("default"))) void glVertexAttrib1fvNV (GLuint index, const GLfloat *v);
3004 __attribute__((visibility("default"))) void glVertexAttrib1sNV (GLuint index, GLshort x);
3005 __attribute__((visibility("default"))) void glVertexAttrib1svNV (GLuint index, const GLshort *v);
3006 __attribute__((visibility("default"))) void glVertexAttrib2dNV (GLuint index, GLdouble x, GLdouble y);
3007 __attribute__((visibility("default"))) void glVertexAttrib2dvNV (GLuint index, const GLdouble *v);
3008 __attribute__((visibility("default"))) void glVertexAttrib2fNV (GLuint index, GLfloat x, GLfloat y);
3009 __attribute__((visibility("default"))) void glVertexAttrib2fvNV (GLuint index, const GLfloat *v);
3010 __attribute__((visibility("default"))) void glVertexAttrib2sNV (GLuint index, GLshort x, GLshort y);
3011 __attribute__((visibility("default"))) void glVertexAttrib2svNV (GLuint index, const GLshort *v);
3012 __attribute__((visibility("default"))) void glVertexAttrib3dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z);
3013 __attribute__((visibility("default"))) void glVertexAttrib3dvNV (GLuint index, const GLdouble *v);
3014 __attribute__((visibility("default"))) void glVertexAttrib3fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z);
3015 __attribute__((visibility("default"))) void glVertexAttrib3fvNV (GLuint index, const GLfloat *v);
3016 __attribute__((visibility("default"))) void glVertexAttrib3sNV (GLuint index, GLshort x, GLshort y, GLshort z);
3017 __attribute__((visibility("default"))) void glVertexAttrib3svNV (GLuint index, const GLshort *v);
3018 __attribute__((visibility("default"))) void glVertexAttrib4dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3019 __attribute__((visibility("default"))) void glVertexAttrib4dvNV (GLuint index, const GLdouble *v);
3020 __attribute__((visibility("default"))) void glVertexAttrib4fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3021 __attribute__((visibility("default"))) void glVertexAttrib4fvNV (GLuint index, const GLfloat *v);
3022 __attribute__((visibility("default"))) void glVertexAttrib4sNV (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
3023 __attribute__((visibility("default"))) void glVertexAttrib4svNV (GLuint index, const GLshort *v);
3024 __attribute__((visibility("default"))) void glVertexAttrib4ubNV (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
3025 __attribute__((visibility("default"))) void glVertexAttrib4ubvNV (GLuint index, const GLubyte *v);
3026 __attribute__((visibility("default"))) void glVertexAttribs1dvNV (GLuint index, GLsizei count, const GLdouble *v);
3027 __attribute__((visibility("default"))) void glVertexAttribs1fvNV (GLuint index, GLsizei count, const GLfloat *v);
3028 __attribute__((visibility("default"))) void glVertexAttribs1svNV (GLuint index, GLsizei count, const GLshort *v);
3029 __attribute__((visibility("default"))) void glVertexAttribs2dvNV (GLuint index, GLsizei count, const GLdouble *v);
3030 __attribute__((visibility("default"))) void glVertexAttribs2fvNV (GLuint index, GLsizei count, const GLfloat *v);
3031 __attribute__((visibility("default"))) void glVertexAttribs2svNV (GLuint index, GLsizei count, const GLshort *v);
3032 __attribute__((visibility("default"))) void glVertexAttribs3dvNV (GLuint index, GLsizei count, const GLdouble *v);
3033 __attribute__((visibility("default"))) void glVertexAttribs3fvNV (GLuint index, GLsizei count, const GLfloat *v);
3034 __attribute__((visibility("default"))) void glVertexAttribs3svNV (GLuint index, GLsizei count, const GLshort *v);
3035 __attribute__((visibility("default"))) void glVertexAttribs4dvNV (GLuint index, GLsizei count, const GLdouble *v);
3036 __attribute__((visibility("default"))) void glVertexAttribs4fvNV (GLuint index, GLsizei count, const GLfloat *v);
3037 __attribute__((visibility("default"))) void glVertexAttribs4svNV (GLuint index, GLsizei count, const GLshort *v);
3038 __attribute__((visibility("default"))) void glVertexAttribs4ubvNV (GLuint index, GLsizei count, const GLubyte *v);
3039 typedef GLboolean ( * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences);
3040 typedef void ( * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id);
3041 typedef void ( * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
3042 typedef void ( * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params);
3043 typedef void ( * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs);
3044 typedef void ( * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
3045 typedef void ( * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
3046 typedef void ( * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params);
3047 typedef void ( * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program);
3048 typedef void ( * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);
3049 typedef void ( * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params);
3050 typedef void ( * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params);
3051 typedef void ( * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params);
3052 typedef void ( * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
3053 typedef GLboolean ( * PFNGLISPROGRAMNVPROC) (GLuint id);
3054 typedef void ( * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
3055 typedef void ( * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3056 typedef void ( * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v);
3057 typedef void ( * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3058 typedef void ( * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v);
3059 typedef void ( * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v);
3060 typedef void ( * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v);
3061 typedef void ( * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
3062 typedef void ( * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
3063 typedef void ( * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
3064 typedef void ( * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x);
3065 typedef void ( * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v);
3066 typedef void ( * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x);
3067 typedef void ( * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v);
3068 typedef void ( * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x);
3069 typedef void ( * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v);
3070 typedef void ( * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y);
3071 typedef void ( * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v);
3072 typedef void ( * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y);
3073 typedef void ( * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v);
3074 typedef void ( * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y);
3075 typedef void ( * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v);
3076 typedef void ( * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
3077 typedef void ( * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v);
3078 typedef void ( * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
3079 typedef void ( * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v);
3080 typedef void ( * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
3081 typedef void ( * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v);
3082 typedef void ( * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3083 typedef void ( * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v);
3084 typedef void ( * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3085 typedef void ( * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v);
3086 typedef void ( * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
3087 typedef void ( * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v);
3088 typedef void ( * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
3089 typedef void ( * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v);
3090 typedef void ( * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
3091 typedef void ( * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
3092 typedef void ( * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
3093 typedef void ( * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
3094 typedef void ( * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
3095 typedef void ( * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
3096 typedef void ( * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
3097 typedef void ( * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
3098 typedef void ( * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
3099 typedef void ( * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
3100 typedef void ( * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
3101 typedef void ( * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
3102 typedef void ( * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v);
3103 __attribute__((visibility("default"))) void glTexBumpParameterivATI (GLenum pname, const GLint *param);
3104 __attribute__((visibility("default"))) void glTexBumpParameterfvATI (GLenum pname, const GLfloat *param);
3105 __attribute__((visibility("default"))) void glGetTexBumpParameterivATI (GLenum pname, GLint *param);
3106 __attribute__((visibility("default"))) void glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param);
3107 typedef void ( * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param);
3108 typedef void ( * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param);
3109 typedef void ( * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param);
3110 typedef void ( * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param);
3111 __attribute__((visibility("default"))) GLuint glGenFragmentShadersATI (GLuint range);
3112 __attribute__((visibility("default"))) void glBindFragmentShaderATI (GLuint id);
3113 __attribute__((visibility("default"))) void glDeleteFragmentShaderATI (GLuint id);
3114 __attribute__((visibility("default"))) void glBeginFragmentShaderATI (void);
3115 __attribute__((visibility("default"))) void glEndFragmentShaderATI (void);
3116 __attribute__((visibility("default"))) void glPassTexCoordATI (GLuint dst, GLuint coord, GLenum swizzle);
3117 __attribute__((visibility("default"))) void glSampleMapATI (GLuint dst, GLuint interp, GLenum swizzle);
3118 __attribute__((visibility("default"))) void glColorFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
3119 __attribute__((visibility("default"))) void glColorFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
3120 __attribute__((visibility("default"))) void glColorFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
3121 __attribute__((visibility("default"))) void glAlphaFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
3122 __attribute__((visibility("default"))) void glAlphaFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
3123 __attribute__((visibility("default"))) void glAlphaFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
3124 __attribute__((visibility("default"))) void glSetFragmentShaderConstantATI (GLuint dst, const GLfloat *value);
3125 typedef GLuint ( * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range);
3126 typedef void ( * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id);
3127 typedef void ( * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id);
3128 typedef void ( * PFNGLBEGINFRAGMENTSHADERATIPROC) (void);
3129 typedef void ( * PFNGLENDFRAGMENTSHADERATIPROC) (void);
3130 typedef void ( * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);
3131 typedef void ( * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);
3132 typedef void ( * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
3133 typedef void ( * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
3134 typedef void ( * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
3135 typedef void ( * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
3136 typedef void ( * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
3137 typedef void ( * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
3138 typedef void ( * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value);
3139 __attribute__((visibility("default"))) void glPNTrianglesiATI (GLenum pname, GLint param);
3140 __attribute__((visibility("default"))) void glPNTrianglesfATI (GLenum pname, GLfloat param);
3141 typedef void ( * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param);
3142 typedef void ( * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param);
3143 __attribute__((visibility("default"))) GLuint glNewObjectBufferATI (GLsizei size, const GLvoid *pointer, GLenum usage);
3144 __attribute__((visibility("default"))) GLboolean glIsObjectBufferATI (GLuint buffer);
3145 __attribute__((visibility("default"))) void glUpdateObjectBufferATI (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
3146 __attribute__((visibility("default"))) void glGetObjectBufferfvATI (GLuint buffer, GLenum pname, GLfloat *params);
3147 __attribute__((visibility("default"))) void glGetObjectBufferivATI (GLuint buffer, GLenum pname, GLint *params);
3148 __attribute__((visibility("default"))) void glFreeObjectBufferATI (GLuint buffer);
3149 __attribute__((visibility("default"))) void glArrayObjectATI (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
3150 __attribute__((visibility("default"))) void glGetArrayObjectfvATI (GLenum array, GLenum pname, GLfloat *params);
3151 __attribute__((visibility("default"))) void glGetArrayObjectivATI (GLenum array, GLenum pname, GLint *params);
3152 __attribute__((visibility("default"))) void glVariantArrayObjectATI (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
3153 __attribute__((visibility("default"))) void glGetVariantArrayObjectfvATI (GLuint id, GLenum pname, GLfloat *params);
3154 __attribute__((visibility("default"))) void glGetVariantArrayObjectivATI (GLuint id, GLenum pname, GLint *params);
3155 typedef GLuint ( * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage);
3156 typedef GLboolean ( * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer);
3157 typedef void ( * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
3158 typedef void ( * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params);
3159 typedef void ( * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params);
3160 typedef void ( * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer);
3161 typedef void ( * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
3162 typedef void ( * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params);
3163 typedef void ( * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params);
3164 typedef void ( * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
3165 typedef void ( * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params);
3166 typedef void ( * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params);
3167 __attribute__((visibility("default"))) void glBeginVertexShaderEXT (void);
3168 __attribute__((visibility("default"))) void glEndVertexShaderEXT (void);
3169 __attribute__((visibility("default"))) void glBindVertexShaderEXT (GLuint id);
3170 __attribute__((visibility("default"))) GLuint glGenVertexShadersEXT (GLuint range);
3171 __attribute__((visibility("default"))) void glDeleteVertexShaderEXT (GLuint id);
3172 __attribute__((visibility("default"))) void glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1);
3173 __attribute__((visibility("default"))) void glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
3174 __attribute__((visibility("default"))) void glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
3175 __attribute__((visibility("default"))) void glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
3176 __attribute__((visibility("default"))) void glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
3177 __attribute__((visibility("default"))) void glInsertComponentEXT (GLuint res, GLuint src, GLuint num);
3178 __attribute__((visibility("default"))) void glExtractComponentEXT (GLuint res, GLuint src, GLuint num);
3179 __attribute__((visibility("default"))) GLuint glGenSymbolsEXT (GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
3180 __attribute__((visibility("default"))) void glSetInvariantEXT (GLuint id, GLenum type, const GLvoid *addr);
3181 __attribute__((visibility("default"))) void glSetLocalConstantEXT (GLuint id, GLenum type, const GLvoid *addr);
3182 __attribute__((visibility("default"))) void glVariantbvEXT (GLuint id, const GLbyte *addr);
3183 __attribute__((visibility("default"))) void glVariantsvEXT (GLuint id, const GLshort *addr);
3184 __attribute__((visibility("default"))) void glVariantivEXT (GLuint id, const GLint *addr);
3185 __attribute__((visibility("default"))) void glVariantfvEXT (GLuint id, const GLfloat *addr);
3186 __attribute__((visibility("default"))) void glVariantdvEXT (GLuint id, const GLdouble *addr);
3187 __attribute__((visibility("default"))) void glVariantubvEXT (GLuint id, const GLubyte *addr);
3188 __attribute__((visibility("default"))) void glVariantusvEXT (GLuint id, const GLushort *addr);
3189 __attribute__((visibility("default"))) void glVariantuivEXT (GLuint id, const GLuint *addr);
3190 __attribute__((visibility("default"))) void glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, const GLvoid *addr);
3191 __attribute__((visibility("default"))) void glEnableVariantClientStateEXT (GLuint id);
3192 __attribute__((visibility("default"))) void glDisableVariantClientStateEXT (GLuint id);
3193 __attribute__((visibility("default"))) GLuint glBindLightParameterEXT (GLenum light, GLenum value);
3194 __attribute__((visibility("default"))) GLuint glBindMaterialParameterEXT (GLenum face, GLenum value);
3195 __attribute__((visibility("default"))) GLuint glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value);
3196 __attribute__((visibility("default"))) GLuint glBindTextureUnitParameterEXT (GLenum unit, GLenum value);
3197 __attribute__((visibility("default"))) GLuint glBindParameterEXT (GLenum value);
3198 __attribute__((visibility("default"))) GLboolean glIsVariantEnabledEXT (GLuint id, GLenum cap);
3199 __attribute__((visibility("default"))) void glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data);
3200 __attribute__((visibility("default"))) void glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data);
3201 __attribute__((visibility("default"))) void glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data);
3202 __attribute__((visibility("default"))) void glGetVariantPointervEXT (GLuint id, GLenum value, GLvoid* *data);
3203 __attribute__((visibility("default"))) void glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data);
3204 __attribute__((visibility("default"))) void glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data);
3205 __attribute__((visibility("default"))) void glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data);
3206 __attribute__((visibility("default"))) void glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data);
3207 __attribute__((visibility("default"))) void glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data);
3208 __attribute__((visibility("default"))) void glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data);
3209 typedef void ( * PFNGLBEGINVERTEXSHADEREXTPROC) (void);
3210 typedef void ( * PFNGLENDVERTEXSHADEREXTPROC) (void);
3211 typedef void ( * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id);
3212 typedef GLuint ( * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range);
3213 typedef void ( * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id);
3214 typedef void ( * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
3215 typedef void ( * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
3216 typedef void ( * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
3217 typedef void ( * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
3218 typedef void ( * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
3219 typedef void ( * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
3220 typedef void ( * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
3221 typedef GLuint ( * PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
3222 typedef void ( * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr);
3223 typedef void ( * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr);
3224 typedef void ( * PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr);
3225 typedef void ( * PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr);
3226 typedef void ( * PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr);
3227 typedef void ( * PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr);
3228 typedef void ( * PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr);
3229 typedef void ( * PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr);
3230 typedef void ( * PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr);
3231 typedef void ( * PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr);
3232 typedef void ( * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr);
3233 typedef void ( * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
3234 typedef void ( * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
3235 typedef GLuint ( * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value);
3236 typedef GLuint ( * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value);
3237 typedef GLuint ( * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value);
3238 typedef GLuint ( * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value);
3239 typedef GLuint ( * PFNGLBINDPARAMETEREXTPROC) (GLenum value);
3240 typedef GLboolean ( * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap);
3241 typedef void ( * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
3242 typedef void ( * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
3243 typedef void ( * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
3244 typedef void ( * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data);
3245 typedef void ( * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
3246 typedef void ( * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
3247 typedef void ( * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
3248 typedef void ( * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
3249 typedef void ( * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
3250 typedef void ( * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
3251 __attribute__((visibility("default"))) void glVertexStream1sATI (GLenum stream, GLshort x);
3252 __attribute__((visibility("default"))) void glVertexStream1svATI (GLenum stream, const GLshort *coords);
3253 __attribute__((visibility("default"))) void glVertexStream1iATI (GLenum stream, GLint x);
3254 __attribute__((visibility("default"))) void glVertexStream1ivATI (GLenum stream, const GLint *coords);
3255 __attribute__((visibility("default"))) void glVertexStream1fATI (GLenum stream, GLfloat x);
3256 __attribute__((visibility("default"))) void glVertexStream1fvATI (GLenum stream, const GLfloat *coords);
3257 __attribute__((visibility("default"))) void glVertexStream1dATI (GLenum stream, GLdouble x);
3258 __attribute__((visibility("default"))) void glVertexStream1dvATI (GLenum stream, const GLdouble *coords);
3259 __attribute__((visibility("default"))) void glVertexStream2sATI (GLenum stream, GLshort x, GLshort y);
3260 __attribute__((visibility("default"))) void glVertexStream2svATI (GLenum stream, const GLshort *coords);
3261 __attribute__((visibility("default"))) void glVertexStream2iATI (GLenum stream, GLint x, GLint y);
3262 __attribute__((visibility("default"))) void glVertexStream2ivATI (GLenum stream, const GLint *coords);
3263 __attribute__((visibility("default"))) void glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y);
3264 __attribute__((visibility("default"))) void glVertexStream2fvATI (GLenum stream, const GLfloat *coords);
3265 __attribute__((visibility("default"))) void glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y);
3266 __attribute__((visibility("default"))) void glVertexStream2dvATI (GLenum stream, const GLdouble *coords);
3267 __attribute__((visibility("default"))) void glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z);
3268 __attribute__((visibility("default"))) void glVertexStream3svATI (GLenum stream, const GLshort *coords);
3269 __attribute__((visibility("default"))) void glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z);
3270 __attribute__((visibility("default"))) void glVertexStream3ivATI (GLenum stream, const GLint *coords);
3271 __attribute__((visibility("default"))) void glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
3272 __attribute__((visibility("default"))) void glVertexStream3fvATI (GLenum stream, const GLfloat *coords);
3273 __attribute__((visibility("default"))) void glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
3274 __attribute__((visibility("default"))) void glVertexStream3dvATI (GLenum stream, const GLdouble *coords);
3275 __attribute__((visibility("default"))) void glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
3276 __attribute__((visibility("default"))) void glVertexStream4svATI (GLenum stream, const GLshort *coords);
3277 __attribute__((visibility("default"))) void glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w);
3278 __attribute__((visibility("default"))) void glVertexStream4ivATI (GLenum stream, const GLint *coords);
3279 __attribute__((visibility("default"))) void glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3280 __attribute__((visibility("default"))) void glVertexStream4fvATI (GLenum stream, const GLfloat *coords);
3281 __attribute__((visibility("default"))) void glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3282 __attribute__((visibility("default"))) void glVertexStream4dvATI (GLenum stream, const GLdouble *coords);
3283 __attribute__((visibility("default"))) void glNormalStream3bATI (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
3284 __attribute__((visibility("default"))) void glNormalStream3bvATI (GLenum stream, const GLbyte *coords);
3285 __attribute__((visibility("default"))) void glNormalStream3sATI (GLenum stream, GLshort nx, GLshort ny, GLshort nz);
3286 __attribute__((visibility("default"))) void glNormalStream3svATI (GLenum stream, const GLshort *coords);
3287 __attribute__((visibility("default"))) void glNormalStream3iATI (GLenum stream, GLint nx, GLint ny, GLint nz);
3288 __attribute__((visibility("default"))) void glNormalStream3ivATI (GLenum stream, const GLint *coords);
3289 __attribute__((visibility("default"))) void glNormalStream3fATI (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
3290 __attribute__((visibility("default"))) void glNormalStream3fvATI (GLenum stream, const GLfloat *coords);
3291 __attribute__((visibility("default"))) void glNormalStream3dATI (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
3292 __attribute__((visibility("default"))) void glNormalStream3dvATI (GLenum stream, const GLdouble *coords);
3293 __attribute__((visibility("default"))) void glClientActiveVertexStreamATI (GLenum stream);
3294 __attribute__((visibility("default"))) void glVertexBlendEnviATI (GLenum pname, GLint param);
3295 __attribute__((visibility("default"))) void glVertexBlendEnvfATI (GLenum pname, GLfloat param);
3296 typedef void ( * PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x);
3297 typedef void ( * PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords);
3298 typedef void ( * PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x);
3299 typedef void ( * PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords);
3300 typedef void ( * PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x);
3301 typedef void ( * PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords);
3302 typedef void ( * PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x);
3303 typedef void ( * PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords);
3304 typedef void ( * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y);
3305 typedef void ( * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords);
3306 typedef void ( * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y);
3307 typedef void ( * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords);
3308 typedef void ( * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y);
3309 typedef void ( * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords);
3310 typedef void ( * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y);
3311 typedef void ( * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords);
3312 typedef void ( * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
3313 typedef void ( * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
3314 typedef void ( * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
3315 typedef void ( * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
3316 typedef void ( * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
3317 typedef void ( * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
3318 typedef void ( * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
3319 typedef void ( * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
3320 typedef void ( * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
3321 typedef void ( * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords);
3322 typedef void ( * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
3323 typedef void ( * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords);
3324 typedef void ( * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3325 typedef void ( * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords);
3326 typedef void ( * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3327 typedef void ( * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords);
3328 typedef void ( * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
3329 typedef void ( * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords);
3330 typedef void ( * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz);
3331 typedef void ( * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
3332 typedef void ( * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz);
3333 typedef void ( * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
3334 typedef void ( * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
3335 typedef void ( * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
3336 typedef void ( * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
3337 typedef void ( * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
3338 typedef void ( * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream);
3339 typedef void ( * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param);
3340 typedef void ( * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param);
3341 __attribute__((visibility("default"))) void glElementPointerATI (GLenum type, const GLvoid *pointer);
3342 __attribute__((visibility("default"))) void glDrawElementArrayATI (GLenum mode, GLsizei count);
3343 __attribute__((visibility("default"))) void glDrawRangeElementArrayATI (GLenum mode, GLuint start, GLuint end, GLsizei count);
3344 typedef void ( * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer);
3345 typedef void ( * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count);
3346 typedef void ( * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);
3347 __attribute__((visibility("default"))) void glDrawMeshArraysSUN (GLenum mode, GLint first, GLsizei count, GLsizei width);
3348 typedef void ( * PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width);
3349 __attribute__((visibility("default"))) void glGenOcclusionQueriesNV (GLsizei n, GLuint *ids);
3350 __attribute__((visibility("default"))) void glDeleteOcclusionQueriesNV (GLsizei n, const GLuint *ids);
3351 __attribute__((visibility("default"))) GLboolean glIsOcclusionQueryNV (GLuint id);
3352 __attribute__((visibility("default"))) void glBeginOcclusionQueryNV (GLuint id);
3353 __attribute__((visibility("default"))) void glEndOcclusionQueryNV (void);
3354 __attribute__((visibility("default"))) void glGetOcclusionQueryivNV (GLuint id, GLenum pname, GLint *params);
3355 __attribute__((visibility("default"))) void glGetOcclusionQueryuivNV (GLuint id, GLenum pname, GLuint *params);
3356 typedef void ( * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids);
3357 typedef void ( * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids);
3358 typedef GLboolean ( * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id);
3359 typedef void ( * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
3360 typedef void ( * PFNGLENDOCCLUSIONQUERYNVPROC) (void);
3361 typedef void ( * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params);
3362 typedef void ( * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params);
3363 __attribute__((visibility("default"))) void glPointParameteriNV (GLenum pname, GLint param);
3364 __attribute__((visibility("default"))) void glPointParameterivNV (GLenum pname, const GLint *params);
3365 typedef void ( * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param);
3366 typedef void ( * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
3367 __attribute__((visibility("default"))) void glActiveStencilFaceEXT (GLenum face);
3368 typedef void ( * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
3369 __attribute__((visibility("default"))) void glElementPointerAPPLE (GLenum type, const GLvoid *pointer);
3370 __attribute__((visibility("default"))) void glDrawElementArrayAPPLE (GLenum mode, GLint first, GLsizei count);
3371 __attribute__((visibility("default"))) void glDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
3372 __attribute__((visibility("default"))) void glMultiDrawElementArrayAPPLE (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
3373 __attribute__((visibility("default"))) void glMultiDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
3374 typedef void ( * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer);
3375 typedef void ( * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count);
3376 typedef void ( * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
3377 typedef void ( * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
3378 typedef void ( * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
3379 __attribute__((visibility("default"))) void glGenFencesAPPLE (GLsizei n, GLuint *fences);
3380 __attribute__((visibility("default"))) void glDeleteFencesAPPLE (GLsizei n, const GLuint *fences);
3381 __attribute__((visibility("default"))) void glSetFenceAPPLE (GLuint fence);
3382 __attribute__((visibility("default"))) GLboolean glIsFenceAPPLE (GLuint fence);
3383 __attribute__((visibility("default"))) GLboolean glTestFenceAPPLE (GLuint fence);
3384 __attribute__((visibility("default"))) void glFinishFenceAPPLE (GLuint fence);
3385 __attribute__((visibility("default"))) GLboolean glTestObjectAPPLE (GLenum object, GLuint name);
3386 __attribute__((visibility("default"))) void glFinishObjectAPPLE (GLenum object, GLint name);
3387 typedef void ( * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences);
3388 typedef void ( * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences);
3389 typedef void ( * PFNGLSETFENCEAPPLEPROC) (GLuint fence);
3390 typedef GLboolean ( * PFNGLISFENCEAPPLEPROC) (GLuint fence);
3391 typedef GLboolean ( * PFNGLTESTFENCEAPPLEPROC) (GLuint fence);
3392 typedef void ( * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence);
3393 typedef GLboolean ( * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name);
3394 typedef void ( * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name);
3395 __attribute__((visibility("default"))) void glBindVertexArrayAPPLE (GLuint array);
3396 __attribute__((visibility("default"))) void glDeleteVertexArraysAPPLE (GLsizei n, const GLuint *arrays);
3397 __attribute__((visibility("default"))) void glGenVertexArraysAPPLE (GLsizei n, GLuint *arrays);
3398 __attribute__((visibility("default"))) GLboolean glIsVertexArrayAPPLE (GLuint array);
3399 typedef void ( * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
3400 typedef void ( * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays);
3401 typedef void ( * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays);
3402 typedef GLboolean ( * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
3403 __attribute__((visibility("default"))) void glVertexArrayRangeAPPLE (GLsizei length, GLvoid *pointer);
3404 __attribute__((visibility("default"))) void glFlushVertexArrayRangeAPPLE (GLsizei length, GLvoid *pointer);
3405 __attribute__((visibility("default"))) void glVertexArrayParameteriAPPLE (GLenum pname, GLint param);
3406 typedef void ( * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer);
3407 typedef void ( * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer);
3408 typedef void ( * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param);
3409 __attribute__((visibility("default"))) void glDrawBuffersATI (GLsizei n, const GLenum *bufs);
3410 typedef void ( * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs);
3411 __attribute__((visibility("default"))) void glProgramNamedParameter4fNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3412 __attribute__((visibility("default"))) void glProgramNamedParameter4dNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3413 __attribute__((visibility("default"))) void glProgramNamedParameter4fvNV (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
3414 __attribute__((visibility("default"))) void glProgramNamedParameter4dvNV (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
3415 __attribute__((visibility("default"))) void glGetProgramNamedParameterfvNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
3416 __attribute__((visibility("default"))) void glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
3417 typedef void ( * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3418 typedef void ( * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3419 typedef void ( * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
3420 typedef void ( * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
3421 typedef void ( * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
3422 typedef void ( * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
3423 __attribute__((visibility("default"))) void glVertex2hNV (GLhalfNV x, GLhalfNV y);
3424 __attribute__((visibility("default"))) void glVertex2hvNV (const GLhalfNV *v);
3425 __attribute__((visibility("default"))) void glVertex3hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z);
3426 __attribute__((visibility("default"))) void glVertex3hvNV (const GLhalfNV *v);
3427 __attribute__((visibility("default"))) void glVertex4hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
3428 __attribute__((visibility("default"))) void glVertex4hvNV (const GLhalfNV *v);
3429 __attribute__((visibility("default"))) void glNormal3hNV (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
3430 __attribute__((visibility("default"))) void glNormal3hvNV (const GLhalfNV *v);
3431 __attribute__((visibility("default"))) void glColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
3432 __attribute__((visibility("default"))) void glColor3hvNV (const GLhalfNV *v);
3433 __attribute__((visibility("default"))) void glColor4hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
3434 __attribute__((visibility("default"))) void glColor4hvNV (const GLhalfNV *v);
3435 __attribute__((visibility("default"))) void glTexCoord1hNV (GLhalfNV s);
3436 __attribute__((visibility("default"))) void glTexCoord1hvNV (const GLhalfNV *v);
3437 __attribute__((visibility("default"))) void glTexCoord2hNV (GLhalfNV s, GLhalfNV t);
3438 __attribute__((visibility("default"))) void glTexCoord2hvNV (const GLhalfNV *v);
3439 __attribute__((visibility("default"))) void glTexCoord3hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r);
3440 __attribute__((visibility("default"))) void glTexCoord3hvNV (const GLhalfNV *v);
3441 __attribute__((visibility("default"))) void glTexCoord4hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
3442 __attribute__((visibility("default"))) void glTexCoord4hvNV (const GLhalfNV *v);
3443 __attribute__((visibility("default"))) void glMultiTexCoord1hNV (GLenum target, GLhalfNV s);
3444 __attribute__((visibility("default"))) void glMultiTexCoord1hvNV (GLenum target, const GLhalfNV *v);
3445 __attribute__((visibility("default"))) void glMultiTexCoord2hNV (GLenum target, GLhalfNV s, GLhalfNV t);
3446 __attribute__((visibility("default"))) void glMultiTexCoord2hvNV (GLenum target, const GLhalfNV *v);
3447 __attribute__((visibility("default"))) void glMultiTexCoord3hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
3448 __attribute__((visibility("default"))) void glMultiTexCoord3hvNV (GLenum target, const GLhalfNV *v);
3449 __attribute__((visibility("default"))) void glMultiTexCoord4hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
3450 __attribute__((visibility("default"))) void glMultiTexCoord4hvNV (GLenum target, const GLhalfNV *v);
3451 __attribute__((visibility("default"))) void glFogCoordhNV (GLhalfNV fog);
3452 __attribute__((visibility("default"))) void glFogCoordhvNV (const GLhalfNV *fog);
3453 __attribute__((visibility("default"))) void glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
3454 __attribute__((visibility("default"))) void glSecondaryColor3hvNV (const GLhalfNV *v);
3455 __attribute__((visibility("default"))) void glVertexWeighthNV (GLhalfNV weight);
3456 __attribute__((visibility("default"))) void glVertexWeighthvNV (const GLhalfNV *weight);
3457 __attribute__((visibility("default"))) void glVertexAttrib1hNV (GLuint index, GLhalfNV x);
3458 __attribute__((visibility("default"))) void glVertexAttrib1hvNV (GLuint index, const GLhalfNV *v);
3459 __attribute__((visibility("default"))) void glVertexAttrib2hNV (GLuint index, GLhalfNV x, GLhalfNV y);
3460 __attribute__((visibility("default"))) void glVertexAttrib2hvNV (GLuint index, const GLhalfNV *v);
3461 __attribute__((visibility("default"))) void glVertexAttrib3hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
3462 __attribute__((visibility("default"))) void glVertexAttrib3hvNV (GLuint index, const GLhalfNV *v);
3463 __attribute__((visibility("default"))) void glVertexAttrib4hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
3464 __attribute__((visibility("default"))) void glVertexAttrib4hvNV (GLuint index, const GLhalfNV *v);
3465 __attribute__((visibility("default"))) void glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
3466 __attribute__((visibility("default"))) void glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
3467 __attribute__((visibility("default"))) void glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
3468 __attribute__((visibility("default"))) void glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
3469 typedef void ( * PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y);
3470 typedef void ( * PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v);
3471 typedef void ( * PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z);
3472 typedef void ( * PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v);
3473 typedef void ( * PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
3474 typedef void ( * PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v);
3475 typedef void ( * PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
3476 typedef void ( * PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v);
3477 typedef void ( * PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
3478 typedef void ( * PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v);
3479 typedef void ( * PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
3480 typedef void ( * PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v);
3481 typedef void ( * PFNGLTEXCOORD1HNVPROC) (GLhalfNV s);
3482 typedef void ( * PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v);
3483 typedef void ( * PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t);
3484 typedef void ( * PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v);
3485 typedef void ( * PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r);
3486 typedef void ( * PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v);
3487 typedef void ( * PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
3488 typedef void ( * PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v);
3489 typedef void ( * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s);
3490 typedef void ( * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v);
3491 typedef void ( * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t);
3492 typedef void ( * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v);
3493 typedef void ( * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
3494 typedef void ( * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v);
3495 typedef void ( * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
3496 typedef void ( * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v);
3497 typedef void ( * PFNGLFOGCOORDHNVPROC) (GLhalfNV fog);
3498 typedef void ( * PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog);
3499 typedef void ( * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
3500 typedef void ( * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v);
3501 typedef void ( * PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight);
3502 typedef void ( * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight);
3503 typedef void ( * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x);
3504 typedef void ( * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v);
3505 typedef void ( * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y);
3506 typedef void ( * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v);
3507 typedef void ( * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
3508 typedef void ( * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v);
3509 typedef void ( * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
3510 typedef void ( * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v);
3511 typedef void ( * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
3512 typedef void ( * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
3513 typedef void ( * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
3514 typedef void ( * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
3515 __attribute__((visibility("default"))) void glPixelDataRangeNV (GLenum target, GLsizei length, GLvoid *pointer);
3516 __attribute__((visibility("default"))) void glFlushPixelDataRangeNV (GLenum target);
3517 typedef void ( * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer);
3518 typedef void ( * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target);
3519 __attribute__((visibility("default"))) void glPrimitiveRestartNV (void);
3520 __attribute__((visibility("default"))) void glPrimitiveRestartIndexNV (GLuint index);
3521 typedef void ( * PFNGLPRIMITIVERESTARTNVPROC) (void);
3522 typedef void ( * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index);
3523 __attribute__((visibility("default"))) GLvoid* glMapObjectBufferATI (GLuint buffer);
3524 __attribute__((visibility("default"))) void glUnmapObjectBufferATI (GLuint buffer);
3525 typedef GLvoid* ( * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer);
3526 typedef void ( * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer);
3527 __attribute__((visibility("default"))) void glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
3528 __attribute__((visibility("default"))) void glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
3529 typedef void ( * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
3530 typedef void ( * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
3531 __attribute__((visibility("default"))) void glVertexAttribArrayObjectATI (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
3532 __attribute__((visibility("default"))) void glGetVertexAttribArrayObjectfvATI (GLuint index, GLenum pname, GLfloat *params);
3533 __attribute__((visibility("default"))) void glGetVertexAttribArrayObjectivATI (GLuint index, GLenum pname, GLint *params);
3534 typedef void ( * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
3535 typedef void ( * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params);
3536 typedef void ( * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params);
3537 __attribute__((visibility("default"))) void glDepthBoundsEXT (GLclampd zmin, GLclampd zmax);
3538 typedef void ( * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax);
3539 __attribute__((visibility("default"))) void glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha);
3540 typedef void ( * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha);
3541 __attribute__((visibility("default"))) GLboolean glIsRenderbufferEXT (GLuint renderbuffer);
3542 __attribute__((visibility("default"))) void glBindRenderbufferEXT (GLenum target, GLuint renderbuffer);
3543 __attribute__((visibility("default"))) void glDeleteRenderbuffersEXT (GLsizei n, const GLuint *renderbuffers);
3544 __attribute__((visibility("default"))) void glGenRenderbuffersEXT (GLsizei n, GLuint *renderbuffers);
3545 __attribute__((visibility("default"))) void glRenderbufferStorageEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
3546 __attribute__((visibility("default"))) void glGetRenderbufferParameterivEXT (GLenum target, GLenum pname, GLint *params);
3547 __attribute__((visibility("default"))) GLboolean glIsFramebufferEXT (GLuint framebuffer);
3548 __attribute__((visibility("default"))) void glBindFramebufferEXT (GLenum target, GLuint framebuffer);
3549 __attribute__((visibility("default"))) void glDeleteFramebuffersEXT (GLsizei n, const GLuint *framebuffers);
3550 __attribute__((visibility("default"))) void glGenFramebuffersEXT (GLsizei n, GLuint *framebuffers);
3551 __attribute__((visibility("default"))) GLenum glCheckFramebufferStatusEXT (GLenum target);
3552 __attribute__((visibility("default"))) void glFramebufferTexture1DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3553 __attribute__((visibility("default"))) void glFramebufferTexture2DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3554 __attribute__((visibility("default"))) void glFramebufferTexture3DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
3555 __attribute__((visibility("default"))) void glFramebufferRenderbufferEXT (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
3556 __attribute__((visibility("default"))) void glGetFramebufferAttachmentParameterivEXT (GLenum target, GLenum attachment, GLenum pname, GLint *params);
3557 __attribute__((visibility("default"))) void glGenerateMipmapEXT (GLenum target);
3558 typedef GLboolean ( * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer);
3559 typedef void ( * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer);
3560 typedef void ( * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers);
3561 typedef void ( * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers);
3562 typedef void ( * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
3563 typedef void ( * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
3564 typedef GLboolean ( * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer);
3565 typedef void ( * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer);
3566 typedef void ( * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers);
3567 typedef void ( * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers);
3568 typedef GLenum ( * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target);
3569 typedef void ( * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3570 typedef void ( * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3571 typedef void ( * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
3572 typedef void ( * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
3573 typedef void ( * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
3574 typedef void ( * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target);
3575 __attribute__((visibility("default"))) void glStringMarkerGREMEDY (GLsizei len, const GLvoid *string);
3576 typedef void ( * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string);
3577 __attribute__((visibility("default"))) void glStencilClearTagEXT (GLsizei stencilTagBits, GLuint stencilClearTag);
3578 typedef void ( * PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag);
3579 __attribute__((visibility("default"))) void glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
3580 typedef void ( * PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
3581 __attribute__((visibility("default"))) void glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
3582 typedef void ( * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
3583 __attribute__((visibility("default"))) void glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64EXT *params);
3584 __attribute__((visibility("default"))) void glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64EXT *params);
3585 typedef void ( * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params);
3586 typedef void ( * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params);
3587 __attribute__((visibility("default"))) void glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
3588 __attribute__((visibility("default"))) void glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
3589 typedef void ( * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
3590 typedef void ( * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
3591 __attribute__((visibility("default"))) void glBufferParameteriAPPLE (GLenum target, GLenum pname, GLint param);
3592 __attribute__((visibility("default"))) void glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size);
3593 typedef void ( * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param);
3594 typedef void ( * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size);
3595 __attribute__((visibility("default"))) void glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
3596 __attribute__((visibility("default"))) void glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params);
3597 __attribute__((visibility("default"))) void glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params);
3598 __attribute__((visibility("default"))) void glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3599 __attribute__((visibility("default"))) void glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params);
3600 __attribute__((visibility("default"))) void glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params);
3601 __attribute__((visibility("default"))) void glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
3602 __attribute__((visibility("default"))) void glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params);
3603 __attribute__((visibility("default"))) void glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params);
3604 __attribute__((visibility("default"))) void glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3605 __attribute__((visibility("default"))) void glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params);
3606 __attribute__((visibility("default"))) void glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params);
3607 __attribute__((visibility("default"))) void glGetProgramLocalParameterIivNV (GLenum target, GLuint index, GLint *params);
3608 __attribute__((visibility("default"))) void glGetProgramLocalParameterIuivNV (GLenum target, GLuint index, GLuint *params);
3609 __attribute__((visibility("default"))) void glGetProgramEnvParameterIivNV (GLenum target, GLuint index, GLint *params);
3610 __attribute__((visibility("default"))) void glGetProgramEnvParameterIuivNV (GLenum target, GLuint index, GLuint *params);
3611 typedef void ( * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
3612 typedef void ( * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
3613 typedef void ( * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
3614 typedef void ( * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3615 typedef void ( * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
3616 typedef void ( * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
3617 typedef void ( * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
3618 typedef void ( * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
3619 typedef void ( * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
3620 typedef void ( * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3621 typedef void ( * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
3622 typedef void ( * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
3623 typedef void ( * PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
3624 typedef void ( * PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
3625 typedef void ( * PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
3626 typedef void ( * PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
3627 __attribute__((visibility("default"))) void glProgramVertexLimitNV (GLenum target, GLint limit);
3628 __attribute__((visibility("default"))) void glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level);
3629 __attribute__((visibility("default"))) void glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
3630 __attribute__((visibility("default"))) void glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
3631 typedef void ( * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit);
3632 typedef void ( * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
3633 typedef void ( * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
3634 typedef void ( * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
3635 __attribute__((visibility("default"))) void glProgramParameteriEXT (GLuint program, GLenum pname, GLint value);
3636 typedef void ( * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
3637 __attribute__((visibility("default"))) void glVertexAttribI1iEXT (GLuint index, GLint x);
3638 __attribute__((visibility("default"))) void glVertexAttribI2iEXT (GLuint index, GLint x, GLint y);
3639 __attribute__((visibility("default"))) void glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z);
3640 __attribute__((visibility("default"))) void glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w);
3641 __attribute__((visibility("default"))) void glVertexAttribI1uiEXT (GLuint index, GLuint x);
3642 __attribute__((visibility("default"))) void glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y);
3643 __attribute__((visibility("default"))) void glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z);
3644 __attribute__((visibility("default"))) void glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3645 __attribute__((visibility("default"))) void glVertexAttribI1ivEXT (GLuint index, const GLint *v);
3646 __attribute__((visibility("default"))) void glVertexAttribI2ivEXT (GLuint index, const GLint *v);
3647 __attribute__((visibility("default"))) void glVertexAttribI3ivEXT (GLuint index, const GLint *v);
3648 __attribute__((visibility("default"))) void glVertexAttribI4ivEXT (GLuint index, const GLint *v);
3649 __attribute__((visibility("default"))) void glVertexAttribI1uivEXT (GLuint index, const GLuint *v);
3650 __attribute__((visibility("default"))) void glVertexAttribI2uivEXT (GLuint index, const GLuint *v);
3651 __attribute__((visibility("default"))) void glVertexAttribI3uivEXT (GLuint index, const GLuint *v);
3652 __attribute__((visibility("default"))) void glVertexAttribI4uivEXT (GLuint index, const GLuint *v);
3653 __attribute__((visibility("default"))) void glVertexAttribI4bvEXT (GLuint index, const GLbyte *v);
3654 __attribute__((visibility("default"))) void glVertexAttribI4svEXT (GLuint index, const GLshort *v);
3655 __attribute__((visibility("default"))) void glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v);
3656 __attribute__((visibility("default"))) void glVertexAttribI4usvEXT (GLuint index, const GLushort *v);
3657 __attribute__((visibility("default"))) void glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
3658 __attribute__((visibility("default"))) void glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params);
3659 __attribute__((visibility("default"))) void glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params);
3660 typedef void ( * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x);
3661 typedef void ( * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y);
3662 typedef void ( * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z);
3663 typedef void ( * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
3664 typedef void ( * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x);
3665 typedef void ( * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y);
3666 typedef void ( * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
3667 typedef void ( * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3668 typedef void ( * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v);
3669 typedef void ( * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v);
3670 typedef void ( * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v);
3671 typedef void ( * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v);
3672 typedef void ( * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v);
3673 typedef void ( * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v);
3674 typedef void ( * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v);
3675 typedef void ( * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v);
3676 typedef void ( * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v);
3677 typedef void ( * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v);
3678 typedef void ( * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v);
3679 typedef void ( * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v);
3680 typedef void ( * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
3681 typedef void ( * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params);
3682 typedef void ( * PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params);
3683 __attribute__((visibility("default"))) void glGetUniformuivEXT (GLuint program, GLint location, GLuint *params);
3684 __attribute__((visibility("default"))) void glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name);
3685 __attribute__((visibility("default"))) GLint glGetFragDataLocationEXT (GLuint program, const GLchar *name);
3686 __attribute__((visibility("default"))) void glUniform1uiEXT (GLint location, GLuint v0);
3687 __attribute__((visibility("default"))) void glUniform2uiEXT (GLint location, GLuint v0, GLuint v1);
3688 __attribute__((visibility("default"))) void glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2);
3689 __attribute__((visibility("default"))) void glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
3690 __attribute__((visibility("default"))) void glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value);
3691 __attribute__((visibility("default"))) void glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value);
3692 __attribute__((visibility("default"))) void glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value);
3693 __attribute__((visibility("default"))) void glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value);
3694 typedef void ( * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params);
3695 typedef void ( * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name);
3696 typedef GLint ( * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name);
3697 typedef void ( * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0);
3698 typedef void ( * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1);
3699 typedef void ( * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
3700 typedef void ( * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
3701 typedef void ( * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
3702 typedef void ( * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
3703 typedef void ( * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
3704 typedef void ( * PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
3705 __attribute__((visibility("default"))) void glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
3706 __attribute__((visibility("default"))) void glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
3707 typedef void ( * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
3708 typedef void ( * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
3709 __attribute__((visibility("default"))) void glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer);
3710 typedef void ( * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer);
3711 __attribute__((visibility("default"))) void glDepthRangedNV (GLdouble zNear, GLdouble zFar);
3712 __attribute__((visibility("default"))) void glClearDepthdNV (GLdouble depth);
3713 __attribute__((visibility("default"))) void glDepthBoundsdNV (GLdouble zmin, GLdouble zmax);
3714 typedef void ( * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar);
3715 typedef void ( * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth);
3716 typedef void ( * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax);
3717 __attribute__((visibility("default"))) void glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
3718 typedef void ( * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
3719 __attribute__((visibility("default"))) void glProgramBufferParametersfvNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
3720 __attribute__((visibility("default"))) void glProgramBufferParametersIivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
3721 __attribute__((visibility("default"))) void glProgramBufferParametersIuivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
3722 typedef void ( * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
3723 typedef void ( * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
3724 typedef void ( * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
3725 __attribute__((visibility("default"))) void glColorMaskIndexedEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
3726 __attribute__((visibility("default"))) void glGetBooleanIndexedvEXT (GLenum target, GLuint index, GLboolean *data);
3727 __attribute__((visibility("default"))) void glGetIntegerIndexedvEXT (GLenum target, GLuint index, GLint *data);
3728 __attribute__((visibility("default"))) void glEnableIndexedEXT (GLenum target, GLuint index);
3729 __attribute__((visibility("default"))) void glDisableIndexedEXT (GLenum target, GLuint index);
3730 __attribute__((visibility("default"))) GLboolean glIsEnabledIndexedEXT (GLenum target, GLuint index);
3731 typedef void ( * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
3732 typedef void ( * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data);
3733 typedef void ( * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data);
3734 typedef void ( * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
3735 typedef void ( * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
3736 typedef GLboolean ( * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index);
3737 __attribute__((visibility("default"))) void glBeginTransformFeedbackNV (GLenum primitiveMode);
3738 __attribute__((visibility("default"))) void glEndTransformFeedbackNV (void);
3739 __attribute__((visibility("default"))) void glTransformFeedbackAttribsNV (GLuint count, const GLint *attribs, GLenum bufferMode);
3740 __attribute__((visibility("default"))) void glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
3741 __attribute__((visibility("default"))) void glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
3742 __attribute__((visibility("default"))) void glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer);
3743 __attribute__((visibility("default"))) void glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
3744 __attribute__((visibility("default"))) void glActiveVaryingNV (GLuint program, const GLchar *name);
3745 __attribute__((visibility("default"))) GLint glGetVaryingLocationNV (GLuint program, const GLchar *name);
3746 __attribute__((visibility("default"))) void glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
3747 __attribute__((visibility("default"))) void glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location);
3748 __attribute__((visibility("default"))) void glTransformFeedbackStreamAttribsNV (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode);
3749 typedef void ( * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode);
3750 typedef void ( * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void);
3751 typedef void ( * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode);
3752 typedef void ( * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
3753 typedef void ( * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
3754 typedef void ( * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer);
3755 typedef void ( * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
3756 typedef void ( * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name);
3757 typedef GLint ( * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name);
3758 typedef void ( * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
3759 typedef void ( * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location);
3760 typedef void ( * PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode);
3761 __attribute__((visibility("default"))) void glUniformBufferEXT (GLuint program, GLint location, GLuint buffer);
3762 __attribute__((visibility("default"))) GLint glGetUniformBufferSizeEXT (GLuint program, GLint location);
3763 __attribute__((visibility("default"))) GLintptr glGetUniformOffsetEXT (GLuint program, GLint location);
3764 typedef void ( * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer);
3765 typedef GLint ( * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location);
3766 typedef GLintptr ( * PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location);
3767 __attribute__((visibility("default"))) void glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params);
3768 __attribute__((visibility("default"))) void glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params);
3769 __attribute__((visibility("default"))) void glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params);
3770 __attribute__((visibility("default"))) void glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params);
3771 __attribute__((visibility("default"))) void glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha);
3772 __attribute__((visibility("default"))) void glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha);
3773 typedef void ( * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
3774 typedef void ( * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params);
3775 typedef void ( * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
3776 typedef void ( * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params);
3777 typedef void ( * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha);
3778 typedef void ( * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
3779 __attribute__((visibility("default"))) void glFrameTerminatorGREMEDY (void);
3780 typedef void ( * PFNGLFRAMETERMINATORGREMEDYPROC) (void);
3781 __attribute__((visibility("default"))) void glBeginConditionalRenderNV (GLuint id, GLenum mode);
3782 __attribute__((visibility("default"))) void glEndConditionalRenderNV (void);
3783 typedef void ( * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode);
3784 typedef void ( * PFNGLENDCONDITIONALRENDERNVPROC) (void);
3785 __attribute__((visibility("default"))) void glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
3786 __attribute__((visibility("default"))) void glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3);
3787 __attribute__((visibility("default"))) void glGetVideoivNV (GLuint video_slot, GLenum pname, GLint *params);
3788 __attribute__((visibility("default"))) void glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint *params);
3789 __attribute__((visibility("default"))) void glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT *params);
3790 __attribute__((visibility("default"))) void glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT *params);
3791 typedef void ( * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
3792 typedef void ( * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3);
3793 typedef void ( * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params);
3794 typedef void ( * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params);
3795 typedef void ( * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params);
3796 typedef void ( * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params);
3797 __attribute__((visibility("default"))) void glBeginTransformFeedbackEXT (GLenum primitiveMode);
3798 __attribute__((visibility("default"))) void glEndTransformFeedbackEXT (void);
3799 __attribute__((visibility("default"))) void glBindBufferRangeEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
3800 __attribute__((visibility("default"))) void glBindBufferOffsetEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
3801 __attribute__((visibility("default"))) void glBindBufferBaseEXT (GLenum target, GLuint index, GLuint buffer);
3802 __attribute__((visibility("default"))) void glTransformFeedbackVaryingsEXT (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
3803 __attribute__((visibility("default"))) void glGetTransformFeedbackVaryingEXT (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
3804 typedef void ( * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode);
3805 typedef void ( * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void);
3806 typedef void ( * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
3807 typedef void ( * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
3808 typedef void ( * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer);
3809 typedef void ( * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
3810 typedef void ( * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
3811 __attribute__((visibility("default"))) void glClientAttribDefaultEXT (GLbitfield mask);
3812 __attribute__((visibility("default"))) void glPushClientAttribDefaultEXT (GLbitfield mask);
3813 __attribute__((visibility("default"))) void glMatrixLoadfEXT (GLenum mode, const GLfloat *m);
3814 __attribute__((visibility("default"))) void glMatrixLoaddEXT (GLenum mode, const GLdouble *m);
3815 __attribute__((visibility("default"))) void glMatrixMultfEXT (GLenum mode, const GLfloat *m);
3816 __attribute__((visibility("default"))) void glMatrixMultdEXT (GLenum mode, const GLdouble *m);
3817 __attribute__((visibility("default"))) void glMatrixLoadIdentityEXT (GLenum mode);
3818 __attribute__((visibility("default"))) void glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
3819 __attribute__((visibility("default"))) void glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
3820 __attribute__((visibility("default"))) void glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
3821 __attribute__((visibility("default"))) void glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
3822 __attribute__((visibility("default"))) void glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
3823 __attribute__((visibility("default"))) void glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
3824 __attribute__((visibility("default"))) void glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
3825 __attribute__((visibility("default"))) void glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
3826 __attribute__((visibility("default"))) void glMatrixPopEXT (GLenum mode);
3827 __attribute__((visibility("default"))) void glMatrixPushEXT (GLenum mode);
3828 __attribute__((visibility("default"))) void glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m);
3829 __attribute__((visibility("default"))) void glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m);
3830 __attribute__((visibility("default"))) void glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m);
3831 __attribute__((visibility("default"))) void glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m);
3832 __attribute__((visibility("default"))) void glTextureParameterfEXT (GLuint texture, GLenum target, GLenum pname, GLfloat param);
3833 __attribute__((visibility("default"))) void glTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, const GLfloat *params);
3834 __attribute__((visibility("default"))) void glTextureParameteriEXT (GLuint texture, GLenum target, GLenum pname, GLint param);
3835 __attribute__((visibility("default"))) void glTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params);
3836 __attribute__((visibility("default"))) void glTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
3837 __attribute__((visibility("default"))) void glTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
3838 __attribute__((visibility("default"))) void glTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
3839 __attribute__((visibility("default"))) void glTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
3840 __attribute__((visibility("default"))) void glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
3841 __attribute__((visibility("default"))) void glCopyTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
3842 __attribute__((visibility("default"))) void glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
3843 __attribute__((visibility("default"))) void glCopyTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
3844 __attribute__((visibility("default"))) void glGetTextureImageEXT (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
3845 __attribute__((visibility("default"))) void glGetTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, GLfloat *params);
3846 __attribute__((visibility("default"))) void glGetTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params);
3847 __attribute__((visibility("default"))) void glGetTextureLevelParameterfvEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
3848 __attribute__((visibility("default"))) void glGetTextureLevelParameterivEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
3849 __attribute__((visibility("default"))) void glTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
3850 __attribute__((visibility("default"))) void glTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
3851 __attribute__((visibility("default"))) void glCopyTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
3852 __attribute__((visibility("default"))) void glMultiTexParameterfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
3853 __attribute__((visibility("default"))) void glMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
3854 __attribute__((visibility("default"))) void glMultiTexParameteriEXT (GLenum texunit, GLenum target, GLenum pname, GLint param);
3855 __attribute__((visibility("default"))) void glMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
3856 __attribute__((visibility("default"))) void glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
3857 __attribute__((visibility("default"))) void glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
3858 __attribute__((visibility("default"))) void glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
3859 __attribute__((visibility("default"))) void glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
3860 __attribute__((visibility("default"))) void glCopyMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
3861 __attribute__((visibility("default"))) void glCopyMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
3862 __attribute__((visibility("default"))) void glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
3863 __attribute__((visibility("default"))) void glCopyMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
3864 __attribute__((visibility("default"))) void glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
3865 __attribute__((visibility("default"))) void glGetMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
3866 __attribute__((visibility("default"))) void glGetMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params);
3867 __attribute__((visibility("default"))) void glGetMultiTexLevelParameterfvEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
3868 __attribute__((visibility("default"))) void glGetMultiTexLevelParameterivEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
3869 __attribute__((visibility("default"))) void glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
3870 __attribute__((visibility("default"))) void glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
3871 __attribute__((visibility("default"))) void glCopyMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
3872 __attribute__((visibility("default"))) void glBindMultiTextureEXT (GLenum texunit, GLenum target, GLuint texture);
3873 __attribute__((visibility("default"))) void glEnableClientStateIndexedEXT (GLenum array, GLuint index);
3874 __attribute__((visibility("default"))) void glDisableClientStateIndexedEXT (GLenum array, GLuint index);
3875 __attribute__((visibility("default"))) void glMultiTexCoordPointerEXT (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
3876 __attribute__((visibility("default"))) void glMultiTexEnvfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
3877 __attribute__((visibility("default"))) void glMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
3878 __attribute__((visibility("default"))) void glMultiTexEnviEXT (GLenum texunit, GLenum target, GLenum pname, GLint param);
3879 __attribute__((visibility("default"))) void glMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
3880 __attribute__((visibility("default"))) void glMultiTexGendEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
3881 __attribute__((visibility("default"))) void glMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
3882 __attribute__((visibility("default"))) void glMultiTexGenfEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
3883 __attribute__((visibility("default"))) void glMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
3884 __attribute__((visibility("default"))) void glMultiTexGeniEXT (GLenum texunit, GLenum coord, GLenum pname, GLint param);
3885 __attribute__((visibility("default"))) void glMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
3886 __attribute__((visibility("default"))) void glGetMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
3887 __attribute__((visibility("default"))) void glGetMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params);
3888 __attribute__((visibility("default"))) void glGetMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
3889 __attribute__((visibility("default"))) void glGetMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
3890 __attribute__((visibility("default"))) void glGetMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, GLint *params);
3891 __attribute__((visibility("default"))) void glGetFloatIndexedvEXT (GLenum target, GLuint index, GLfloat *data);
3892 __attribute__((visibility("default"))) void glGetDoubleIndexedvEXT (GLenum target, GLuint index, GLdouble *data);
3893 __attribute__((visibility("default"))) void glGetPointerIndexedvEXT (GLenum target, GLuint index, GLvoid* *data);
3894 __attribute__((visibility("default"))) void glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
3895 __attribute__((visibility("default"))) void glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
3896 __attribute__((visibility("default"))) void glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
3897 __attribute__((visibility("default"))) void glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits);
3898 __attribute__((visibility("default"))) void glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
3899 __attribute__((visibility("default"))) void glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
3900 __attribute__((visibility("default"))) void glGetCompressedTextureImageEXT (GLuint texture, GLenum target, GLint lod, GLvoid *img);
3901 __attribute__((visibility("default"))) void glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
3902 __attribute__((visibility("default"))) void glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
3903 __attribute__((visibility("default"))) void glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
3904 __attribute__((visibility("default"))) void glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits);
3905 __attribute__((visibility("default"))) void glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
3906 __attribute__((visibility("default"))) void glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
3907 __attribute__((visibility("default"))) void glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target, GLint lod, GLvoid *img);
3908 __attribute__((visibility("default"))) void glNamedProgramStringEXT (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string);
3909 __attribute__((visibility("default"))) void glNamedProgramLocalParameter4dEXT (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3910 __attribute__((visibility("default"))) void glNamedProgramLocalParameter4dvEXT (GLuint program, GLenum target, GLuint index, const GLdouble *params);
3911 __attribute__((visibility("default"))) void glNamedProgramLocalParameter4fEXT (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3912 __attribute__((visibility("default"))) void glNamedProgramLocalParameter4fvEXT (GLuint program, GLenum target, GLuint index, const GLfloat *params);
3913 __attribute__((visibility("default"))) void glGetNamedProgramLocalParameterdvEXT (GLuint program, GLenum target, GLuint index, GLdouble *params);
3914 __attribute__((visibility("default"))) void glGetNamedProgramLocalParameterfvEXT (GLuint program, GLenum target, GLuint index, GLfloat *params);
3915 __attribute__((visibility("default"))) void glGetNamedProgramivEXT (GLuint program, GLenum target, GLenum pname, GLint *params);
3916 __attribute__((visibility("default"))) void glGetNamedProgramStringEXT (GLuint program, GLenum target, GLenum pname, GLvoid *string);
3917 __attribute__((visibility("default"))) void glNamedProgramLocalParameters4fvEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params);
3918 __attribute__((visibility("default"))) void glNamedProgramLocalParameterI4iEXT (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
3919 __attribute__((visibility("default"))) void glNamedProgramLocalParameterI4ivEXT (GLuint program, GLenum target, GLuint index, const GLint *params);
3920 __attribute__((visibility("default"))) void glNamedProgramLocalParametersI4ivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params);
3921 __attribute__((visibility("default"))) void glNamedProgramLocalParameterI4uiEXT (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3922 __attribute__((visibility("default"))) void glNamedProgramLocalParameterI4uivEXT (GLuint program, GLenum target, GLuint index, const GLuint *params);
3923 __attribute__((visibility("default"))) void glNamedProgramLocalParametersI4uivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
3924 __attribute__((visibility("default"))) void glGetNamedProgramLocalParameterIivEXT (GLuint program, GLenum target, GLuint index, GLint *params);
3925 __attribute__((visibility("default"))) void glGetNamedProgramLocalParameterIuivEXT (GLuint program, GLenum target, GLuint index, GLuint *params);
3926 __attribute__((visibility("default"))) void glTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params);
3927 __attribute__((visibility("default"))) void glTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, const GLuint *params);
3928 __attribute__((visibility("default"))) void glGetTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params);
3929 __attribute__((visibility("default"))) void glGetTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, GLuint *params);
3930 __attribute__((visibility("default"))) void glMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
3931 __attribute__((visibility("default"))) void glMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, const GLuint *params);
3932 __attribute__((visibility("default"))) void glGetMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params);
3933 __attribute__((visibility("default"))) void glGetMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, GLuint *params);
3934 __attribute__((visibility("default"))) void glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0);
3935 __attribute__((visibility("default"))) void glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1);
3936 __attribute__((visibility("default"))) void glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
3937 __attribute__((visibility("default"))) void glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
3938 __attribute__((visibility("default"))) void glProgramUniform1iEXT (GLuint program, GLint location, GLint v0);
3939 __attribute__((visibility("default"))) void glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1);
3940 __attribute__((visibility("default"))) void glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
3941 __attribute__((visibility("default"))) void glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
3942 __attribute__((visibility("default"))) void glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3943 __attribute__((visibility("default"))) void glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3944 __attribute__((visibility("default"))) void glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3945 __attribute__((visibility("default"))) void glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
3946 __attribute__((visibility("default"))) void glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
3947 __attribute__((visibility("default"))) void glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
3948 __attribute__((visibility("default"))) void glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
3949 __attribute__((visibility("default"))) void glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
3950 __attribute__((visibility("default"))) void glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3951 __attribute__((visibility("default"))) void glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3952 __attribute__((visibility("default"))) void glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3953 __attribute__((visibility("default"))) void glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3954 __attribute__((visibility("default"))) void glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3955 __attribute__((visibility("default"))) void glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3956 __attribute__((visibility("default"))) void glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3957 __attribute__((visibility("default"))) void glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3958 __attribute__((visibility("default"))) void glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
3959 __attribute__((visibility("default"))) void glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0);
3960 __attribute__((visibility("default"))) void glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1);
3961 __attribute__((visibility("default"))) void glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
3962 __attribute__((visibility("default"))) void glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
3963 __attribute__((visibility("default"))) void glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value);
3964 __attribute__((visibility("default"))) void glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value);
3965 __attribute__((visibility("default"))) void glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value);
3966 __attribute__((visibility("default"))) void glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value);
3967 __attribute__((visibility("default"))) void glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage);
3968 __attribute__((visibility("default"))) void glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data);
3969 __attribute__((visibility("default"))) GLvoid* glMapNamedBufferEXT (GLuint buffer, GLenum access);
3970 __attribute__((visibility("default"))) GLboolean glUnmapNamedBufferEXT (GLuint buffer);
3971 __attribute__((visibility("default"))) GLvoid* glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
3972 __attribute__((visibility("default"))) void glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length);
3973 __attribute__((visibility("default"))) void glNamedCopyBufferSubDataEXT (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
3974 __attribute__((visibility("default"))) void glGetNamedBufferParameterivEXT (GLuint buffer, GLenum pname, GLint *params);
3975 __attribute__((visibility("default"))) void glGetNamedBufferPointervEXT (GLuint buffer, GLenum pname, GLvoid* *params);
3976 __attribute__((visibility("default"))) void glGetNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data);
3977 __attribute__((visibility("default"))) void glTextureBufferEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
3978 __attribute__((visibility("default"))) void glMultiTexBufferEXT (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
3979 __attribute__((visibility("default"))) void glNamedRenderbufferStorageEXT (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
3980 __attribute__((visibility("default"))) void glGetNamedRenderbufferParameterivEXT (GLuint renderbuffer, GLenum pname, GLint *params);
3981 __attribute__((visibility("default"))) GLenum glCheckNamedFramebufferStatusEXT (GLuint framebuffer, GLenum target);
3982 __attribute__((visibility("default"))) void glNamedFramebufferTexture1DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3983 __attribute__((visibility("default"))) void glNamedFramebufferTexture2DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3984 __attribute__((visibility("default"))) void glNamedFramebufferTexture3DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
3985 __attribute__((visibility("default"))) void glNamedFramebufferRenderbufferEXT (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
3986 __attribute__((visibility("default"))) void glGetNamedFramebufferAttachmentParameterivEXT (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
3987 __attribute__((visibility("default"))) void glGenerateTextureMipmapEXT (GLuint texture, GLenum target);
3988 __attribute__((visibility("default"))) void glGenerateMultiTexMipmapEXT (GLenum texunit, GLenum target);
3989 __attribute__((visibility("default"))) void glFramebufferDrawBufferEXT (GLuint framebuffer, GLenum mode);
3990 __attribute__((visibility("default"))) void glFramebufferDrawBuffersEXT (GLuint framebuffer, GLsizei n, const GLenum *bufs);
3991 __attribute__((visibility("default"))) void glFramebufferReadBufferEXT (GLuint framebuffer, GLenum mode);
3992 __attribute__((visibility("default"))) void glGetFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params);
3993 __attribute__((visibility("default"))) void glNamedRenderbufferStorageMultisampleEXT (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
3994 __attribute__((visibility("default"))) void glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
3995 __attribute__((visibility("default"))) void glNamedFramebufferTextureEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
3996 __attribute__((visibility("default"))) void glNamedFramebufferTextureLayerEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
3997 __attribute__((visibility("default"))) void glNamedFramebufferTextureFaceEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
3998 __attribute__((visibility("default"))) void glTextureRenderbufferEXT (GLuint texture, GLenum target, GLuint renderbuffer);
3999 __attribute__((visibility("default"))) void glMultiTexRenderbufferEXT (GLenum texunit, GLenum target, GLuint renderbuffer);
4000 __attribute__((visibility("default"))) void glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x);
4001 __attribute__((visibility("default"))) void glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y);
4002 __attribute__((visibility("default"))) void glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
4003 __attribute__((visibility("default"))) void glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
4004 __attribute__((visibility("default"))) void glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4005 __attribute__((visibility("default"))) void glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4006 __attribute__((visibility("default"))) void glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4007 __attribute__((visibility("default"))) void glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4008 __attribute__((visibility("default"))) void glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4009 __attribute__((visibility("default"))) void glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4010 __attribute__((visibility("default"))) void glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4011 __attribute__((visibility("default"))) void glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4012 __attribute__((visibility("default"))) void glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4013 __attribute__((visibility("default"))) void glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4014 __attribute__((visibility("default"))) void glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4015 __attribute__((visibility("default"))) void glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4016 __attribute__((visibility("default"))) void glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4017 typedef void ( * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
4018 typedef void ( * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
4019 typedef void ( * PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m);
4020 typedef void ( * PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m);
4021 typedef void ( * PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m);
4022 typedef void ( * PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m);
4023 typedef void ( * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode);
4024 typedef void ( * PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
4025 typedef void ( * PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
4026 typedef void ( * PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
4027 typedef void ( * PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
4028 typedef void ( * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
4029 typedef void ( * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
4030 typedef void ( * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
4031 typedef void ( * PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
4032 typedef void ( * PFNGLMATRIXPOPEXTPROC) (GLenum mode);
4033 typedef void ( * PFNGLMATRIXPUSHEXTPROC) (GLenum mode);
4034 typedef void ( * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m);
4035 typedef void ( * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m);
4036 typedef void ( * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m);
4037 typedef void ( * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m);
4038 typedef void ( * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param);
4039 typedef void ( * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params);
4040 typedef void ( * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param);
4041 typedef void ( * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params);
4042 typedef void ( * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
4043 typedef void ( * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
4044 typedef void ( * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
4045 typedef void ( * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
4046 typedef void ( * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
4047 typedef void ( * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
4048 typedef void ( * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
4049 typedef void ( * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4050 typedef void ( * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
4051 typedef void ( * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params);
4052 typedef void ( * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params);
4053 typedef void ( * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
4054 typedef void ( * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
4055 typedef void ( * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
4056 typedef void ( * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
4057 typedef void ( * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4058 typedef void ( * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
4059 typedef void ( * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
4060 typedef void ( * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
4061 typedef void ( * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
4062 typedef void ( * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
4063 typedef void ( * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
4064 typedef void ( * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
4065 typedef void ( * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
4066 typedef void ( * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
4067 typedef void ( * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
4068 typedef void ( * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
4069 typedef void ( * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4070 typedef void ( * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
4071 typedef void ( * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
4072 typedef void ( * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
4073 typedef void ( * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
4074 typedef void ( * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
4075 typedef void ( * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
4076 typedef void ( * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
4077 typedef void ( * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4078 typedef void ( * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture);
4079 typedef void ( * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
4080 typedef void ( * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
4081 typedef void ( * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
4082 typedef void ( * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
4083 typedef void ( * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
4084 typedef void ( * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
4085 typedef void ( * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
4086 typedef void ( * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
4087 typedef void ( * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
4088 typedef void ( * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
4089 typedef void ( * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
4090 typedef void ( * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param);
4091 typedef void ( * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
4092 typedef void ( * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
4093 typedef void ( * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
4094 typedef void ( * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
4095 typedef void ( * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
4096 typedef void ( * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params);
4097 typedef void ( * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data);
4098 typedef void ( * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data);
4099 typedef void ( * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid* *data);
4100 typedef void ( * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
4101 typedef void ( * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
4102 typedef void ( * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
4103 typedef void ( * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits);
4104 typedef void ( * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
4105 typedef void ( * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
4106 typedef void ( * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, GLvoid *img);
4107 typedef void ( * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
4108 typedef void ( * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
4109 typedef void ( * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
4110 typedef void ( * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits);
4111 typedef void ( * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
4112 typedef void ( * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
4113 typedef void ( * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, GLvoid *img);
4114 typedef void ( * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string);
4115 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
4116 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params);
4117 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
4118 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params);
4119 typedef void ( * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params);
4120 typedef void ( * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params);
4121 typedef void ( * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params);
4122 typedef void ( * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, GLvoid *string);
4123 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params);
4124 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
4125 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params);
4126 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params);
4127 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
4128 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params);
4129 typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
4130 typedef void ( * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params);
4131 typedef void ( * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params);
4132 typedef void ( * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params);
4133 typedef void ( * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params);
4134 typedef void ( * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params);
4135 typedef void ( * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params);
4136 typedef void ( * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
4137 typedef void ( * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params);
4138 typedef void ( * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
4139 typedef void ( * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params);
4140 typedef void ( * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0);
4141 typedef void ( * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
4142 typedef void ( * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
4143 typedef void ( * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
4144 typedef void ( * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0);
4145 typedef void ( * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1);
4146 typedef void ( * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
4147 typedef void ( * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
4148 typedef void ( * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
4149 typedef void ( * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
4150 typedef void ( * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
4151 typedef void ( * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
4152 typedef void ( * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
4153 typedef void ( * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
4154 typedef void ( * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
4155 typedef void ( * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
4156 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4157 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4158 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4159 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4160 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4161 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4162 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4163 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4164 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4165 typedef void ( * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0);
4166 typedef void ( * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
4167 typedef void ( * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
4168 typedef void ( * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
4169 typedef void ( * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
4170 typedef void ( * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
4171 typedef void ( * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
4172 typedef void ( * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
4173 typedef void ( * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage);
4174 typedef void ( * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data);
4175 typedef GLvoid* ( * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access);
4176 typedef GLboolean ( * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer);
4177 typedef GLvoid* ( * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
4178 typedef void ( * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
4179 typedef void ( * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
4180 typedef void ( * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params);
4181 typedef void ( * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, GLvoid* *params);
4182 typedef void ( * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data);
4183 typedef void ( * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
4184 typedef void ( * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
4185 typedef void ( * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
4186 typedef void ( * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params);
4187 typedef GLenum ( * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target);
4188 typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
4189 typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
4190 typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
4191 typedef void ( * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
4192 typedef void ( * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
4193 typedef void ( * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target);
4194 typedef void ( * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target);
4195 typedef void ( * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
4196 typedef void ( * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs);
4197 typedef void ( * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
4198 typedef void ( * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params);
4199 typedef void ( * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
4200 typedef void ( * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
4201 typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
4202 typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
4203 typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
4204 typedef void ( * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer);
4205 typedef void ( * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer);
4206 typedef void ( * PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x);
4207 typedef void ( * PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y);
4208 typedef void ( * PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
4209 typedef void ( * PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
4210 typedef void ( * PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4211 typedef void ( * PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4212 typedef void ( * PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4213 typedef void ( * PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4214 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4215 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4216 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4217 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4218 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4219 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4220 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4221 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4222 typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4223 __attribute__((visibility("default"))) void glGetMultisamplefvNV (GLenum pname, GLuint index, GLfloat *val);
4224 __attribute__((visibility("default"))) void glSampleMaskIndexedNV (GLuint index, GLbitfield mask);
4225 __attribute__((visibility("default"))) void glTexRenderbufferNV (GLenum target, GLuint renderbuffer);
4226 typedef void ( * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val);
4227 typedef void ( * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask);
4228 typedef void ( * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer);
4229 __attribute__((visibility("default"))) void glBindTransformFeedbackNV (GLenum target, GLuint id);
4230 __attribute__((visibility("default"))) void glDeleteTransformFeedbacksNV (GLsizei n, const GLuint *ids);
4231 __attribute__((visibility("default"))) void glGenTransformFeedbacksNV (GLsizei n, GLuint *ids);
4232 __attribute__((visibility("default"))) GLboolean glIsTransformFeedbackNV (GLuint id);
4233 __attribute__((visibility("default"))) void glPauseTransformFeedbackNV (void);
4234 __attribute__((visibility("default"))) void glResumeTransformFeedbackNV (void);
4235 __attribute__((visibility("default"))) void glDrawTransformFeedbackNV (GLenum mode, GLuint id);
4236 typedef void ( * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id);
4237 typedef void ( * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids);
4238 typedef void ( * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids);
4239 typedef GLboolean ( * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id);
4240 typedef void ( * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void);
4241 typedef void ( * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void);
4242 typedef void ( * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id);
4243 __attribute__((visibility("default"))) void glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
4244 __attribute__((visibility("default"))) void glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
4245 __attribute__((visibility("default"))) void glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
4246 __attribute__((visibility("default"))) void glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
4247 __attribute__((visibility("default"))) void glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
4248 __attribute__((visibility("default"))) void glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
4249 __attribute__((visibility("default"))) void glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
4250 __attribute__((visibility("default"))) void glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList);
4251 __attribute__((visibility("default"))) void glBeginPerfMonitorAMD (GLuint monitor);
4252 __attribute__((visibility("default"))) void glEndPerfMonitorAMD (GLuint monitor);
4253 __attribute__((visibility("default"))) void glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
4254 typedef void ( * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
4255 typedef void ( * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
4256 typedef void ( * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
4257 typedef void ( * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
4258 typedef void ( * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
4259 typedef void ( * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
4260 typedef void ( * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
4261 typedef void ( * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList);
4262 typedef void ( * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
4263 typedef void ( * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
4264 typedef void ( * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
4265 __attribute__((visibility("default"))) void glTessellationFactorAMD (GLfloat factor);
4266 __attribute__((visibility("default"))) void glTessellationModeAMD (GLenum mode);
4267 typedef void ( * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor);
4268 typedef void ( * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode);
4269 __attribute__((visibility("default"))) void glProvokingVertexEXT (GLenum mode);
4270 typedef void ( * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode);
4271 __attribute__((visibility("default"))) void glBlendFuncIndexedAMD (GLuint buf, GLenum src, GLenum dst);
4272 __attribute__((visibility("default"))) void glBlendFuncSeparateIndexedAMD (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
4273 __attribute__((visibility("default"))) void glBlendEquationIndexedAMD (GLuint buf, GLenum mode);
4274 __attribute__((visibility("default"))) void glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
4275 typedef void ( * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst);
4276 typedef void ( * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
4277 typedef void ( * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode);
4278 typedef void ( * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
4279 __attribute__((visibility("default"))) void glTextureRangeAPPLE (GLenum target, GLsizei length, const GLvoid *pointer);
4280 __attribute__((visibility("default"))) void glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, GLvoid* *params);
4281 typedef void ( * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer);
4282 typedef void ( * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid* *params);
4283 __attribute__((visibility("default"))) void glEnableVertexAttribAPPLE (GLuint index, GLenum pname);
4284 __attribute__((visibility("default"))) void glDisableVertexAttribAPPLE (GLuint index, GLenum pname);
4285 __attribute__((visibility("default"))) GLboolean glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname);
4286 __attribute__((visibility("default"))) void glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
4287 __attribute__((visibility("default"))) void glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
4288 __attribute__((visibility("default"))) void glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
4289 __attribute__((visibility("default"))) void glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
4290 typedef void ( * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
4291 typedef void ( * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
4292 typedef GLboolean ( * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname);
4293 typedef void ( * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
4294 typedef void ( * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
4295 typedef void ( * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
4296 typedef void ( * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
4297 __attribute__((visibility("default"))) GLenum glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option);
4298 __attribute__((visibility("default"))) GLenum glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option);
4299 __attribute__((visibility("default"))) void glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params);
4300 typedef GLenum ( * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
4301 typedef GLenum ( * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
4302 typedef void ( * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params);
4303 __attribute__((visibility("default"))) void glBeginVideoCaptureNV (GLuint video_capture_slot);
4304 __attribute__((visibility("default"))) void glBindVideoCaptureStreamBufferNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset);
4305 __attribute__((visibility("default"))) void glBindVideoCaptureStreamTextureNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
4306 __attribute__((visibility("default"))) void glEndVideoCaptureNV (GLuint video_capture_slot);
4307 __attribute__((visibility("default"))) void glGetVideoCaptureivNV (GLuint video_capture_slot, GLenum pname, GLint *params);
4308 __attribute__((visibility("default"))) void glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params);
4309 __attribute__((visibility("default"))) void glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params);
4310 __attribute__((visibility("default"))) void glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params);
4311 __attribute__((visibility("default"))) GLenum glVideoCaptureNV (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time);
4312 __attribute__((visibility("default"))) void glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params);
4313 __attribute__((visibility("default"))) void glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params);
4314 __attribute__((visibility("default"))) void glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params);
4315 typedef void ( * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
4316 typedef void ( * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset);
4317 typedef void ( * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
4318 typedef void ( * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
4319 typedef void ( * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint *params);
4320 typedef void ( * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params);
4321 typedef void ( * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params);
4322 typedef void ( * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params);
4323 typedef GLenum ( * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time);
4324 typedef void ( * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params);
4325 typedef void ( * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params);
4326 typedef void ( * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params);
4327 __attribute__((visibility("default"))) void glCopyImageSubDataNV (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
4328 typedef void ( * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
4329 __attribute__((visibility("default"))) void glUseShaderProgramEXT (GLenum type, GLuint program);
4330 __attribute__((visibility("default"))) void glActiveProgramEXT (GLuint program);
4331 __attribute__((visibility("default"))) GLuint glCreateShaderProgramEXT (GLenum type, const GLchar *string);
4332 typedef void ( * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program);
4333 typedef void ( * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program);
4334 typedef GLuint ( * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar *string);
4335 __attribute__((visibility("default"))) void glMakeBufferResidentNV (GLenum target, GLenum access);
4336 __attribute__((visibility("default"))) void glMakeBufferNonResidentNV (GLenum target);
4337 __attribute__((visibility("default"))) GLboolean glIsBufferResidentNV (GLenum target);
4338 __attribute__((visibility("default"))) void glMakeNamedBufferResidentNV (GLuint buffer, GLenum access);
4339 __attribute__((visibility("default"))) void glMakeNamedBufferNonResidentNV (GLuint buffer);
4340 __attribute__((visibility("default"))) GLboolean glIsNamedBufferResidentNV (GLuint buffer);
4341 __attribute__((visibility("default"))) void glGetBufferParameterui64vNV (GLenum target, GLenum pname, GLuint64EXT *params);
4342 __attribute__((visibility("default"))) void glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pname, GLuint64EXT *params);
4343 __attribute__((visibility("default"))) void glGetIntegerui64vNV (GLenum value, GLuint64EXT *result);
4344 __attribute__((visibility("default"))) void glUniformui64NV (GLint location, GLuint64EXT value);
4345 __attribute__((visibility("default"))) void glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
4346 __attribute__((visibility("default"))) void glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params);
4347 __attribute__((visibility("default"))) void glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value);
4348 __attribute__((visibility("default"))) void glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4349 typedef void ( * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access);
4350 typedef void ( * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target);
4351 typedef GLboolean ( * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target);
4352 typedef void ( * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access);
4353 typedef void ( * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer);
4354 typedef GLboolean ( * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer);
4355 typedef void ( * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT *params);
4356 typedef void ( * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT *params);
4357 typedef void ( * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result);
4358 typedef void ( * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value);
4359 typedef void ( * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
4360 typedef void ( * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params);
4361 typedef void ( * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value);
4362 typedef void ( * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4363 __attribute__((visibility("default"))) void glBufferAddressRangeNV (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
4364 __attribute__((visibility("default"))) void glVertexFormatNV (GLint size, GLenum type, GLsizei stride);
4365 __attribute__((visibility("default"))) void glNormalFormatNV (GLenum type, GLsizei stride);
4366 __attribute__((visibility("default"))) void glColorFormatNV (GLint size, GLenum type, GLsizei stride);
4367 __attribute__((visibility("default"))) void glIndexFormatNV (GLenum type, GLsizei stride);
4368 __attribute__((visibility("default"))) void glTexCoordFormatNV (GLint size, GLenum type, GLsizei stride);
4369 __attribute__((visibility("default"))) void glEdgeFlagFormatNV (GLsizei stride);
4370 __attribute__((visibility("default"))) void glSecondaryColorFormatNV (GLint size, GLenum type, GLsizei stride);
4371 __attribute__((visibility("default"))) void glFogCoordFormatNV (GLenum type, GLsizei stride);
4372 __attribute__((visibility("default"))) void glVertexAttribFormatNV (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
4373 __attribute__((visibility("default"))) void glVertexAttribIFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride);
4374 __attribute__((visibility("default"))) void glGetIntegerui64i_vNV (GLenum value, GLuint index, GLuint64EXT *result);
4375 typedef void ( * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
4376 typedef void ( * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
4377 typedef void ( * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride);
4378 typedef void ( * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
4379 typedef void ( * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride);
4380 typedef void ( * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
4381 typedef void ( * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride);
4382 typedef void ( * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
4383 typedef void ( * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride);
4384 typedef void ( * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
4385 typedef void ( * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride);
4386 typedef void ( * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result);
4387 __attribute__((visibility("default"))) void glTextureBarrierNV (void);
4388 typedef void ( * PFNGLTEXTUREBARRIERNVPROC) (void);
4389 __attribute__((visibility("default"))) void glBindImageTextureEXT (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
4390 __attribute__((visibility("default"))) void glMemoryBarrierEXT (GLbitfield barriers);
4391 typedef void ( * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
4392 typedef void ( * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers);
4393 __attribute__((visibility("default"))) void glVertexAttribL1dEXT (GLuint index, GLdouble x);
4394 __attribute__((visibility("default"))) void glVertexAttribL2dEXT (GLuint index, GLdouble x, GLdouble y);
4395 __attribute__((visibility("default"))) void glVertexAttribL3dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z);
4396 __attribute__((visibility("default"))) void glVertexAttribL4dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
4397 __attribute__((visibility("default"))) void glVertexAttribL1dvEXT (GLuint index, const GLdouble *v);
4398 __attribute__((visibility("default"))) void glVertexAttribL2dvEXT (GLuint index, const GLdouble *v);
4399 __attribute__((visibility("default"))) void glVertexAttribL3dvEXT (GLuint index, const GLdouble *v);
4400 __attribute__((visibility("default"))) void glVertexAttribL4dvEXT (GLuint index, const GLdouble *v);
4401 __attribute__((visibility("default"))) void glVertexAttribLPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
4402 __attribute__((visibility("default"))) void glGetVertexAttribLdvEXT (GLuint index, GLenum pname, GLdouble *params);
4403 __attribute__((visibility("default"))) void glVertexArrayVertexAttribLOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
4404 typedef void ( * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x);
4405 typedef void ( * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y);
4406 typedef void ( * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
4407 typedef void ( * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
4408 typedef void ( * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble *v);
4409 typedef void ( * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble *v);
4410 typedef void ( * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble *v);
4411 typedef void ( * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble *v);
4412 typedef void ( * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
4413 typedef void ( * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble *params);
4414 typedef void ( * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
4415 __attribute__((visibility("default"))) void glProgramSubroutineParametersuivNV (GLenum target, GLsizei count, const GLuint *params);
4416 __attribute__((visibility("default"))) void glGetProgramSubroutineParameteruivNV (GLenum target, GLuint index, GLuint *param);
4417 typedef void ( * PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC) (GLenum target, GLsizei count, const GLuint *params);
4418 typedef void ( * PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC) (GLenum target, GLuint index, GLuint *param);
4419 __attribute__((visibility("default"))) void glUniform1i64NV (GLint location, GLint64EXT x);
4420 __attribute__((visibility("default"))) void glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y);
4421 __attribute__((visibility("default"))) void glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
4422 __attribute__((visibility("default"))) void glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
4423 __attribute__((visibility("default"))) void glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
4424 __attribute__((visibility("default"))) void glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
4425 __attribute__((visibility("default"))) void glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
4426 __attribute__((visibility("default"))) void glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
4427 __attribute__((visibility("default"))) void glUniform1ui64NV (GLint location, GLuint64EXT x);
4428 __attribute__((visibility("default"))) void glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y);
4429 __attribute__((visibility("default"))) void glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
4430 __attribute__((visibility("default"))) void glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
4431 __attribute__((visibility("default"))) void glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
4432 __attribute__((visibility("default"))) void glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
4433 __attribute__((visibility("default"))) void glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
4434 __attribute__((visibility("default"))) void glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
4435 __attribute__((visibility("default"))) void glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params);
4436 __attribute__((visibility("default"))) void glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x);
4437 __attribute__((visibility("default"))) void glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
4438 __attribute__((visibility("default"))) void glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
4439 __attribute__((visibility("default"))) void glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
4440 __attribute__((visibility("default"))) void glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4441 __attribute__((visibility("default"))) void glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4442 __attribute__((visibility("default"))) void glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4443 __attribute__((visibility("default"))) void glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4444 __attribute__((visibility("default"))) void glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x);
4445 __attribute__((visibility("default"))) void glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
4446 __attribute__((visibility("default"))) void glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
4447 __attribute__((visibility("default"))) void glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
4448 __attribute__((visibility("default"))) void glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4449 __attribute__((visibility("default"))) void glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4450 __attribute__((visibility("default"))) void glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4451 __attribute__((visibility("default"))) void glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4452 typedef void ( * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x);
4453 typedef void ( * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y);
4454 typedef void ( * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
4455 typedef void ( * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
4456 typedef void ( * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
4457 typedef void ( * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
4458 typedef void ( * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
4459 typedef void ( * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
4460 typedef void ( * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x);
4461 typedef void ( * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y);
4462 typedef void ( * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
4463 typedef void ( * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
4464 typedef void ( * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
4465 typedef void ( * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
4466 typedef void ( * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
4467 typedef void ( * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
4468 typedef void ( * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params);
4469 typedef void ( * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x);
4470 typedef void ( * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
4471 typedef void ( * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
4472 typedef void ( * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
4473 typedef void ( * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4474 typedef void ( * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4475 typedef void ( * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4476 typedef void ( * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4477 typedef void ( * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x);
4478 typedef void ( * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
4479 typedef void ( * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
4480 typedef void ( * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
4481 typedef void ( * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4482 typedef void ( * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4483 typedef void ( * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4484 typedef void ( * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4485 __attribute__((visibility("default"))) void glVertexAttribL1i64NV (GLuint index, GLint64EXT x);
4486 __attribute__((visibility("default"))) void glVertexAttribL2i64NV (GLuint index, GLint64EXT x, GLint64EXT y);
4487 __attribute__((visibility("default"))) void glVertexAttribL3i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
4488 __attribute__((visibility("default"))) void glVertexAttribL4i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
4489 __attribute__((visibility("default"))) void glVertexAttribL1i64vNV (GLuint index, const GLint64EXT *v);
4490 __attribute__((visibility("default"))) void glVertexAttribL2i64vNV (GLuint index, const GLint64EXT *v);
4491 __attribute__((visibility("default"))) void glVertexAttribL3i64vNV (GLuint index, const GLint64EXT *v);
4492 __attribute__((visibility("default"))) void glVertexAttribL4i64vNV (GLuint index, const GLint64EXT *v);
4493 __attribute__((visibility("default"))) void glVertexAttribL1ui64NV (GLuint index, GLuint64EXT x);
4494 __attribute__((visibility("default"))) void glVertexAttribL2ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y);
4495 __attribute__((visibility("default"))) void glVertexAttribL3ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
4496 __attribute__((visibility("default"))) void glVertexAttribL4ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
4497 __attribute__((visibility("default"))) void glVertexAttribL1ui64vNV (GLuint index, const GLuint64EXT *v);
4498 __attribute__((visibility("default"))) void glVertexAttribL2ui64vNV (GLuint index, const GLuint64EXT *v);
4499 __attribute__((visibility("default"))) void glVertexAttribL3ui64vNV (GLuint index, const GLuint64EXT *v);
4500 __attribute__((visibility("default"))) void glVertexAttribL4ui64vNV (GLuint index, const GLuint64EXT *v);
4501 __attribute__((visibility("default"))) void glGetVertexAttribLi64vNV (GLuint index, GLenum pname, GLint64EXT *params);
4502 __attribute__((visibility("default"))) void glGetVertexAttribLui64vNV (GLuint index, GLenum pname, GLuint64EXT *params);
4503 __attribute__((visibility("default"))) void glVertexAttribLFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride);
4504 typedef void ( * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x);
4505 typedef void ( * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y);
4506 typedef void ( * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
4507 typedef void ( * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
4508 typedef void ( * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT *v);
4509 typedef void ( * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT *v);
4510 typedef void ( * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT *v);
4511 typedef void ( * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT *v);
4512 typedef void ( * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x);
4513 typedef void ( * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y);
4514 typedef void ( * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
4515 typedef void ( * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
4516 typedef void ( * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
4517 typedef void ( * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
4518 typedef void ( * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
4519 typedef void ( * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
4520 typedef void ( * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT *params);
4521 typedef void ( * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT *params);
4522 typedef void ( * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride);
4523 __attribute__((visibility("default"))) void glGenNamesAMD (GLenum identifier, GLuint num, GLuint *names);
4524 __attribute__((visibility("default"))) void glDeleteNamesAMD (GLenum identifier, GLuint num, const GLuint *names);
4525 __attribute__((visibility("default"))) GLboolean glIsNameAMD (GLenum identifier, GLuint name);
4526 typedef void ( * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint *names);
4527 typedef void ( * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint *names);
4528 typedef GLboolean ( * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name);
4529 __attribute__((visibility("default"))) void glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
4530 __attribute__((visibility("default"))) void glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
4531 __attribute__((visibility("default"))) void glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, GLvoid *userParam);
4532 __attribute__((visibility("default"))) GLuint glGetDebugMessageLogAMD (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
4533 typedef void ( * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
4534 typedef void ( * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
4535 typedef void ( * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, GLvoid *userParam);
4536 typedef GLuint ( * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
4537 __attribute__((visibility("default"))) void glVDPAUInitNV (const GLvoid *vdpDevice, const GLvoid *getProcAddress);
4538 __attribute__((visibility("default"))) void glVDPAUFiniNV (void);
4539 __attribute__((visibility("default"))) GLvdpauSurfaceNV glVDPAURegisterVideoSurfaceNV (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
4540 __attribute__((visibility("default"))) GLvdpauSurfaceNV glVDPAURegisterOutputSurfaceNV (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
4541 __attribute__((visibility("default"))) void glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface);
4542 __attribute__((visibility("default"))) void glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface);
4543 __attribute__((visibility("default"))) void glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
4544 __attribute__((visibility("default"))) void glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access);
4545 __attribute__((visibility("default"))) void glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
4546 __attribute__((visibility("default"))) void glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces);
4547 typedef void ( * PFNGLVDPAUINITNVPROC) (const GLvoid *vdpDevice, const GLvoid *getProcAddress);
4548 typedef void ( * PFNGLVDPAUFININVPROC) (void);
4549 typedef GLvdpauSurfaceNV ( * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
4550 typedef GLvdpauSurfaceNV ( * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
4551 typedef void ( * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface);
4552 typedef void ( * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface);
4553 typedef void ( * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
4554 typedef void ( * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access);
4555 typedef void ( * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
4556 typedef void ( * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces);
4557 __attribute__((visibility("default"))) void glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
4558 __attribute__((visibility("default"))) void glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
4559 __attribute__((visibility("default"))) void glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
4560 __attribute__((visibility("default"))) void glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
4561 __attribute__((visibility("default"))) void glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
4562 __attribute__((visibility("default"))) void glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
4563 typedef void ( * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
4564 typedef void ( * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
4565 typedef void ( * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
4566 typedef void ( * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
4567 typedef void ( * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
4568 typedef void ( * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
4569 __attribute__((visibility("default"))) void glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat *val);
4570 typedef void ( * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val);
4571 __attribute__((visibility("default"))) GLsync glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
4572 typedef GLsync ( * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
4573 __attribute__((visibility("default"))) void glMultiDrawArraysIndirectAMD (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
4574 __attribute__((visibility("default"))) void glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
4575 typedef void ( * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
4576 typedef void ( * PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
4577 __attribute__((visibility("default"))) GLhandleARB glCreateDebugObjectMESA (void);
4578 __attribute__((visibility("default"))) void glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
4579 __attribute__((visibility("default"))) void glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength,
4580                                          GLsizei *length, GLcharARB *debugLog);
4581 __attribute__((visibility("default"))) GLsizei glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
4582 typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data);
4583 __attribute__((visibility("default"))) void glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data);
4584 __attribute__((visibility("default"))) void glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v);
4585 __attribute__((visibility("default"))) void glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA );
4586 typedef void ( * PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA);
4587 typedef void* GLeglImageOES;
4588 __attribute__((visibility("default"))) void glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
4589 __attribute__((visibility("default"))) void glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
4590 typedef void ( * PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
4591 typedef void ( * PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
4592 typedef int GLfixed;
4593 typedef int GLclampx;
4594 extern void __assert_fail (__const char *__assertion, __const char *__file,
4595       unsigned int __line, __const char *__function)
4596      __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
4597 extern void __assert_perror_fail (int __errnum, __const char *__file,
4598       unsigned int __line,
4599       __const char *__function)
4600      __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
4601 extern void __assert (const char *__assertion, const char *__file, int __line)
4602      __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
4603 typedef unsigned char __u_char;
4604 typedef unsigned short int __u_short;
4605 typedef unsigned int __u_int;
4606 typedef unsigned long int __u_long;
4607 typedef signed char __int8_t;
4608 typedef unsigned char __uint8_t;
4609 typedef signed short int __int16_t;
4610 typedef unsigned short int __uint16_t;
4611 typedef signed int __int32_t;
4612 typedef unsigned int __uint32_t;
4613 __extension__ typedef signed long long int __int64_t;
4614 __extension__ typedef unsigned long long int __uint64_t;
4615 __extension__ typedef long long int __quad_t;
4616 __extension__ typedef unsigned long long int __u_quad_t;
4617 __extension__ typedef __u_quad_t __dev_t;
4618 __extension__ typedef unsigned int __uid_t;
4619 __extension__ typedef unsigned int __gid_t;
4620 __extension__ typedef unsigned long int __ino_t;
4621 __extension__ typedef __u_quad_t __ino64_t;
4622 __extension__ typedef unsigned int __mode_t;
4623 __extension__ typedef unsigned int __nlink_t;
4624 __extension__ typedef long int __off_t;
4625 __extension__ typedef __quad_t __off64_t;
4626 __extension__ typedef int __pid_t;
4627 __extension__ typedef struct { int __val[2]; } __fsid_t;
4628 __extension__ typedef long int __clock_t;
4629 __extension__ typedef unsigned long int __rlim_t;
4630 __extension__ typedef __u_quad_t __rlim64_t;
4631 __extension__ typedef unsigned int __id_t;
4632 __extension__ typedef long int __time_t;
4633 __extension__ typedef unsigned int __useconds_t;
4634 __extension__ typedef long int __suseconds_t;
4635 __extension__ typedef int __daddr_t;
4636 __extension__ typedef long int __swblk_t;
4637 __extension__ typedef int __key_t;
4638 __extension__ typedef int __clockid_t;
4639 __extension__ typedef void * __timer_t;
4640 __extension__ typedef long int __blksize_t;
4641 __extension__ typedef long int __blkcnt_t;
4642 __extension__ typedef __quad_t __blkcnt64_t;
4643 __extension__ typedef unsigned long int __fsblkcnt_t;
4644 __extension__ typedef __u_quad_t __fsblkcnt64_t;
4645 __extension__ typedef unsigned long int __fsfilcnt_t;
4646 __extension__ typedef __u_quad_t __fsfilcnt64_t;
4647 __extension__ typedef int __ssize_t;
4648 typedef __off64_t __loff_t;
4649 typedef __quad_t *__qaddr_t;
4650 typedef char *__caddr_t;
4651 __extension__ typedef int __intptr_t;
4652 __extension__ typedef unsigned int __socklen_t;
4653 enum
4654 {
4655   _ISupper = (1 << (0)),
4656   _ISlower = (1 << (1)),
4657   _ISalpha = (1 << (2)),
4658   _ISdigit = (1 << (3)),
4659   _ISxdigit = (1 << (4)),
4660   _ISspace = (1 << (5)),
4661   _ISprint = (1 << (6)),
4662   _ISgraph = (1 << (7)),
4663   _ISblank = (1 << (8)),
4664   _IScntrl = (1 << (9)),
4665   _ISpunct = (1 << (10)),
4666   _ISalnum = (1 << (11))
4667 };
4668 extern __const unsigned short int **__ctype_b_loc (void)
4669      __attribute__ ((__nothrow__)) __attribute__ ((__const));
4670 extern __const __int32_t **__ctype_tolower_loc (void)
4671      __attribute__ ((__nothrow__)) __attribute__ ((__const));
4672 extern __const __int32_t **__ctype_toupper_loc (void)
4673      __attribute__ ((__nothrow__)) __attribute__ ((__const));
4674 extern int isalnum (int) __attribute__ ((__nothrow__));
4675 extern int isalpha (int) __attribute__ ((__nothrow__));
4676 extern int iscntrl (int) __attribute__ ((__nothrow__));
4677 extern int isdigit (int) __attribute__ ((__nothrow__));
4678 extern int islower (int) __attribute__ ((__nothrow__));
4679 extern int isgraph (int) __attribute__ ((__nothrow__));
4680 extern int isprint (int) __attribute__ ((__nothrow__));
4681 extern int ispunct (int) __attribute__ ((__nothrow__));
4682 extern int isspace (int) __attribute__ ((__nothrow__));
4683 extern int isupper (int) __attribute__ ((__nothrow__));
4684 extern int isxdigit (int) __attribute__ ((__nothrow__));
4685 extern int tolower (int __c) __attribute__ ((__nothrow__));
4686 extern int toupper (int __c) __attribute__ ((__nothrow__));
4687 extern int isblank (int) __attribute__ ((__nothrow__));
4688 extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__));
4689 extern int isascii (int __c) __attribute__ ((__nothrow__));
4690 extern int toascii (int __c) __attribute__ ((__nothrow__));
4691 extern int _toupper (int) __attribute__ ((__nothrow__));
4692 extern int _tolower (int) __attribute__ ((__nothrow__));
4693 extern __inline __attribute__ ((__gnu_inline__)) int
4694 __attribute__ ((__nothrow__)) tolower (int __c)
4695 {
4696   return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
4697 }
4698 extern __inline __attribute__ ((__gnu_inline__)) int
4699 __attribute__ ((__nothrow__)) toupper (int __c)
4700 {
4701   return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
4702 }
4703 typedef struct __locale_struct
4704 {
4705   struct __locale_data *__locales[13];
4706   const unsigned short int *__ctype_b;
4707   const int *__ctype_tolower;
4708   const int *__ctype_toupper;
4709   const char *__names[13];
4710 } *__locale_t;
4711 typedef __locale_t locale_t;
4712 extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__));
4713 extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__));
4714 extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__));
4715 extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
4716 extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__));
4717 extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__));
4718 extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__));
4719 extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__));
4720 extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__));
4721 extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__));
4722 extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
4723 extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__));
4724 extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
4725 extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
4726 extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
4727 extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
4728 typedef float float_t;
4729 typedef double double_t;
4730 extern double acos (double __x) __attribute__ ((__nothrow__)); extern double __acos (double __x) __attribute__ ((__nothrow__));
4731 extern double asin (double __x) __attribute__ ((__nothrow__)); extern double __asin (double __x) __attribute__ ((__nothrow__));
4732 extern double atan (double __x) __attribute__ ((__nothrow__)); extern double __atan (double __x) __attribute__ ((__nothrow__));
4733 extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__));
4734 extern double cos (double __x) __attribute__ ((__nothrow__)); extern double __cos (double __x) __attribute__ ((__nothrow__));
4735 extern double sin (double __x) __attribute__ ((__nothrow__)); extern double __sin (double __x) __attribute__ ((__nothrow__));
4736 extern double tan (double __x) __attribute__ ((__nothrow__)); extern double __tan (double __x) __attribute__ ((__nothrow__));
4737 extern double cosh (double __x) __attribute__ ((__nothrow__)); extern double __cosh (double __x) __attribute__ ((__nothrow__));
4738 extern double sinh (double __x) __attribute__ ((__nothrow__)); extern double __sinh (double __x) __attribute__ ((__nothrow__));
4739 extern double tanh (double __x) __attribute__ ((__nothrow__)); extern double __tanh (double __x) __attribute__ ((__nothrow__));
4740 extern void sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__)); extern void __sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__))
4741                                                            ;
4742 extern double acosh (double __x) __attribute__ ((__nothrow__)); extern double __acosh (double __x) __attribute__ ((__nothrow__));
4743 extern double asinh (double __x) __attribute__ ((__nothrow__)); extern double __asinh (double __x) __attribute__ ((__nothrow__));
4744 extern double atanh (double __x) __attribute__ ((__nothrow__)); extern double __atanh (double __x) __attribute__ ((__nothrow__));
4745 extern double exp (double __x) __attribute__ ((__nothrow__)); extern double __exp (double __x) __attribute__ ((__nothrow__));
4746 extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__));
4747 extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__));
4748 extern double log (double __x) __attribute__ ((__nothrow__)); extern double __log (double __x) __attribute__ ((__nothrow__));
4749 extern double log10 (double __x) __attribute__ ((__nothrow__)); extern double __log10 (double __x) __attribute__ ((__nothrow__));
4750 extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__));
4751 extern double exp10 (double __x) __attribute__ ((__nothrow__)); extern double __exp10 (double __x) __attribute__ ((__nothrow__));
4752 extern double pow10 (double __x) __attribute__ ((__nothrow__)); extern double __pow10 (double __x) __attribute__ ((__nothrow__));
4753 extern double expm1 (double __x) __attribute__ ((__nothrow__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__));
4754 extern double log1p (double __x) __attribute__ ((__nothrow__)); extern double __log1p (double __x) __attribute__ ((__nothrow__));
4755 extern double logb (double __x) __attribute__ ((__nothrow__)); extern double __logb (double __x) __attribute__ ((__nothrow__));
4756 extern double exp2 (double __x) __attribute__ ((__nothrow__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__));
4757 extern double log2 (double __x) __attribute__ ((__nothrow__)); extern double __log2 (double __x) __attribute__ ((__nothrow__));
4758 extern double pow (double __x, double __y) __attribute__ ((__nothrow__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__));
4759 extern double sqrt (double __x) __attribute__ ((__nothrow__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__));
4760 extern double hypot (double __x, double __y) __attribute__ ((__nothrow__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__));
4761 extern double cbrt (double __x) __attribute__ ((__nothrow__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__));
4762 extern double ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4763 extern double fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4764 extern double floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4765 extern double fmod (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__));
4766 extern int __isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4767 extern int __finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4768 extern int isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4769 extern int finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4770 extern double drem (double __x, double __y) __attribute__ ((__nothrow__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__));
4771 extern double significand (double __x) __attribute__ ((__nothrow__)); extern double __significand (double __x) __attribute__ ((__nothrow__));
4772 extern double copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4773 extern double nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4774 extern int __isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4775 extern int isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4776 extern double j0 (double) __attribute__ ((__nothrow__)); extern double __j0 (double) __attribute__ ((__nothrow__));
4777 extern double j1 (double) __attribute__ ((__nothrow__)); extern double __j1 (double) __attribute__ ((__nothrow__));
4778 extern double jn (int, double) __attribute__ ((__nothrow__)); extern double __jn (int, double) __attribute__ ((__nothrow__));
4779 extern double y0 (double) __attribute__ ((__nothrow__)); extern double __y0 (double) __attribute__ ((__nothrow__));
4780 extern double y1 (double) __attribute__ ((__nothrow__)); extern double __y1 (double) __attribute__ ((__nothrow__));
4781 extern double yn (int, double) __attribute__ ((__nothrow__)); extern double __yn (int, double) __attribute__ ((__nothrow__));
4782 extern double erf (double) __attribute__ ((__nothrow__)); extern double __erf (double) __attribute__ ((__nothrow__));
4783 extern double erfc (double) __attribute__ ((__nothrow__)); extern double __erfc (double) __attribute__ ((__nothrow__));
4784 extern double lgamma (double) __attribute__ ((__nothrow__)); extern double __lgamma (double) __attribute__ ((__nothrow__));
4785 extern double tgamma (double) __attribute__ ((__nothrow__)); extern double __tgamma (double) __attribute__ ((__nothrow__));
4786 extern double gamma (double) __attribute__ ((__nothrow__)); extern double __gamma (double) __attribute__ ((__nothrow__));
4787 extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__));
4788 extern double rint (double __x) __attribute__ ((__nothrow__)); extern double __rint (double __x) __attribute__ ((__nothrow__));
4789 extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4790 extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4791 extern double remainder (double __x, double __y) __attribute__ ((__nothrow__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__));
4792 extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__));
4793 extern int ilogb (double __x) __attribute__ ((__nothrow__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__));
4794 extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__));
4795 extern double nearbyint (double __x) __attribute__ ((__nothrow__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__));
4796 extern double round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4797 extern double trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4798 extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__));
4799 extern long int lrint (double __x) __attribute__ ((__nothrow__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__));
4800 extern long long int llrint (double __x) __attribute__ ((__nothrow__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__));
4801 extern long int lround (double __x) __attribute__ ((__nothrow__)); extern long int __lround (double __x) __attribute__ ((__nothrow__));
4802 extern long long int llround (double __x) __attribute__ ((__nothrow__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__));
4803 extern double fdim (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__));
4804 extern double fmax (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__));
4805 extern double fmin (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__));
4806 extern int __fpclassify (double __value) __attribute__ ((__nothrow__))
4807      __attribute__ ((__const__));
4808 extern int __signbit (double __value) __attribute__ ((__nothrow__))
4809      __attribute__ ((__const__));
4810 extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__));
4811 extern double scalb (double __x, double __n) __attribute__ ((__nothrow__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__));
4812 extern float acosf (float __x) __attribute__ ((__nothrow__)); extern float __acosf (float __x) __attribute__ ((__nothrow__));
4813 extern float asinf (float __x) __attribute__ ((__nothrow__)); extern float __asinf (float __x) __attribute__ ((__nothrow__));
4814 extern float atanf (float __x) __attribute__ ((__nothrow__)); extern float __atanf (float __x) __attribute__ ((__nothrow__));
4815 extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__));
4816 extern float cosf (float __x) __attribute__ ((__nothrow__)); extern float __cosf (float __x) __attribute__ ((__nothrow__));
4817 extern float sinf (float __x) __attribute__ ((__nothrow__)); extern float __sinf (float __x) __attribute__ ((__nothrow__));
4818 extern float tanf (float __x) __attribute__ ((__nothrow__)); extern float __tanf (float __x) __attribute__ ((__nothrow__));
4819 extern float coshf (float __x) __attribute__ ((__nothrow__)); extern float __coshf (float __x) __attribute__ ((__nothrow__));
4820 extern float sinhf (float __x) __attribute__ ((__nothrow__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__));
4821 extern float tanhf (float __x) __attribute__ ((__nothrow__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__));
4822 extern void
4823  sincosf
4824  (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__)); extern void
4825  __sincosf
4826  (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__))
4827                                                            ;
4828 extern float acoshf (float __x) __attribute__ ((__nothrow__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__));
4829 extern float asinhf (float __x) __attribute__ ((__nothrow__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__));
4830 extern float atanhf (float __x) __attribute__ ((__nothrow__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__));
4831 extern float expf (float __x) __attribute__ ((__nothrow__)); extern float __expf (float __x) __attribute__ ((__nothrow__));
4832 extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__));
4833 extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__));
4834 extern float logf (float __x) __attribute__ ((__nothrow__)); extern float __logf (float __x) __attribute__ ((__nothrow__));
4835 extern float log10f (float __x) __attribute__ ((__nothrow__)); extern float __log10f (float __x) __attribute__ ((__nothrow__));
4836 extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__));
4837 extern float exp10f (float __x) __attribute__ ((__nothrow__)); extern float __exp10f (float __x) __attribute__ ((__nothrow__));
4838 extern float pow10f (float __x) __attribute__ ((__nothrow__)); extern float __pow10f (float __x) __attribute__ ((__nothrow__));
4839 extern float expm1f (float __x) __attribute__ ((__nothrow__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__));
4840 extern float log1pf (float __x) __attribute__ ((__nothrow__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__));
4841 extern float logbf (float __x) __attribute__ ((__nothrow__)); extern float __logbf (float __x) __attribute__ ((__nothrow__));
4842 extern float exp2f (float __x) __attribute__ ((__nothrow__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__));
4843 extern float log2f (float __x) __attribute__ ((__nothrow__)); extern float __log2f (float __x) __attribute__ ((__nothrow__));
4844 extern float powf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__));
4845 extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__));
4846 extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__));
4847 extern float cbrtf (float __x) __attribute__ ((__nothrow__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__));
4848 extern float ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4849 extern float fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4850 extern float floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4851 extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__));
4852 extern int __isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4853 extern int __finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4854 extern int isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4855 extern int finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4856 extern float dremf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__));
4857 extern float significandf (float __x) __attribute__ ((__nothrow__)); extern float __significandf (float __x) __attribute__ ((__nothrow__));
4858 extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4859 extern float nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4860 extern int __isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4861 extern int isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4862 extern float j0f (float) __attribute__ ((__nothrow__)); extern float __j0f (float) __attribute__ ((__nothrow__));
4863 extern float j1f (float) __attribute__ ((__nothrow__)); extern float __j1f (float) __attribute__ ((__nothrow__));
4864 extern float jnf (int, float) __attribute__ ((__nothrow__)); extern float __jnf (int, float) __attribute__ ((__nothrow__));
4865 extern float y0f (float) __attribute__ ((__nothrow__)); extern float __y0f (float) __attribute__ ((__nothrow__));
4866 extern float y1f (float) __attribute__ ((__nothrow__)); extern float __y1f (float) __attribute__ ((__nothrow__));
4867 extern float ynf (int, float) __attribute__ ((__nothrow__)); extern float __ynf (int, float) __attribute__ ((__nothrow__));
4868 extern float erff (float) __attribute__ ((__nothrow__)); extern float __erff (float) __attribute__ ((__nothrow__));
4869 extern float erfcf (float) __attribute__ ((__nothrow__)); extern float __erfcf (float) __attribute__ ((__nothrow__));
4870 extern float lgammaf (float) __attribute__ ((__nothrow__)); extern float __lgammaf (float) __attribute__ ((__nothrow__));
4871 extern float tgammaf (float) __attribute__ ((__nothrow__)); extern float __tgammaf (float) __attribute__ ((__nothrow__));
4872 extern float gammaf (float) __attribute__ ((__nothrow__)); extern float __gammaf (float) __attribute__ ((__nothrow__));
4873 extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__));
4874 extern float rintf (float __x) __attribute__ ((__nothrow__)); extern float __rintf (float __x) __attribute__ ((__nothrow__));
4875 extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4876 extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4877 extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__));
4878 extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__));
4879 extern int ilogbf (float __x) __attribute__ ((__nothrow__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__));
4880 extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__));
4881 extern float nearbyintf (float __x) __attribute__ ((__nothrow__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__));
4882 extern float roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4883 extern float truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4884 extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__));
4885 extern long int lrintf (float __x) __attribute__ ((__nothrow__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__));
4886 extern long long int llrintf (float __x) __attribute__ ((__nothrow__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__));
4887 extern long int lroundf (float __x) __attribute__ ((__nothrow__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__));
4888 extern long long int llroundf (float __x) __attribute__ ((__nothrow__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__));
4889 extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__));
4890 extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__));
4891 extern float fminf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__));
4892 extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__))
4893      __attribute__ ((__const__));
4894 extern int __signbitf (float __value) __attribute__ ((__nothrow__))
4895      __attribute__ ((__const__));
4896 extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__));
4897 extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__));
4898 extern long double acosl (long double __x) __attribute__ ((__nothrow__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__));
4899 extern long double asinl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__));
4900 extern long double atanl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__));
4901 extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__));
4902 extern long double cosl (long double __x) __attribute__ ((__nothrow__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__));
4903 extern long double sinl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__));
4904 extern long double tanl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__));
4905 extern long double coshl (long double __x) __attribute__ ((__nothrow__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__));
4906 extern long double sinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__));
4907 extern long double tanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__));
4908 extern void
4909  sincosl
4910  (long double __x, long double *__sinx, long double *__cosx) __attribute__ ((__nothrow__)); extern void
4911  __sincosl
4912  (long double __x, long double *__sinx, long double *__cosx) __attribute__ ((__nothrow__))
4913                                                            ;
4914 extern long double acoshl (long double __x) __attribute__ ((__nothrow__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__));
4915 extern long double asinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__));
4916 extern long double atanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__));
4917 extern long double expl (long double __x) __attribute__ ((__nothrow__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__));
4918 extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__));
4919 extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__));
4920 extern long double logl (long double __x) __attribute__ ((__nothrow__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__));
4921 extern long double log10l (long double __x) __attribute__ ((__nothrow__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__));
4922 extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__));
4923 extern long double exp10l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp10l (long double __x) __attribute__ ((__nothrow__));
4924 extern long double pow10l (long double __x) __attribute__ ((__nothrow__)); extern long double __pow10l (long double __x) __attribute__ ((__nothrow__));
4925 extern long double expm1l (long double __x) __attribute__ ((__nothrow__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__));
4926 extern long double log1pl (long double __x) __attribute__ ((__nothrow__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__));
4927 extern long double logbl (long double __x) __attribute__ ((__nothrow__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__));
4928 extern long double exp2l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__));
4929 extern long double log2l (long double __x) __attribute__ ((__nothrow__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__));
4930 extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__));
4931 extern long double sqrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__));
4932 extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__));
4933 extern long double cbrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__));
4934 extern long double ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4935 extern long double fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4936 extern long double floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4937 extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__));
4938 extern int __isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4939 extern int __finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4940 extern int isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4941 extern int finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4942 extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__));
4943 extern long double significandl (long double __x) __attribute__ ((__nothrow__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__));
4944 extern long double copysignl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4945 extern long double nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4946 extern int __isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4947 extern int isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4948 extern long double j0l (long double) __attribute__ ((__nothrow__)); extern long double __j0l (long double) __attribute__ ((__nothrow__));
4949 extern long double j1l (long double) __attribute__ ((__nothrow__)); extern long double __j1l (long double) __attribute__ ((__nothrow__));
4950 extern long double jnl (int, long double) __attribute__ ((__nothrow__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__));
4951 extern long double y0l (long double) __attribute__ ((__nothrow__)); extern long double __y0l (long double) __attribute__ ((__nothrow__));
4952 extern long double y1l (long double) __attribute__ ((__nothrow__)); extern long double __y1l (long double) __attribute__ ((__nothrow__));
4953 extern long double ynl (int, long double) __attribute__ ((__nothrow__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__));
4954 extern long double erfl (long double) __attribute__ ((__nothrow__)); extern long double __erfl (long double) __attribute__ ((__nothrow__));
4955 extern long double erfcl (long double) __attribute__ ((__nothrow__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__));
4956 extern long double lgammal (long double) __attribute__ ((__nothrow__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__));
4957 extern long double tgammal (long double) __attribute__ ((__nothrow__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__));
4958 extern long double gammal (long double) __attribute__ ((__nothrow__)); extern long double __gammal (long double) __attribute__ ((__nothrow__));
4959 extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__));
4960 extern long double rintl (long double __x) __attribute__ ((__nothrow__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__));
4961 extern long double nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4962 extern long double nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4963 extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__));
4964 extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__));
4965 extern int ilogbl (long double __x) __attribute__ ((__nothrow__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__));
4966 extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__));
4967 extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__));
4968 extern long double roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4969 extern long double truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4970 extern long double remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__)); extern long double __remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__));
4971 extern long int lrintl (long double __x) __attribute__ ((__nothrow__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__));
4972 extern long long int llrintl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__));
4973 extern long int lroundl (long double __x) __attribute__ ((__nothrow__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__));
4974 extern long long int llroundl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__));
4975 extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__));
4976 extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__));
4977 extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__));
4978 extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__))
4979      __attribute__ ((__const__));
4980 extern int __signbitl (long double __value) __attribute__ ((__nothrow__))
4981      __attribute__ ((__const__));
4982 extern long double fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__)); extern long double __fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__));
4983 extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__));
4984 extern int signgam;
4985 enum
4986   {
4987     FP_NAN,
4988     FP_INFINITE,
4989     FP_ZERO,
4990     FP_SUBNORMAL,
4991     FP_NORMAL
4992   };
4993 typedef enum
4994 {
4995   _IEEE_ = -1,
4996   _SVID_,
4997   _XOPEN_,
4998   _POSIX_,
4999   _ISOC_
5000 } _LIB_VERSION_TYPE;
5001 extern _LIB_VERSION_TYPE _LIB_VERSION;
5002 struct exception
5003   {
5004     int type;
5005     char *name;
5006     double arg1;
5007     double arg2;
5008     double retval;
5009   };
5010 extern int matherr (struct exception *__exc);
5011 union wait
5012   {
5013     int w_status;
5014     struct
5015       {
5016  unsigned int:16;
5017  unsigned int __w_retcode:8;
5018  unsigned int __w_coredump:1;
5019  unsigned int __w_termsig:7;
5020       } __wait_terminated;
5021     struct
5022       {
5023  unsigned int:16;
5024  unsigned int __w_stopsig:8;
5025  unsigned int __w_stopval:8;
5026       } __wait_stopped;
5027   };
5028 typedef union
5029   {
5030     union wait *__uptr;
5031     int *__iptr;
5032   } __WAIT_STATUS __attribute__ ((__transparent_union__));
5033 typedef struct
5034   {
5035     int quot;
5036     int rem;
5037   } div_t;
5038 typedef struct
5039   {
5040     long int quot;
5041     long int rem;
5042   } ldiv_t;
5043 __extension__ typedef struct
5044   {
5045     long long int quot;
5046     long long int rem;
5047   } lldiv_t;
5048 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5049 extern double atof (__const char *__nptr)
5050      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5051 extern int atoi (__const char *__nptr)
5052      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5053 extern long int atol (__const char *__nptr)
5054      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5055 __extension__ extern long long int atoll (__const char *__nptr)
5056      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5057 extern double strtod (__const char *__restrict __nptr,
5058         char **__restrict __endptr)
5059      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5060 extern float strtof (__const char *__restrict __nptr,
5061        char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5062 extern long double strtold (__const char *__restrict __nptr,
5063        char **__restrict __endptr)
5064      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5065 extern long int strtol (__const char *__restrict __nptr,
5066    char **__restrict __endptr, int __base)
5067      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5068 extern unsigned long int strtoul (__const char *__restrict __nptr,
5069       char **__restrict __endptr, int __base)
5070      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5071 __extension__
5072 extern long long int strtoq (__const char *__restrict __nptr,
5073         char **__restrict __endptr, int __base)
5074      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5075 __extension__
5076 extern unsigned long long int strtouq (__const char *__restrict __nptr,
5077            char **__restrict __endptr, int __base)
5078      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5079 __extension__
5080 extern long long int strtoll (__const char *__restrict __nptr,
5081          char **__restrict __endptr, int __base)
5082      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5083 __extension__
5084 extern unsigned long long int strtoull (__const char *__restrict __nptr,
5085      char **__restrict __endptr, int __base)
5086      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5087 extern long int strtol_l (__const char *__restrict __nptr,
5088      char **__restrict __endptr, int __base,
5089      __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
5090 extern unsigned long int strtoul_l (__const char *__restrict __nptr,
5091         char **__restrict __endptr,
5092         int __base, __locale_t __loc)
5093      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
5094 __extension__
5095 extern long long int strtoll_l (__const char *__restrict __nptr,
5096     char **__restrict __endptr, int __base,
5097     __locale_t __loc)
5098      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
5099 __extension__
5100 extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
5101        char **__restrict __endptr,
5102        int __base, __locale_t __loc)
5103      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
5104 extern double strtod_l (__const char *__restrict __nptr,
5105    char **__restrict __endptr, __locale_t __loc)
5106      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
5107 extern float strtof_l (__const char *__restrict __nptr,
5108          char **__restrict __endptr, __locale_t __loc)
5109      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
5110 extern long double strtold_l (__const char *__restrict __nptr,
5111          char **__restrict __endptr,
5112          __locale_t __loc)
5113      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
5114 extern __inline __attribute__ ((__gnu_inline__)) double
5115 __attribute__ ((__nothrow__)) atof (__const char *__nptr)
5116 {
5117   return strtod (__nptr, (char **) ((void *)0));
5118 }
5119 extern __inline __attribute__ ((__gnu_inline__)) int
5120 __attribute__ ((__nothrow__)) atoi (__const char *__nptr)
5121 {
5122   return (int) strtol (__nptr, (char **) ((void *)0), 10);
5123 }
5124 extern __inline __attribute__ ((__gnu_inline__)) long int
5125 __attribute__ ((__nothrow__)) atol (__const char *__nptr)
5126 {
5127   return strtol (__nptr, (char **) ((void *)0), 10);
5128 }
5129 __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
5130 __attribute__ ((__nothrow__)) atoll (__const char *__nptr)
5131 {
5132   return strtoll (__nptr, (char **) ((void *)0), 10);
5133 }
5134 extern char *l64a (long int __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5135 extern long int a64l (__const char *__s)
5136      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5137 typedef __u_char u_char;
5138 typedef __u_short u_short;
5139 typedef __u_int u_int;
5140 typedef __u_long u_long;
5141 typedef __quad_t quad_t;
5142 typedef __u_quad_t u_quad_t;
5143 typedef __fsid_t fsid_t;
5144 typedef __loff_t loff_t;
5145 typedef __ino_t ino_t;
5146 typedef __ino64_t ino64_t;
5147 typedef __dev_t dev_t;
5148 typedef __gid_t gid_t;
5149 typedef __mode_t mode_t;
5150 typedef __nlink_t nlink_t;
5151 typedef __uid_t uid_t;
5152 typedef __off_t off_t;
5153 typedef __off64_t off64_t;
5154 typedef __pid_t pid_t;
5155 typedef __id_t id_t;
5156 typedef __ssize_t ssize_t;
5157 typedef __daddr_t daddr_t;
5158 typedef __caddr_t caddr_t;
5159 typedef __key_t key_t;
5160 typedef __clock_t clock_t;
5161 typedef __time_t time_t;
5162 typedef __clockid_t clockid_t;
5163 typedef __timer_t timer_t;
5164 typedef __useconds_t useconds_t;
5165 typedef __suseconds_t suseconds_t;
5166 typedef unsigned long int ulong;
5167 typedef unsigned short int ushort;
5168 typedef unsigned int uint;
5169 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
5170 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
5171 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
5172 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
5173 typedef int register_t __attribute__ ((__mode__ (__word__)));
5174 typedef int __sig_atomic_t;
5175 typedef struct
5176   {
5177     unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
5178   } __sigset_t;
5179 typedef __sigset_t sigset_t;
5180 struct timespec
5181   {
5182     __time_t tv_sec;
5183     long int tv_nsec;
5184   };
5185 struct timeval
5186   {
5187     __time_t tv_sec;
5188     __suseconds_t tv_usec;
5189   };
5190 typedef long int __fd_mask;
5191 typedef struct
5192   {
5193     __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
5194   } fd_set;
5195 typedef __fd_mask fd_mask;
5196 extern int select (int __nfds, fd_set *__restrict __readfds,
5197      fd_set *__restrict __writefds,
5198      fd_set *__restrict __exceptfds,
5199      struct timeval *__restrict __timeout);
5200 extern int pselect (int __nfds, fd_set *__restrict __readfds,
5201       fd_set *__restrict __writefds,
5202       fd_set *__restrict __exceptfds,
5203       const struct timespec *__restrict __timeout,
5204       const __sigset_t *__restrict __sigmask);
5205 __extension__
5206 extern unsigned int gnu_dev_major (unsigned long long int __dev)
5207      __attribute__ ((__nothrow__));
5208 __extension__
5209 extern unsigned int gnu_dev_minor (unsigned long long int __dev)
5210      __attribute__ ((__nothrow__));
5211 __extension__
5212 extern unsigned long long int gnu_dev_makedev (unsigned int __major,
5213             unsigned int __minor)
5214      __attribute__ ((__nothrow__));
5215 __extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned int
5216 __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
5217 {
5218   return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
5219 }
5220 __extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned int
5221 __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
5222 {
5223   return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
5224 }
5225 __extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned long long int
5226 __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
5227 {
5228   return ((__minor & 0xff) | ((__major & 0xfff) << 8)
5229    | (((unsigned long long int) (__minor & ~0xff)) << 12)
5230    | (((unsigned long long int) (__major & ~0xfff)) << 32));
5231 }
5232 typedef __blksize_t blksize_t;
5233 typedef __blkcnt_t blkcnt_t;
5234 typedef __fsblkcnt_t fsblkcnt_t;
5235 typedef __fsfilcnt_t fsfilcnt_t;
5236 typedef __blkcnt64_t blkcnt64_t;
5237 typedef __fsblkcnt64_t fsblkcnt64_t;
5238 typedef __fsfilcnt64_t fsfilcnt64_t;
5239 typedef unsigned long int pthread_t;
5240 typedef union
5241 {
5242   char __size[36];
5243   long int __align;
5244 } pthread_attr_t;
5245 typedef struct __pthread_internal_slist
5246 {
5247   struct __pthread_internal_slist *__next;
5248 } __pthread_slist_t;
5249 typedef union
5250 {
5251   struct __pthread_mutex_s
5252   {
5253     int __lock __attribute__ ((aligned(16)));
5254     unsigned int __count;
5255     int __owner;
5256     int __kind;
5257     int __compat_padding[4];
5258     unsigned int __nusers;
5259     __extension__ union
5260     {
5261       int __spins;
5262       __pthread_slist_t __list;
5263     };
5264     int __reserved1;
5265     int __reserved2;
5266   } __data;
5267   char __size[48];
5268   long int __align;
5269 } pthread_mutex_t;
5270 typedef union
5271 {
5272   char __size[4];
5273   long int __align;
5274 } pthread_mutexattr_t;
5275 typedef union
5276 {
5277   struct
5278   {
5279     int __lock __attribute__ ((aligned(16)));
5280     int __initializer;
5281     unsigned int __futex;
5282     void *__mutex;
5283     __extension__ unsigned long long int __total_seq;
5284     __extension__ unsigned long long int __wakeup_seq;
5285     __extension__ unsigned long long int __woken_seq;
5286     unsigned int __nwaiters;
5287     unsigned int __broadcast_seq;
5288   } __data;
5289   char __size[48];
5290   __extension__ long long int __align;
5291 } pthread_cond_t;
5292 typedef union
5293 {
5294   char __size[4];
5295   long int __align;
5296 } pthread_condattr_t;
5297 typedef unsigned int pthread_key_t;
5298 typedef int pthread_once_t;
5299 typedef union
5300 {
5301   struct
5302   {
5303     int __compat_padding[4] __attribute__ ((aligned(16)));
5304     int __lock;
5305     unsigned int __nr_readers;
5306     unsigned int __readers_wakeup;
5307     unsigned int __writer_wakeup;
5308     unsigned int __nr_readers_queued;
5309     unsigned int __nr_writers_queued;
5310     int __writer;
5311     int __reserved1;
5312     unsigned char __pad2;
5313     unsigned char __pad1;
5314     unsigned char __shared;
5315     unsigned char __flags;
5316     int __reserved2;
5317     int __reserved3;
5318     int __reserved4;
5319   } __data;
5320   char __size[64];
5321   long int __align;
5322 } pthread_rwlock_t;
5323 typedef union
5324 {
5325   char __size[8];
5326   long int __align;
5327 } pthread_rwlockattr_t;
5328 typedef volatile int pthread_spinlock_t;
5329 typedef union
5330 {
5331   char __size[48];
5332   long int __align;
5333 } pthread_barrier_t;
5334 typedef union
5335 {
5336   char __size[4];
5337   int __align;
5338 } pthread_barrierattr_t;
5339 extern long int random (void) __attribute__ ((__nothrow__));
5340 extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
5341 extern char *initstate (unsigned int __seed, char *__statebuf,
5342    size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5343 extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5344 struct random_data
5345   {
5346     int32_t *fptr;
5347     int32_t *rptr;
5348     int32_t *state;
5349     int rand_type;
5350     int rand_deg;
5351     int rand_sep;
5352     int32_t *end_ptr;
5353   };
5354 extern int random_r (struct random_data *__restrict __buf,
5355        int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5356 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
5357      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5358 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
5359    size_t __statelen,
5360    struct random_data *__restrict __buf)
5361      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
5362 extern int setstate_r (char *__restrict __statebuf,
5363          struct random_data *__restrict __buf)
5364      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5365 extern int rand (void) __attribute__ ((__nothrow__));
5366 extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
5367 extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
5368 extern double drand48 (void) __attribute__ ((__nothrow__));
5369 extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5370 extern long int lrand48 (void) __attribute__ ((__nothrow__));
5371 extern long int nrand48 (unsigned short int __xsubi[3])
5372      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5373 extern long int mrand48 (void) __attribute__ ((__nothrow__));
5374 extern long int jrand48 (unsigned short int __xsubi[3])
5375      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5376 extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
5377 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
5378      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5379 extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5380 struct drand48_data
5381   {
5382     unsigned short int __x[3];
5383     unsigned short int __old_x[3];
5384     unsigned short int __c;
5385     unsigned short int __init;
5386     unsigned long long int __a;
5387   };
5388 extern int drand48_r (struct drand48_data *__restrict __buffer,
5389         double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5390 extern int erand48_r (unsigned short int __xsubi[3],
5391         struct drand48_data *__restrict __buffer,
5392         double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5393 extern int lrand48_r (struct drand48_data *__restrict __buffer,
5394         long int *__restrict __result)
5395      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5396 extern int nrand48_r (unsigned short int __xsubi[3],
5397         struct drand48_data *__restrict __buffer,
5398         long int *__restrict __result)
5399      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5400 extern int mrand48_r (struct drand48_data *__restrict __buffer,
5401         long int *__restrict __result)
5402      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5403 extern int jrand48_r (unsigned short int __xsubi[3],
5404         struct drand48_data *__restrict __buffer,
5405         long int *__restrict __result)
5406      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5407 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
5408      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5409 extern int seed48_r (unsigned short int __seed16v[3],
5410        struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5411 extern int lcong48_r (unsigned short int __param[7],
5412         struct drand48_data *__buffer)
5413      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5414 extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
5415 extern void *calloc (size_t __nmemb, size_t __size)
5416      __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
5417 extern void *realloc (void *__ptr, size_t __size)
5418      __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5419 extern void free (void *__ptr) __attribute__ ((__nothrow__));
5420 extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
5421 extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
5422 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
5423 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
5424      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5425 extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
5426 extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5427 extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5428 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
5429      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5430 extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
5431 extern void quick_exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
5432 extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
5433 extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5434 extern char *__secure_getenv (__const char *__name)
5435      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5436 extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5437 extern int setenv (__const char *__name, __const char *__value, int __replace)
5438      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5439 extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5440 extern int clearenv (void) __attribute__ ((__nothrow__));
5441 extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5442 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5443 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5444 extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5445 extern int mkstemps64 (char *__template, int __suffixlen)
5446      __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5447 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5448 extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5449 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5450 extern int mkostemps (char *__template, int __suffixlen, int __flags)
5451      __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5452 extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
5453      __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5454 extern int system (__const char *__command) __attribute__ ((__warn_unused_result__));
5455 extern char *canonicalize_file_name (__const char *__name)
5456      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5457 extern char *realpath (__const char *__restrict __name,
5458          char *__restrict __resolved) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5459 typedef int (*__compar_fn_t) (__const void *, __const void *);
5460 typedef __compar_fn_t comparison_fn_t;
5461 typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *);
5462 extern void *bsearch (__const void *__key, __const void *__base,
5463         size_t __nmemb, size_t __size, __compar_fn_t __compar)
5464      __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__));
5465 extern void qsort (void *__base, size_t __nmemb, size_t __size,
5466      __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
5467 extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
5468        __compar_d_fn_t __compar, void *__arg)
5469   __attribute__ ((__nonnull__ (1, 4)));
5470 extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
5471 extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
5472 __extension__ extern long long int llabs (long long int __x)
5473      __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
5474 extern div_t div (int __numer, int __denom)
5475      __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
5476 extern ldiv_t ldiv (long int __numer, long int __denom)
5477      __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
5478 __extension__ extern lldiv_t lldiv (long long int __numer,
5479         long long int __denom)
5480      __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
5481 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
5482      int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
5483 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
5484      int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
5485 extern char *gcvt (double __value, int __ndigit, char *__buf)
5486      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
5487 extern char *qecvt (long double __value, int __ndigit,
5488       int *__restrict __decpt, int *__restrict __sign)
5489      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
5490 extern char *qfcvt (long double __value, int __ndigit,
5491       int *__restrict __decpt, int *__restrict __sign)
5492      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
5493 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
5494      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
5495 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
5496      int *__restrict __sign, char *__restrict __buf,
5497      size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
5498 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
5499      int *__restrict __sign, char *__restrict __buf,
5500      size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
5501 extern int qecvt_r (long double __value, int __ndigit,
5502       int *__restrict __decpt, int *__restrict __sign,
5503       char *__restrict __buf, size_t __len)
5504      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
5505 extern int qfcvt_r (long double __value, int __ndigit,
5506       int *__restrict __decpt, int *__restrict __sign,
5507       char *__restrict __buf, size_t __len)
5508      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
5509 extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5510 extern int mbtowc (wchar_t *__restrict __pwc,
5511      __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5512 extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5513 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
5514    __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
5515 extern size_t wcstombs (char *__restrict __s,
5516    __const wchar_t *__restrict __pwcs, size_t __n)
5517      __attribute__ ((__nothrow__));
5518 extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5519 extern int getsubopt (char **__restrict __optionp,
5520         char *__const *__restrict __tokens,
5521         char **__restrict __valuep)
5522      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__));
5523 extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5524 extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__));
5525 extern int grantpt (int __fd) __attribute__ ((__nothrow__));
5526 extern int unlockpt (int __fd) __attribute__ ((__nothrow__));
5527 extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5528 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
5529      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5530 extern int getpt (void);
5531 extern int getloadavg (double __loadavg[], int __nelem)
5532      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5533 extern char *__realpath_chk (__const char *__restrict __name,
5534         char *__restrict __resolved,
5535         size_t __resolvedlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5536 extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__))
5537                                                  __attribute__ ((__warn_unused_result__));
5538 extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__))
5539                                                 __attribute__ ((__warn_unused_result__))
5540      __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer")))
5541                                       ;
5542 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
5543 __attribute__ ((__nothrow__)) realpath (__const char *__restrict __name, char *__restrict __resolved)
5544 {
5545   if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1)
5546     {
5547       if (__builtin_object_size (__resolved, 2 > 1) < 4096)
5548  return __realpath_chk_warn (__name, __resolved, __builtin_object_size (__resolved, 2 > 1));
5549       return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1));
5550     }
5551   return __realpath_alias (__name, __resolved);
5552 }
5553 extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen,
5554        size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5555 extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__))
5556      __attribute__ ((__nonnull__ (2)));
5557 extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__))
5558      __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf")))
5559                    ;
5560 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
5561 __attribute__ ((__nothrow__)) ptsname_r (int __fd, char *__buf, size_t __buflen)
5562 {
5563   if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
5564     {
5565       if (!__builtin_constant_p (__buflen))
5566  return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
5567       if (__buflen > __builtin_object_size (__buf, 2 > 1))
5568  return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
5569     }
5570   return __ptsname_r_alias (__fd, __buf, __buflen);
5571 }
5572 extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen)
5573   __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5574 extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__))
5575               __attribute__ ((__warn_unused_result__));
5576 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) int
5577 __attribute__ ((__nothrow__)) wctomb (char *__s, wchar_t __wchar)
5578 {
5579   if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1))
5580     return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1));
5581   return __wctomb_alias (__s, __wchar);
5582 }
5583 extern size_t __mbstowcs_chk (wchar_t *__restrict __dst,
5584          __const char *__restrict __src,
5585          size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
5586 extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__))
5587                                   ;
5588 extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__mbstowcs_chk") __attribute__ ((__nothrow__))
5589      __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)")))
5590                         ;
5591 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t
5592 __attribute__ ((__nothrow__)) mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len)
5593 {
5594   if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
5595     {
5596       if (!__builtin_constant_p (__len))
5597  return __mbstowcs_chk (__dst, __src, __len,
5598           __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
5599       if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t))
5600  return __mbstowcs_chk_warn (__dst, __src, __len,
5601          __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
5602     }
5603   return __mbstowcs_alias (__dst, __src, __len);
5604 }
5605 extern size_t __wcstombs_chk (char *__restrict __dst,
5606          __const wchar_t *__restrict __src,
5607          size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
5608 extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__))
5609                                   ;
5610 extern size_t __wcstombs_chk_warn (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__wcstombs_chk") __attribute__ ((__nothrow__))
5611      __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len")));
5612 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t
5613 __attribute__ ((__nothrow__)) wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len)
5614 {
5615   if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
5616     {
5617       if (!__builtin_constant_p (__len))
5618  return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
5619       if (__len > __builtin_object_size (__dst, 2 > 1))
5620  return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
5621     }
5622   return __wcstombs_alias (__dst, __src, __len);
5623 }
5624 struct _IO_FILE;
5625 typedef struct _IO_FILE FILE;
5626 typedef struct _IO_FILE __FILE;
5627 typedef struct
5628 {
5629   int __count;
5630   union
5631   {
5632     unsigned int __wch;
5633     char __wchb[4];
5634   } __value;
5635 } __mbstate_t;
5636 typedef struct
5637 {
5638   __off_t __pos;
5639   __mbstate_t __state;
5640 } _G_fpos_t;
5641 typedef struct
5642 {
5643   __off64_t __pos;
5644   __mbstate_t __state;
5645 } _G_fpos64_t;
5646 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
5647 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
5648 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
5649 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
5650 typedef __builtin_va_list __gnuc_va_list;
5651 struct _IO_jump_t; struct _IO_FILE;
5652 typedef void _IO_lock_t;
5653 struct _IO_marker {
5654   struct _IO_marker *_next;
5655   struct _IO_FILE *_sbuf;
5656   int _pos;
5657 };
5658 enum __codecvt_result
5659 {
5660   __codecvt_ok,
5661   __codecvt_partial,
5662   __codecvt_error,
5663   __codecvt_noconv
5664 };
5665 struct _IO_FILE {
5666   int _flags;
5667   char* _IO_read_ptr;
5668   char* _IO_read_end;
5669   char* _IO_read_base;
5670   char* _IO_write_base;
5671   char* _IO_write_ptr;
5672   char* _IO_write_end;
5673   char* _IO_buf_base;
5674   char* _IO_buf_end;
5675   char *_IO_save_base;
5676   char *_IO_backup_base;
5677   char *_IO_save_end;
5678   struct _IO_marker *_markers;
5679   struct _IO_FILE *_chain;
5680   int _fileno;
5681   int _flags2;
5682   __off_t _old_offset;
5683   unsigned short _cur_column;
5684   signed char _vtable_offset;
5685   char _shortbuf[1];
5686   _IO_lock_t *_lock;
5687   __off64_t _offset;
5688   void *__pad1;
5689   void *__pad2;
5690   void *__pad3;
5691   void *__pad4;
5692   size_t __pad5;
5693   int _mode;
5694   char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
5695 };
5696 typedef struct _IO_FILE _IO_FILE;
5697 struct _IO_FILE_plus;
5698 extern struct _IO_FILE_plus _IO_2_1_stdin_;
5699 extern struct _IO_FILE_plus _IO_2_1_stdout_;
5700 extern struct _IO_FILE_plus _IO_2_1_stderr_;
5701 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
5702 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
5703      size_t __n);
5704 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
5705 typedef int __io_close_fn (void *__cookie);
5706 typedef __io_read_fn cookie_read_function_t;
5707 typedef __io_write_fn cookie_write_function_t;
5708 typedef __io_seek_fn cookie_seek_function_t;
5709 typedef __io_close_fn cookie_close_function_t;
5710 typedef struct
5711 {
5712   __io_read_fn *read;
5713   __io_write_fn *write;
5714   __io_seek_fn *seek;
5715   __io_close_fn *close;
5716 } _IO_cookie_io_functions_t;
5717 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
5718 struct _IO_cookie_file;
5719 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
5720         void *__cookie, _IO_cookie_io_functions_t __fns);
5721 extern int __underflow (_IO_FILE *);
5722 extern int __uflow (_IO_FILE *);
5723 extern int __overflow (_IO_FILE *, int);
5724 extern int _IO_getc (_IO_FILE *__fp);
5725 extern int _IO_putc (int __c, _IO_FILE *__fp);
5726 extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
5727 extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
5728 extern int _IO_peekc_locked (_IO_FILE *__fp);
5729 extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
5730 extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
5731 extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
5732 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
5733    __gnuc_va_list, int *__restrict);
5734 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
5735     __gnuc_va_list);
5736 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
5737 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
5738 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
5739 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
5740 extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
5741 typedef __gnuc_va_list va_list;
5742 typedef _G_fpos_t fpos_t;
5743 typedef _G_fpos64_t fpos64_t;
5744 extern struct _IO_FILE *stdin;
5745 extern struct _IO_FILE *stdout;
5746 extern struct _IO_FILE *stderr;
5747 extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
5748 extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
5749 extern int renameat (int __oldfd, __const char *__old, int __newfd,
5750        __const char *__new) __attribute__ ((__nothrow__));
5751 extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__));
5752 extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__));
5753 extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5754 extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5755 extern char *tempnam (__const char *__dir, __const char *__pfx)
5756      __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
5757 extern int fclose (FILE *__stream);
5758 extern int fflush (FILE *__stream);
5759 extern int fflush_unlocked (FILE *__stream);
5760 extern int fcloseall (void);
5761 extern FILE *fopen (__const char *__restrict __filename,
5762       __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
5763 extern FILE *freopen (__const char *__restrict __filename,
5764         __const char *__restrict __modes,
5765         FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5766 extern FILE *fopen64 (__const char *__restrict __filename,
5767         __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
5768 extern FILE *freopen64 (__const char *__restrict __filename,
5769    __const char *__restrict __modes,
5770    FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5771 extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5772 extern FILE *fopencookie (void *__restrict __magic_cookie,
5773      __const char *__restrict __modes,
5774      _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5775 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
5776   __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5777 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5778 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
5779 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
5780       int __modes, size_t __n) __attribute__ ((__nothrow__));
5781 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
5782          size_t __size) __attribute__ ((__nothrow__));
5783 extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
5784 extern int fprintf (FILE *__restrict __stream,
5785       __const char *__restrict __format, ...);
5786 extern int printf (__const char *__restrict __format, ...);
5787 extern int sprintf (char *__restrict __s,
5788       __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
5789 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
5790        __gnuc_va_list __arg);
5791 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
5792 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
5793        __gnuc_va_list __arg) __attribute__ ((__nothrow__));
5794 extern int snprintf (char *__restrict __s, size_t __maxlen,
5795        __const char *__restrict __format, ...)
5796      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
5797 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
5798         __const char *__restrict __format, __gnuc_va_list __arg)
5799      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
5800 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
5801         __gnuc_va_list __arg)
5802      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__));
5803 extern int __asprintf (char **__restrict __ptr,
5804          __const char *__restrict __fmt, ...)
5805      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__));
5806 extern int asprintf (char **__restrict __ptr,
5807        __const char *__restrict __fmt, ...)
5808      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__));
5809 extern int vdprintf (int __fd, __const char *__restrict __fmt,
5810        __gnuc_va_list __arg)
5811      __attribute__ ((__format__ (__printf__, 2, 0)));
5812 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
5813      __attribute__ ((__format__ (__printf__, 2, 3)));
5814 extern int fscanf (FILE *__restrict __stream,
5815      __const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
5816 extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
5817 extern int sscanf (__const char *__restrict __s,
5818      __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
5819 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
5820       __gnuc_va_list __arg)
5821      __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__));
5822 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
5823      __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
5824 extern int vsscanf (__const char *__restrict __s,
5825       __const char *__restrict __format, __gnuc_va_list __arg)
5826      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
5827 extern int fgetc (FILE *__stream);
5828 extern int getc (FILE *__stream);
5829 extern int getchar (void);
5830 extern int getc_unlocked (FILE *__stream);
5831 extern int getchar_unlocked (void);
5832 extern int fgetc_unlocked (FILE *__stream);
5833 extern int fputc (int __c, FILE *__stream);
5834 extern int putc (int __c, FILE *__stream);
5835 extern int putchar (int __c);
5836 extern int fputc_unlocked (int __c, FILE *__stream);
5837 extern int putc_unlocked (int __c, FILE *__stream);
5838 extern int putchar_unlocked (int __c);
5839 extern int getw (FILE *__stream);
5840 extern int putw (int __w, FILE *__stream);
5841 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
5842      __attribute__ ((__warn_unused_result__));
5843 extern char *gets (char *__s) __attribute__ ((__warn_unused_result__));
5844 extern char *fgets_unlocked (char *__restrict __s, int __n,
5845         FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5846 extern __ssize_t __getdelim (char **__restrict __lineptr,
5847           size_t *__restrict __n, int __delimiter,
5848           FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5849 extern __ssize_t getdelim (char **__restrict __lineptr,
5850         size_t *__restrict __n, int __delimiter,
5851         FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5852 extern __ssize_t getline (char **__restrict __lineptr,
5853        size_t *__restrict __n,
5854        FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5855 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
5856 extern int puts (__const char *__s);
5857 extern int ungetc (int __c, FILE *__stream);
5858 extern size_t fread (void *__restrict __ptr, size_t __size,
5859        size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5860 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
5861         size_t __n, FILE *__restrict __s) __attribute__ ((__warn_unused_result__));
5862 extern int fputs_unlocked (__const char *__restrict __s,
5863       FILE *__restrict __stream);
5864 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
5865          size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5866 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
5867           size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5868 extern int fseek (FILE *__stream, long int __off, int __whence);
5869 extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__));
5870 extern void rewind (FILE *__stream);
5871 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
5872 extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__));
5873 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
5874 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
5875 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
5876 extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__));
5877 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
5878 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
5879 extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
5880 extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5881 extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5882 extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
5883 extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5884 extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5885 extern void perror (__const char *__s);
5886 extern int sys_nerr;
5887 extern __const char *__const sys_errlist[];
5888 extern int _sys_nerr;
5889 extern __const char *__const _sys_errlist[];
5890 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5891 extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5892 extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__));
5893 extern int pclose (FILE *__stream);
5894 extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
5895 extern char *cuserid (char *__s);
5896 struct obstack;
5897 extern int obstack_printf (struct obstack *__restrict __obstack,
5898       __const char *__restrict __format, ...)
5899      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
5900 extern int obstack_vprintf (struct obstack *__restrict __obstack,
5901        __const char *__restrict __format,
5902        __gnuc_va_list __args)
5903      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0)));
5904 extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
5905 extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5906 extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
5907 extern __inline __attribute__ ((__gnu_inline__)) int
5908 getchar (void)
5909 {
5910   return _IO_getc (stdin);
5911 }
5912 extern __inline __attribute__ ((__gnu_inline__)) int
5913 fgetc_unlocked (FILE *__fp)
5914 {
5915   return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
5916 }
5917 extern __inline __attribute__ ((__gnu_inline__)) int
5918 getc_unlocked (FILE *__fp)
5919 {
5920   return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
5921 }
5922 extern __inline __attribute__ ((__gnu_inline__)) int
5923 getchar_unlocked (void)
5924 {
5925   return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
5926 }
5927 extern __inline __attribute__ ((__gnu_inline__)) int
5928 putchar (int __c)
5929 {
5930   return _IO_putc (__c, stdout);
5931 }
5932 extern __inline __attribute__ ((__gnu_inline__)) int
5933 fputc_unlocked (int __c, FILE *__stream)
5934 {
5935   return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
5936 }
5937 extern __inline __attribute__ ((__gnu_inline__)) int
5938 putc_unlocked (int __c, FILE *__stream)
5939 {
5940   return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
5941 }
5942 extern __inline __attribute__ ((__gnu_inline__)) int
5943 putchar_unlocked (int __c)
5944 {
5945   return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
5946 }
5947 extern __inline __attribute__ ((__gnu_inline__)) __ssize_t
5948 getline (char **__lineptr, size_t *__n, FILE *__stream)
5949 {
5950   return __getdelim (__lineptr, __n, '\n', __stream);
5951 }
5952 extern __inline __attribute__ ((__gnu_inline__)) int
5953 __attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
5954 {
5955   return (((__stream)->_flags & 0x10) != 0);
5956 }
5957 extern __inline __attribute__ ((__gnu_inline__)) int
5958 __attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
5959 {
5960   return (((__stream)->_flags & 0x20) != 0);
5961 }
5962 extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen,
5963      __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
5964 extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
5965       __const char *__restrict __format,
5966       __gnuc_va_list __ap) __attribute__ ((__nothrow__));
5967 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
5968 __attribute__ ((__nothrow__)) sprintf (char *__restrict __s, __const char *__restrict __fmt, ...)
5969 {
5970   return __builtin___sprintf_chk (__s, 2 - 1,
5971       __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
5972 }
5973 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
5974 __attribute__ ((__nothrow__)) vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap)
5975 {
5976   return __builtin___vsprintf_chk (__s, 2 - 1,
5977        __builtin_object_size (__s, 2 > 1), __fmt, __ap);
5978 }
5979 extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag,
5980       size_t __slen, __const char *__restrict __format,
5981       ...) __attribute__ ((__nothrow__));
5982 extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag,
5983        size_t __slen, __const char *__restrict __format,
5984        __gnuc_va_list __ap) __attribute__ ((__nothrow__));
5985 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
5986 __attribute__ ((__nothrow__)) snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...)
5987 {
5988   return __builtin___snprintf_chk (__s, __n, 2 - 1,
5989        __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
5990 }
5991 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
5992 __attribute__ ((__nothrow__)) vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap)
5993 {
5994   return __builtin___vsnprintf_chk (__s, __n, 2 - 1,
5995         __builtin_object_size (__s, 2 > 1), __fmt, __ap);
5996 }
5997 extern int __fprintf_chk (FILE *__restrict __stream, int __flag,
5998      __const char *__restrict __format, ...);
5999 extern int __printf_chk (int __flag, __const char *__restrict __format, ...);
6000 extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
6001       __const char *__restrict __format, __gnuc_va_list __ap);
6002 extern int __vprintf_chk (int __flag, __const char *__restrict __format,
6003      __gnuc_va_list __ap);
6004 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6005 fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...)
6006 {
6007   return __fprintf_chk (__stream, 2 - 1, __fmt,
6008    __builtin_va_arg_pack ());
6009 }
6010 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6011 printf (__const char *__restrict __fmt, ...)
6012 {
6013   return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ());
6014 }
6015 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6016 vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap)
6017 {
6018   return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap);
6019 }
6020 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6021 vfprintf (FILE *__restrict __stream,
6022    __const char *__restrict __fmt, __gnuc_va_list __ap)
6023 {
6024   return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap);
6025 }
6026 extern int __asprintf_chk (char **__restrict __ptr, int __flag,
6027       __const char *__restrict __fmt, ...)
6028      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__));
6029 extern int __vasprintf_chk (char **__restrict __ptr, int __flag,
6030        __const char *__restrict __fmt, __gnuc_va_list __arg)
6031      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__));
6032 extern int __dprintf_chk (int __fd, int __flag, __const char *__restrict __fmt,
6033      ...) __attribute__ ((__format__ (__printf__, 3, 4)));
6034 extern int __vdprintf_chk (int __fd, int __flag,
6035       __const char *__restrict __fmt, __gnuc_va_list __arg)
6036      __attribute__ ((__format__ (__printf__, 3, 0)));
6037 extern int __obstack_printf_chk (struct obstack *__restrict __obstack,
6038      int __flag, __const char *__restrict __format,
6039      ...)
6040      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
6041 extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack,
6042       int __flag,
6043       __const char *__restrict __format,
6044       __gnuc_va_list __args)
6045      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
6046 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6047 __attribute__ ((__nothrow__)) asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...)
6048 {
6049   return __asprintf_chk (__ptr, 2 - 1, __fmt,
6050     __builtin_va_arg_pack ());
6051 }
6052 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6053 __attribute__ ((__nothrow__)) __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...)
6054 {
6055   return __asprintf_chk (__ptr, 2 - 1, __fmt,
6056     __builtin_va_arg_pack ());
6057 }
6058 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6059 dprintf (int __fd, __const char *__restrict __fmt, ...)
6060 {
6061   return __dprintf_chk (__fd, 2 - 1, __fmt,
6062    __builtin_va_arg_pack ());
6063 }
6064 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6065 __attribute__ ((__nothrow__)) obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __fmt, ...)
6066 {
6067   return __obstack_printf_chk (__obstack, 2 - 1, __fmt,
6068           __builtin_va_arg_pack ());
6069 }
6070 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6071 __attribute__ ((__nothrow__)) vasprintf (char **__restrict __ptr, __const char *__restrict __fmt, __gnuc_va_list __ap)
6072 {
6073   return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap);
6074 }
6075 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6076 vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __ap)
6077 {
6078   return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap);
6079 }
6080 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6081 __attribute__ ((__nothrow__)) obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __fmt, __gnuc_va_list __ap)
6082 {
6083   return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt,
6084     __ap);
6085 }
6086 extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__));
6087 extern char *__gets_warn (char *__str) __asm__ ("" "gets")
6088      __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size")))
6089                                ;
6090 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
6091 gets (char *__str)
6092 {
6093   if (__builtin_object_size (__str, 2 > 1) != (size_t) -1)
6094     return __gets_chk (__str, __builtin_object_size (__str, 2 > 1));
6095   return __gets_warn (__str);
6096 }
6097 extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
6098      FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
6099 extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets")
6100                                         __attribute__ ((__warn_unused_result__));
6101 extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk")
6102      __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer")))
6103                                  ;
6104 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
6105 fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
6106 {
6107   if (__builtin_object_size (__s, 2 > 1) != (size_t) -1)
6108     {
6109       if (!__builtin_constant_p (__n) || __n <= 0)
6110  return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
6111       if ((size_t) __n > __builtin_object_size (__s, 2 > 1))
6112  return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
6113     }
6114   return __fgets_alias (__s, __n, __stream);
6115 }
6116 extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen,
6117       size_t __size, size_t __n,
6118       FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
6119 extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread")
6120             __attribute__ ((__warn_unused_result__));
6121 extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk")
6122      __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer")))
6123                                  ;
6124 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t
6125 fread (void *__restrict __ptr, size_t __size, size_t __n,
6126        FILE *__restrict __stream)
6127 {
6128   if (__builtin_object_size (__ptr, 0) != (size_t) -1)
6129     {
6130       if (!__builtin_constant_p (__size)
6131    || !__builtin_constant_p (__n)
6132    || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
6133  return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
6134       if (__size * __n > __builtin_object_size (__ptr, 0))
6135  return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
6136     }
6137   return __fread_alias (__ptr, __size, __n, __stream);
6138 }
6139 extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size,
6140        int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
6141 extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked")
6142                                                  __attribute__ ((__warn_unused_result__));
6143 extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk")
6144      __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer")))
6145                                  ;
6146 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
6147 fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream)
6148 {
6149   if (__builtin_object_size (__s, 2 > 1) != (size_t) -1)
6150     {
6151       if (!__builtin_constant_p (__n) || __n <= 0)
6152  return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
6153       if ((size_t) __n > __builtin_object_size (__s, 2 > 1))
6154  return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
6155     }
6156   return __fgets_unlocked_alias (__s, __n, __stream);
6157 }
6158 extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen,
6159         size_t __size, size_t __n,
6160         FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
6161 extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked")
6162                      __attribute__ ((__warn_unused_result__));
6163 extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk")
6164      __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer")))
6165                                         ;
6166 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t
6167 fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
6168   FILE *__restrict __stream)
6169 {
6170   if (__builtin_object_size (__ptr, 0) != (size_t) -1)
6171     {
6172       if (!__builtin_constant_p (__size)
6173    || !__builtin_constant_p (__n)
6174    || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
6175  return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
6176          __stream);
6177       if (__size * __n > __builtin_object_size (__ptr, 0))
6178  return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
6179        __stream);
6180     }
6181   if (__builtin_constant_p (__size)
6182       && __builtin_constant_p (__n)
6183       && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2))
6184       && __size * __n <= 8)
6185     {
6186       size_t __cnt = __size * __n;
6187       char *__cptr = (char *) __ptr;
6188       if (__cnt == 0)
6189  return 0;
6190       for (; __cnt > 0; --__cnt)
6191  {
6192    int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++);
6193    if (__c == (-1))
6194      break;
6195    *__cptr++ = __c;
6196  }
6197       return (__cptr - (char *) __ptr) / __size;
6198     }
6199   return __fread_unlocked_alias (__ptr, __size, __n, __stream);
6200 }
6201 extern void *memcpy (void *__restrict __dest,
6202        __const void *__restrict __src, size_t __n)
6203      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6204 extern void *memmove (void *__dest, __const void *__src, size_t __n)
6205      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6206 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
6207         int __c, size_t __n)
6208      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6209 extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6210 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
6211      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6212 extern void *memchr (__const void *__s, int __c, size_t __n)
6213       __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6214 extern void *rawmemchr (__const void *__s, int __c)
6215      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6216 extern void *memrchr (__const void *__s, int __c, size_t __n)
6217       __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6218 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
6219      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6220 extern char *strncpy (char *__restrict __dest,
6221         __const char *__restrict __src, size_t __n)
6222      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6223 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
6224      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6225 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
6226         size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6227 extern int strcmp (__const char *__s1, __const char *__s2)
6228      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6229 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
6230      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6231 extern int strcoll (__const char *__s1, __const char *__s2)
6232      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6233 extern size_t strxfrm (char *__restrict __dest,
6234          __const char *__restrict __src, size_t __n)
6235      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6236 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
6237      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
6238 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
6239     __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
6240 extern char *strdup (__const char *__s)
6241      __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
6242 extern char *strndup (__const char *__string, size_t __n)
6243      __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
6244 extern char *strchr (__const char *__s, int __c)
6245      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6246 extern char *strrchr (__const char *__s, int __c)
6247      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6248 extern char *strchrnul (__const char *__s, int __c)
6249      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6250 extern size_t strcspn (__const char *__s, __const char *__reject)
6251      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6252 extern size_t strspn (__const char *__s, __const char *__accept)
6253      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6254 extern char *strpbrk (__const char *__s, __const char *__accept)
6255      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6256 extern char *strstr (__const char *__haystack, __const char *__needle)
6257      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6258 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
6259      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6260 extern char *__strtok_r (char *__restrict __s,
6261     __const char *__restrict __delim,
6262     char **__restrict __save_ptr)
6263      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
6264 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
6265          char **__restrict __save_ptr)
6266      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
6267 extern char *strcasestr (__const char *__haystack, __const char *__needle)
6268      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6269 extern void *memmem (__const void *__haystack, size_t __haystacklen,
6270        __const void *__needle, size_t __needlelen)
6271      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
6272 extern void *__mempcpy (void *__restrict __dest,
6273    __const void *__restrict __src, size_t __n)
6274      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6275 extern void *mempcpy (void *__restrict __dest,
6276         __const void *__restrict __src, size_t __n)
6277      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6278 extern size_t strlen (__const char *__s)
6279      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6280 extern size_t strnlen (__const char *__string, size_t __maxlen)
6281      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6282 extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
6283 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
6284      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6285 extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
6286 extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6287 extern void bcopy (__const void *__src, void *__dest, size_t __n)
6288      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6289 extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6290 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
6291      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6292 extern char *index (__const char *__s, int __c)
6293      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6294 extern char *rindex (__const char *__s, int __c)
6295      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6296 extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6297 extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6298 __extension__ extern int ffsll (long long int __ll)
6299      __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6300 extern int strcasecmp (__const char *__s1, __const char *__s2)
6301      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6302 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
6303      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6304 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
6305     __locale_t __loc)
6306      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
6307 extern int strncasecmp_l (__const char *__s1, __const char *__s2,
6308      size_t __n, __locale_t __loc)
6309      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
6310 extern char *strsep (char **__restrict __stringp,
6311        __const char *__restrict __delim)
6312      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6313 extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
6314 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
6315      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6316 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
6317      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6318 extern char *__stpncpy (char *__restrict __dest,
6319    __const char *__restrict __src, size_t __n)
6320      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6321 extern char *stpncpy (char *__restrict __dest,
6322         __const char *__restrict __src, size_t __n)
6323      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6324 extern int strverscmp (__const char *__s1, __const char *__s2)
6325      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6326 extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6327 extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6328 extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6329 typedef struct { unsigned char __arr[2]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR2;
6330 typedef struct { unsigned char __arr[3]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR3;
6331 typedef struct { unsigned char __arr[4]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR4;
6332 typedef struct { unsigned char __arr[5]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR5;
6333 typedef struct { unsigned char __arr[6]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR6;
6334 typedef struct { unsigned char __arr[7]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR7;
6335 typedef struct { unsigned char __arr[8]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR8;
6336 extern void *__rawmemchr (const void *__s, int __c);
6337 extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c1 (__const char *__s, int __reject);
6338 extern __inline __attribute__ ((__gnu_inline__)) size_t
6339 __strcspn_c1 (__const char *__s, int __reject)
6340 {
6341   register size_t __result = 0;
6342   while (__s[__result] != '\0' && __s[__result] != __reject)
6343     ++__result;
6344   return __result;
6345 }
6346 extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c2 (__const char *__s, int __reject1,
6347          int __reject2);
6348 extern __inline __attribute__ ((__gnu_inline__)) size_t
6349 __strcspn_c2 (__const char *__s, int __reject1, int __reject2)
6350 {
6351   register size_t __result = 0;
6352   while (__s[__result] != '\0' && __s[__result] != __reject1
6353   && __s[__result] != __reject2)
6354     ++__result;
6355   return __result;
6356 }
6357 extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c3 (__const char *__s, int __reject1,
6358          int __reject2, int __reject3);
6359 extern __inline __attribute__ ((__gnu_inline__)) size_t
6360 __strcspn_c3 (__const char *__s, int __reject1, int __reject2,
6361        int __reject3)
6362 {
6363   register size_t __result = 0;
6364   while (__s[__result] != '\0' && __s[__result] != __reject1
6365   && __s[__result] != __reject2 && __s[__result] != __reject3)
6366     ++__result;
6367   return __result;
6368 }
6369 extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c1 (__const char *__s, int __accept);
6370 extern __inline __attribute__ ((__gnu_inline__)) size_t
6371 __strspn_c1 (__const char *__s, int __accept)
6372 {
6373   register size_t __result = 0;
6374   while (__s[__result] == __accept)
6375     ++__result;
6376   return __result;
6377 }
6378 extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c2 (__const char *__s, int __accept1,
6379         int __accept2);
6380 extern __inline __attribute__ ((__gnu_inline__)) size_t
6381 __strspn_c2 (__const char *__s, int __accept1, int __accept2)
6382 {
6383   register size_t __result = 0;
6384   while (__s[__result] == __accept1 || __s[__result] == __accept2)
6385     ++__result;
6386   return __result;
6387 }
6388 extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c3 (__const char *__s, int __accept1,
6389         int __accept2, int __accept3);
6390 extern __inline __attribute__ ((__gnu_inline__)) size_t
6391 __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
6392 {
6393   register size_t __result = 0;
6394   while (__s[__result] == __accept1 || __s[__result] == __accept2
6395   || __s[__result] == __accept3)
6396     ++__result;
6397   return __result;
6398 }
6399 extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c2 (__const char *__s, int __accept1,
6400          int __accept2);
6401 extern __inline __attribute__ ((__gnu_inline__)) char *
6402 __strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
6403 {
6404   while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
6405     ++__s;
6406   return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
6407 }
6408 extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c3 (__const char *__s, int __accept1,
6409          int __accept2, int __accept3);
6410 extern __inline __attribute__ ((__gnu_inline__)) char *
6411 __strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
6412        int __accept3)
6413 {
6414   while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
6415   && *__s != __accept3)
6416     ++__s;
6417   return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
6418 }
6419 extern __inline __attribute__ ((__gnu_inline__)) char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
6420 extern __inline __attribute__ ((__gnu_inline__)) char *
6421 __strtok_r_1c (char *__s, char __sep, char **__nextp)
6422 {
6423   char *__result;
6424   if (__s == ((void *)0))
6425     __s = *__nextp;
6426   while (*__s == __sep)
6427     ++__s;
6428   __result = ((void *)0);
6429   if (*__s != '\0')
6430     {
6431       __result = __s++;
6432       while (*__s != '\0')
6433  if (*__s++ == __sep)
6434    {
6435      __s[-1] = '\0';
6436      break;
6437    }
6438     }
6439   *__nextp = __s;
6440   return __result;
6441 }
6442 extern char *__strsep_g (char **__stringp, __const char *__delim);
6443 extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_1c (char **__s, char __reject);
6444 extern __inline __attribute__ ((__gnu_inline__)) char *
6445 __strsep_1c (char **__s, char __reject)
6446 {
6447   register char *__retval = *__s;
6448   if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0))
6449     *(*__s)++ = '\0';
6450   return __retval;
6451 }
6452 extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_2c (char **__s, char __reject1, char __reject2);
6453 extern __inline __attribute__ ((__gnu_inline__)) char *
6454 __strsep_2c (char **__s, char __reject1, char __reject2)
6455 {
6456   register char *__retval = *__s;
6457   if (__retval != ((void *)0))
6458     {
6459       register char *__cp = __retval;
6460       while (1)
6461  {
6462    if (*__cp == '\0')
6463      {
6464        __cp = ((void *)0);
6465    break;
6466      }
6467    if (*__cp == __reject1 || *__cp == __reject2)
6468      {
6469        *__cp++ = '\0';
6470        break;
6471      }
6472    ++__cp;
6473  }
6474       *__s = __cp;
6475     }
6476   return __retval;
6477 }
6478 extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_3c (char **__s, char __reject1, char __reject2,
6479        char __reject3);
6480 extern __inline __attribute__ ((__gnu_inline__)) char *
6481 __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
6482 {
6483   register char *__retval = *__s;
6484   if (__retval != ((void *)0))
6485     {
6486       register char *__cp = __retval;
6487       while (1)
6488  {
6489    if (*__cp == '\0')
6490      {
6491        __cp = ((void *)0);
6492    break;
6493      }
6494    if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
6495      {
6496        *__cp++ = '\0';
6497        break;
6498      }
6499    ++__cp;
6500  }
6501       *__s = __cp;
6502     }
6503   return __retval;
6504 }
6505 extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
6506 extern char *__strndup (__const char *__string, size_t __n)
6507      __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
6508 extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters")))
6509                                                                                                    ;
6510 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void *
6511 __attribute__ ((__nothrow__)) memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len)
6512 {
6513   return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
6514 }
6515 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void *
6516 __attribute__ ((__nothrow__)) memmove (void *__dest, __const void *__src, size_t __len)
6517 {
6518   return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
6519 }
6520 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void *
6521 __attribute__ ((__nothrow__)) mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len)
6522 {
6523   return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
6524 }
6525 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void *
6526 __attribute__ ((__nothrow__)) memset (void *__dest, int __ch, size_t __len)
6527 {
6528   if (__builtin_constant_p (__len) && __len == 0
6529       && (!__builtin_constant_p (__ch) || __ch != 0))
6530     {
6531       __warn_memset_zero_len ();
6532       return __dest;
6533     }
6534   return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0));
6535 }
6536 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void
6537 __attribute__ ((__nothrow__)) bcopy (__const void *__src, void *__dest, size_t __len)
6538 {
6539   (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
6540 }
6541 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void
6542 __attribute__ ((__nothrow__)) bzero (void *__dest, size_t __len)
6543 {
6544   (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0));
6545 }
6546 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
6547 __attribute__ ((__nothrow__)) strcpy (char *__restrict __dest, __const char *__restrict __src)
6548 {
6549   return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
6550 }
6551 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
6552 __attribute__ ((__nothrow__)) stpcpy (char *__restrict __dest, __const char *__restrict __src)
6553 {
6554   return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
6555 }
6556 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
6557 __attribute__ ((__nothrow__)) strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __len)
6558 {
6559   return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
6560 }
6561 extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
6562        size_t __destlen) __attribute__ ((__nothrow__));
6563 extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__))
6564                                  ;
6565 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
6566 __attribute__ ((__nothrow__)) stpncpy (char *__dest, __const char *__src, size_t __n)
6567 {
6568   if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1
6569       && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1)))
6570     return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1));
6571   return __stpncpy_alias (__dest, __src, __n);
6572 }
6573 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
6574 __attribute__ ((__nothrow__)) strcat (char *__restrict __dest, __const char *__restrict __src)
6575 {
6576   return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
6577 }
6578 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
6579 __attribute__ ((__nothrow__)) strncat (char *__restrict __dest, __const char *__restrict __src, size_t __len)
6580 {
6581   return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
6582 }
6583 typedef union { GLfloat f; GLint i; } fi_type;
6584 static __inline__ GLfloat LOG2(GLfloat val)
6585 {
6586    fi_type num;
6587    GLint log_2;
6588    num.f = val;
6589    log_2 = ((num.i >> 23) & 255) - 128;
6590    num.i &= ~(255 << 23);
6591    num.i += 127 << 23;
6592    num.f = ((-1.0f/3) * num.f + 2) * num.f - 2.0f/3;
6593    return num.f + log_2;
6594 }
6595 static __inline__ int IS_INF_OR_NAN( float x )
6596 {
6597    fi_type tmp;
6598    tmp.f = x;
6599    return !(int)((unsigned int)((tmp.i & 0x7fffffff)-0x7f800000) >> 31);
6600 }
6601 static __inline__ int GET_FLOAT_BITS( float x )
6602 {
6603    fi_type fi;
6604    fi.f = x;
6605    return fi.i;
6606 }
6607 static __inline__ int ifloor(float f)
6608 {
6609    int ai, bi;
6610    double af, bf;
6611    fi_type u;
6612    af = (3 << 22) + 0.5 + (double)f;
6613    bf = (3 << 22) + 0.5 - (double)f;
6614    u.f = (float) af; ai = u.i;
6615    u.f = (float) bf; bi = u.i;
6616    return (ai - bi) >> 1;
6617 }
6618 static __inline__ int iceil(float f)
6619 {
6620    int ai, bi;
6621    double af, bf;
6622    fi_type u;
6623    af = (3 << 22) + 0.5 + (double)f;
6624    bf = (3 << 22) + 0.5 - (double)f;
6625    u.f = (float) af; ai = u.i;
6626    u.f = (float) bf; bi = u.i;
6627    return (ai - bi + 1) >> 1;
6628 }
6629 static __inline__ int
6630 _mesa_is_pow_two(int x)
6631 {
6632    return !(x & (x - 1));
6633 }
6634 static __inline__ int32_t
6635 _mesa_next_pow_two_32(uint32_t x)
6636 {
6637  uint32_t y = (x != 1);
6638  return (1 + y) << ((__builtin_clz(x - y) ^ 31) );
6639 }
6640 static __inline__ int64_t
6641 _mesa_next_pow_two_64(uint64_t x)
6642 {
6643  uint64_t y = (x != 1);
6644  if (sizeof(x) == sizeof(long))
6645   return (1 + y) << ((__builtin_clzl(x - y) ^ 63));
6646  else
6647   return (1 + y) << ((__builtin_clzll(x - y) ^ 63));
6648 }
6649 static __inline__ GLuint
6650 _mesa_logbase2(GLuint n)
6651 {
6652    return (31 - __builtin_clz(n | 1));
6653 }
6654 static __inline__ GLboolean
6655 _mesa_little_endian(void)
6656 {
6657    const GLuint ui = 1;
6658    return *((const GLubyte *) &ui);
6659 }
6660 extern void *
6661 _mesa_align_malloc( size_t bytes, unsigned long alignment );
6662 extern void *
6663 _mesa_align_calloc( size_t bytes, unsigned long alignment );
6664 extern void
6665 _mesa_align_free( void *ptr );
6666 extern void *
6667 _mesa_align_realloc(void *oldBuffer, size_t oldSize, size_t newSize,
6668                     unsigned long alignment);
6669 extern void *
6670 _mesa_exec_malloc( GLuint size );
6671 extern void
6672 _mesa_exec_free( void *addr );
6673 extern void *
6674 _mesa_realloc( void *oldBuffer, size_t oldSize, size_t newSize );
6675 extern void
6676 _mesa_memset16( unsigned short *dst, unsigned short val, size_t n );
6677 extern double
6678 _mesa_sqrtd(double x);
6679 extern float
6680 _mesa_sqrtf(float x);
6681 extern float
6682 _mesa_inv_sqrtf(float x);
6683 extern void
6684 _mesa_init_sqrt_table(void);
6685 extern GLhalfARB
6686 _mesa_float_to_half(float f);
6687 extern float
6688 _mesa_half_to_float(GLhalfARB h);
6689 extern void *
6690 _mesa_bsearch( const void *key, const void *base, size_t nmemb, size_t size,
6691                int (*compar)(const void *, const void *) );
6692 extern char *
6693 _mesa_getenv( const char *var );
6694 extern char *
6695 _mesa_strdup( const char *s );
6696 extern float
6697 _mesa_strtof( const char *s, char **end );
6698 extern unsigned int
6699 _mesa_str_checksum(const char *str);
6700 extern int
6701 _mesa_snprintf( char *str, size_t size, const char *fmt, ... ) __attribute__ ((format(__printf__, 3, 4)));
6702 struct gl_context;
6703 extern void
6704 _mesa_warning( struct gl_context *gc, const char *fmtString, ... ) __attribute__ ((format(__printf__, 2, 3)));
6705 extern void
6706 _mesa_problem( const struct gl_context *ctx, const char *fmtString, ... ) __attribute__ ((format(__printf__, 2, 3)));
6707 extern void
6708 _mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... ) __attribute__ ((format(__printf__, 3, 4)));
6709 extern void
6710 _mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) __attribute__ ((format(__printf__, 2, 3)));
6711 struct sched_param
6712   {
6713     int __sched_priority;
6714   };
6715 extern int clone (int (*__fn) (void *__arg), void *__child_stack,
6716     int __flags, void *__arg, ...) __attribute__ ((__nothrow__));
6717 extern int unshare (int __flags) __attribute__ ((__nothrow__));
6718 extern int sched_getcpu (void) __attribute__ ((__nothrow__));
6719 struct __sched_param
6720   {
6721     int __sched_priority;
6722   };
6723 typedef unsigned long int __cpu_mask;
6724 typedef struct
6725 {
6726   __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
6727 } cpu_set_t;
6728 extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
6729   __attribute__ ((__nothrow__));
6730 extern cpu_set_t *__sched_cpualloc (size_t __count) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
6731 extern void __sched_cpufree (cpu_set_t *__set) __attribute__ ((__nothrow__));
6732 extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
6733      __attribute__ ((__nothrow__));
6734 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__));
6735 extern int sched_setscheduler (__pid_t __pid, int __policy,
6736           __const struct sched_param *__param) __attribute__ ((__nothrow__));
6737 extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__));
6738 extern int sched_yield (void) __attribute__ ((__nothrow__));
6739 extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__));
6740 extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__));
6741 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__));
6742 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
6743          __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
6744 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
6745          cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
6746 struct tm
6747 {
6748   int tm_sec;
6749   int tm_min;
6750   int tm_hour;
6751   int tm_mday;
6752   int tm_mon;
6753   int tm_year;
6754   int tm_wday;
6755   int tm_yday;
6756   int tm_isdst;
6757   long int tm_gmtoff;
6758   __const char *tm_zone;
6759 };
6760 struct itimerspec
6761   {
6762     struct timespec it_interval;
6763     struct timespec it_value;
6764   };
6765 struct sigevent;
6766 extern clock_t clock (void) __attribute__ ((__nothrow__));
6767 extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));
6768 extern double difftime (time_t __time1, time_t __time0)
6769      __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6770 extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));
6771 extern size_t strftime (char *__restrict __s, size_t __maxsize,
6772    __const char *__restrict __format,
6773    __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));
6774 extern char *strptime (__const char *__restrict __s,
6775          __const char *__restrict __fmt, struct tm *__tp)
6776      __attribute__ ((__nothrow__));
6777 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
6778      __const char *__restrict __format,
6779      __const struct tm *__restrict __tp,
6780      __locale_t __loc) __attribute__ ((__nothrow__));
6781 extern char *strptime_l (__const char *__restrict __s,
6782     __const char *__restrict __fmt, struct tm *__tp,
6783     __locale_t __loc) __attribute__ ((__nothrow__));
6784 extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));
6785 extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));
6786 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
6787        struct tm *__restrict __tp) __attribute__ ((__nothrow__));
6788 extern struct tm *localtime_r (__const time_t *__restrict __timer,
6789           struct tm *__restrict __tp) __attribute__ ((__nothrow__));
6790 extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));
6791 extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));
6792 extern char *asctime_r (__const struct tm *__restrict __tp,
6793    char *__restrict __buf) __attribute__ ((__nothrow__));
6794 extern char *ctime_r (__const time_t *__restrict __timer,
6795         char *__restrict __buf) __attribute__ ((__nothrow__));
6796 extern char *__tzname[2];
6797 extern int __daylight;
6798 extern long int __timezone;
6799 extern char *tzname[2];
6800 extern void tzset (void) __attribute__ ((__nothrow__));
6801 extern int daylight;
6802 extern long int timezone;
6803 extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
6804 extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));
6805 extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));
6806 extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6807 extern int nanosleep (__const struct timespec *__requested_time,
6808         struct timespec *__remaining);
6809 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));
6810 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));
6811 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
6812      __attribute__ ((__nothrow__));
6813 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
6814        __const struct timespec *__req,
6815        struct timespec *__rem);
6816 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));
6817 extern int timer_create (clockid_t __clock_id,
6818     struct sigevent *__restrict __evp,
6819     timer_t *__restrict __timerid) __attribute__ ((__nothrow__));
6820 extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));
6821 extern int timer_settime (timer_t __timerid, int __flags,
6822      __const struct itimerspec *__restrict __value,
6823      struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));
6824 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
6825      __attribute__ ((__nothrow__));
6826 extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
6827 extern int getdate_err;
6828 extern struct tm *getdate (__const char *__string);
6829 extern int getdate_r (__const char *__restrict __string,
6830         struct tm *__restrict __resbufp);
6831 typedef double __jmp_buf[21];
6832 enum
6833 {
6834   PTHREAD_CREATE_JOINABLE,
6835   PTHREAD_CREATE_DETACHED
6836 };
6837 enum
6838 {
6839   PTHREAD_MUTEX_TIMED_NP,
6840   PTHREAD_MUTEX_RECURSIVE_NP,
6841   PTHREAD_MUTEX_ERRORCHECK_NP,
6842   PTHREAD_MUTEX_ADAPTIVE_NP
6843   ,
6844   PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
6845   PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
6846   PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
6847   PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
6848   , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
6849 };
6850 enum
6851 {
6852   PTHREAD_MUTEX_STALLED,
6853   PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
6854   PTHREAD_MUTEX_ROBUST,
6855   PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
6856 };
6857 enum
6858 {
6859   PTHREAD_PRIO_NONE,
6860   PTHREAD_PRIO_INHERIT,
6861   PTHREAD_PRIO_PROTECT
6862 };
6863 enum
6864 {
6865   PTHREAD_RWLOCK_PREFER_READER_NP,
6866   PTHREAD_RWLOCK_PREFER_WRITER_NP,
6867   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
6868   PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
6869 };
6870 enum
6871 {
6872   PTHREAD_INHERIT_SCHED,
6873   PTHREAD_EXPLICIT_SCHED
6874 };
6875 enum
6876 {
6877   PTHREAD_SCOPE_SYSTEM,
6878   PTHREAD_SCOPE_PROCESS
6879 };
6880 enum
6881 {
6882   PTHREAD_PROCESS_PRIVATE,
6883   PTHREAD_PROCESS_SHARED
6884 };
6885 struct _pthread_cleanup_buffer
6886 {
6887   void (*__routine) (void *);
6888   void *__arg;
6889   int __canceltype;
6890   struct _pthread_cleanup_buffer *__prev;
6891 };
6892 enum
6893 {
6894   PTHREAD_CANCEL_ENABLE,
6895   PTHREAD_CANCEL_DISABLE
6896 };
6897 enum
6898 {
6899   PTHREAD_CANCEL_DEFERRED,
6900   PTHREAD_CANCEL_ASYNCHRONOUS
6901 };
6902 extern int pthread_create (pthread_t *__restrict __newthread,
6903       __const pthread_attr_t *__restrict __attr,
6904       void *(*__start_routine) (void *),
6905       void *__restrict __arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
6906 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
6907 extern int pthread_join (pthread_t __th, void **__thread_return);
6908 extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__));
6909 extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
6910      __const struct timespec *__abstime);
6911 extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__));
6912 extern pthread_t pthread_self (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6913 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __attribute__ ((__nothrow__));
6914 extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6915 extern int pthread_attr_destroy (pthread_attr_t *__attr)
6916      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6917 extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
6918      int *__detachstate)
6919      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6920 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
6921      int __detachstate)
6922      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6923 extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
6924           size_t *__guardsize)
6925      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6926 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
6927           size_t __guardsize)
6928      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6929 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
6930            __attr,
6931            struct sched_param *__restrict __param)
6932      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6933 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
6934            __const struct sched_param *__restrict
6935            __param) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6936 extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
6937      __attr, int *__restrict __policy)
6938      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6939 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
6940      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6941 extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
6942       __attr, int *__restrict __inherit)
6943      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6944 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
6945       int __inherit)
6946      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6947 extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
6948       int *__restrict __scope)
6949      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6950 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
6951      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6952 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
6953           __attr, void **__restrict __stackaddr)
6954      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
6955 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
6956           void *__stackaddr)
6957      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
6958 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
6959           __attr, size_t *__restrict __stacksize)
6960      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6961 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
6962           size_t __stacksize)
6963      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6964 extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
6965       void **__restrict __stackaddr,
6966       size_t *__restrict __stacksize)
6967      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3)));
6968 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
6969       size_t __stacksize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6970 extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
6971      size_t __cpusetsize,
6972      __const cpu_set_t *__cpuset)
6973      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
6974 extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
6975      size_t __cpusetsize,
6976      cpu_set_t *__cpuset)
6977      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
6978 extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
6979      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6980 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
6981       __const struct sched_param *__param)
6982      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
6983 extern int pthread_getschedparam (pthread_t __target_thread,
6984       int *__restrict __policy,
6985       struct sched_param *__restrict __param)
6986      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
6987 extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
6988      __attribute__ ((__nothrow__));
6989 extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
6990           size_t __buflen)
6991      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6992 extern int pthread_setname_np (pthread_t __target_thread, __const char *__name)
6993      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6994 extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__));
6995 extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__));
6996 extern int pthread_yield (void) __attribute__ ((__nothrow__));
6997 extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
6998        __const cpu_set_t *__cpuset)
6999      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
7000 extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
7001        cpu_set_t *__cpuset)
7002      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
7003 extern int pthread_once (pthread_once_t *__once_control,
7004     void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
7005 extern int pthread_setcancelstate (int __state, int *__oldstate);
7006 extern int pthread_setcanceltype (int __type, int *__oldtype);
7007 extern int pthread_cancel (pthread_t __th);
7008 extern void pthread_testcancel (void);
7009 typedef struct
7010 {
7011   struct
7012   {
7013     __jmp_buf __cancel_jmp_buf;
7014     int __mask_was_saved;
7015   } __cancel_jmp_buf[1];
7016   void *__pad[4];
7017 } __pthread_unwind_buf_t __attribute__ ((__aligned__));
7018 struct __pthread_cleanup_frame
7019 {
7020   void (*__cancel_routine) (void *);
7021   void *__cancel_arg;
7022   int __do_it;
7023   int __cancel_type;
7024 };
7025 extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
7026      ;
7027 extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
7028   ;
7029 extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
7030      ;
7031 extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
7032   ;
7033 extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
7034      __attribute__ ((__noreturn__))
7035      __attribute__ ((__weak__))
7036      ;
7037 struct __jmp_buf_tag;
7038 extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__));
7039 extern int pthread_mutex_init (pthread_mutex_t *__mutex,
7040           __const pthread_mutexattr_t *__mutexattr)
7041      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7042 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
7043      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7044 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
7045      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7046 extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
7047      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7048 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
7049         __const struct timespec *__restrict
7050         __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7051 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
7052      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7053 extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
7054       __restrict __mutex,
7055       int *__restrict __prioceiling)
7056      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7057 extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
7058       int __prioceiling,
7059       int *__restrict __old_ceiling)
7060      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
7061 extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
7062      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7063 extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
7064      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7065 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
7066      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7067 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
7068      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7069 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
7070       __restrict __attr,
7071       int *__restrict __pshared)
7072      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7073 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
7074       int __pshared)
7075      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7076 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
7077           __attr, int *__restrict __kind)
7078      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7079 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
7080      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7081 extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
7082        __restrict __attr,
7083        int *__restrict __protocol)
7084      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7085 extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
7086        int __protocol)
7087      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7088 extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
7089           __restrict __attr,
7090           int *__restrict __prioceiling)
7091      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7092 extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
7093           int __prioceiling)
7094      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7095 extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr,
7096      int *__robustness)
7097      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7098 extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
7099         int *__robustness)
7100      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7101 extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
7102      int __robustness)
7103      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7104 extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
7105         int __robustness)
7106      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7107 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
7108     __const pthread_rwlockattr_t *__restrict
7109     __attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7110 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
7111      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7112 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
7113      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7114 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
7115   __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7116 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
7117            __const struct timespec *__restrict
7118            __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7119 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
7120      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7121 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
7122      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7123 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
7124            __const struct timespec *__restrict
7125            __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7126 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
7127      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7128 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
7129      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7130 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
7131      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7132 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
7133        __restrict __attr,
7134        int *__restrict __pshared)
7135      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7136 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
7137        int __pshared)
7138      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7139 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
7140        __restrict __attr,
7141        int *__restrict __pref)
7142      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7143 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
7144        int __pref) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7145 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
7146          __const pthread_condattr_t *__restrict
7147          __cond_attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7148 extern int pthread_cond_destroy (pthread_cond_t *__cond)
7149      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7150 extern int pthread_cond_signal (pthread_cond_t *__cond)
7151      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7152 extern int pthread_cond_broadcast (pthread_cond_t *__cond)
7153      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7154 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
7155          pthread_mutex_t *__restrict __mutex)
7156      __attribute__ ((__nonnull__ (1, 2)));
7157 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
7158        pthread_mutex_t *__restrict __mutex,
7159        __const struct timespec *__restrict
7160        __abstime) __attribute__ ((__nonnull__ (1, 2, 3)));
7161 extern int pthread_condattr_init (pthread_condattr_t *__attr)
7162      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7163 extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
7164      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7165 extern int pthread_condattr_getpshared (__const pthread_condattr_t *
7166      __restrict __attr,
7167      int *__restrict __pshared)
7168      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7169 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
7170      int __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7171 extern int pthread_condattr_getclock (__const pthread_condattr_t *
7172           __restrict __attr,
7173           __clockid_t *__restrict __clock_id)
7174      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7175 extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
7176           __clockid_t __clock_id)
7177      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7178 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
7179      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7180 extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
7181      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7182 extern int pthread_spin_lock (pthread_spinlock_t *__lock)
7183      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7184 extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
7185      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7186 extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
7187      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7188 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
7189      __const pthread_barrierattr_t *__restrict
7190      __attr, unsigned int __count)
7191      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7192 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
7193      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7194 extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
7195      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7196 extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
7197      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7198 extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
7199      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7200 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
7201         __restrict __attr,
7202         int *__restrict __pshared)
7203      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7204 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
7205         int __pshared)
7206      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7207 extern int pthread_key_create (pthread_key_t *__key,
7208           void (*__destr_function) (void *))
7209      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7210 extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__));
7211 extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__));
7212 extern int pthread_setspecific (pthread_key_t __key,
7213     __const void *__pointer) __attribute__ ((__nothrow__)) ;
7214 extern int pthread_getcpuclockid (pthread_t __thread_id,
7215       __clockid_t *__clock_id)
7216      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
7217 extern int pthread_atfork (void (*__prepare) (void),
7218       void (*__parent) (void),
7219       void (*__child) (void)) __attribute__ ((__nothrow__));
7220 extern __inline __attribute__ ((__gnu_inline__)) int
7221 __attribute__ ((__nothrow__)) pthread_equal (pthread_t __thread1, pthread_t __thread2)
7222 {
7223   return __thread1 == __thread2;
7224 }
7225 struct u_tsd {
7226    pthread_key_t key;
7227    int initMagic;
7228 };
7229 typedef pthread_mutex_t u_mutex;
7230 unsigned long
7231 u_thread_self(void);
7232 void
7233 u_tsd_init(struct u_tsd *tsd);
7234 void
7235 u_tsd_destroy(struct u_tsd *tsd);
7236 void *
7237 u_tsd_get(struct u_tsd *tsd);
7238 void
7239 u_tsd_set(struct u_tsd *tsd, void *ptr);
7240 typedef struct u_tsd _glthread_TSD;
7241 typedef u_mutex _glthread_Mutex;
7242 typedef void (*_glapi_proc)(void);
7243 struct _glapi_table;
7244 __attribute__((visibility("default"))) extern __thread struct _glapi_table * _glapi_tls_Dispatch
7245     __attribute__((tls_model("initial-exec")));
7246 __attribute__((visibility("default"))) extern __thread void * _glapi_tls_Context
7247     __attribute__((tls_model("initial-exec")));
7248 __attribute__((visibility("default"))) extern const struct _glapi_table *_glapi_Dispatch;
7249 __attribute__((visibility("default"))) extern const void *_glapi_Context;
7250 void
7251 _glapi_destroy_multithread(void);
7252 __attribute__((visibility("default"))) void
7253 _glapi_check_multithread(void);
7254 __attribute__((visibility("default"))) void
7255 _glapi_set_context(void *context);
7256 __attribute__((visibility("default"))) void *
7257 _glapi_get_context(void);
7258 __attribute__((visibility("default"))) void
7259 _glapi_set_dispatch(struct _glapi_table *dispatch);
7260 __attribute__((visibility("default"))) struct _glapi_table *
7261 _glapi_get_dispatch(void);
7262 __attribute__((visibility("default"))) unsigned int
7263 _glapi_get_dispatch_table_size(void);
7264 __attribute__((visibility("default"))) int
7265 _glapi_add_dispatch( const char * const * function_names,
7266        const char * parameter_signature );
7267 __attribute__((visibility("default"))) int
7268 _glapi_get_proc_offset(const char *funcName);
7269 __attribute__((visibility("default"))) _glapi_proc
7270 _glapi_get_proc_address(const char *funcName);
7271 __attribute__((visibility("default"))) const char *
7272 _glapi_get_proc_name(unsigned int offset);
7273 __attribute__((visibility("default"))) struct _glapi_table *
7274 _glapi_create_table_from_handle(void *handle, const char *symbol_prefix);
7275 __attribute__((visibility("default"))) unsigned long
7276 _glthread_GetID(void);
7277 __attribute__((visibility("default"))) void
7278 _glapi_noop_enable_warnings(unsigned char enable);
7279 __attribute__((visibility("default"))) void
7280 _glapi_set_warning_func(_glapi_proc func);
7281 enum GLmatrixtype {
7282    MATRIX_GENERAL,
7283    MATRIX_IDENTITY,
7284    MATRIX_3D_NO_ROT,
7285    MATRIX_PERSPECTIVE,
7286    MATRIX_2D,
7287    MATRIX_2D_NO_ROT,
7288    MATRIX_3D
7289 } ;
7290 typedef struct {
7291    GLfloat *m;
7292    GLfloat *inv;
7293    GLuint flags;
7294    enum GLmatrixtype type;
7295 } GLmatrix;
7296 extern void
7297 _math_matrix_ctr( GLmatrix *m );
7298 extern void
7299 _math_matrix_dtr( GLmatrix *m );
7300 extern void
7301 _math_matrix_alloc_inv( GLmatrix *m );
7302 extern void
7303 _math_matrix_mul_matrix( GLmatrix *dest, const GLmatrix *a, const GLmatrix *b );
7304 extern void
7305 _math_matrix_mul_floats( GLmatrix *dest, const GLfloat *b );
7306 extern void
7307 _math_matrix_loadf( GLmatrix *mat, const GLfloat *m );
7308 extern void
7309 _math_matrix_translate( GLmatrix *mat, GLfloat x, GLfloat y, GLfloat z );
7310 extern void
7311 _math_matrix_rotate( GLmatrix *m, GLfloat angle,
7312        GLfloat x, GLfloat y, GLfloat z );
7313 extern void
7314 _math_matrix_scale( GLmatrix *mat, GLfloat x, GLfloat y, GLfloat z );
7315 extern void
7316 _math_matrix_ortho( GLmatrix *mat,
7317       GLfloat left, GLfloat right,
7318       GLfloat bottom, GLfloat top,
7319       GLfloat nearval, GLfloat farval );
7320 extern void
7321 _math_matrix_frustum( GLmatrix *mat,
7322         GLfloat left, GLfloat right,
7323         GLfloat bottom, GLfloat top,
7324         GLfloat nearval, GLfloat farval );
7325 extern void
7326 _math_matrix_viewport(GLmatrix *m, GLint x, GLint y, GLint width, GLint height,
7327                       GLfloat zNear, GLfloat zFar, GLfloat depthMax);
7328 extern void
7329 _math_matrix_set_identity( GLmatrix *dest );
7330 extern void
7331 _math_matrix_copy( GLmatrix *to, const GLmatrix *from );
7332 extern void
7333 _math_matrix_analyse( GLmatrix *mat );
7334 extern void
7335 _math_matrix_print( const GLmatrix *m );
7336 extern GLboolean
7337 _math_matrix_is_length_preserving( const GLmatrix *m );
7338 extern GLboolean
7339 _math_matrix_has_rotation( const GLmatrix *m );
7340 extern GLboolean
7341 _math_matrix_is_general_scale( const GLmatrix *m );
7342 extern GLboolean
7343 _math_matrix_is_dirty( const GLmatrix *m );
7344 extern void
7345 _math_transposef( GLfloat to[16], const GLfloat from[16] );
7346 extern void
7347 _math_transposed( GLdouble to[16], const GLdouble from[16] );
7348 extern void
7349 _math_transposefd( GLfloat to[16], const GLdouble from[16] );
7350 extern void
7351 _mesa_transform_vector(GLfloat u[4], const GLfloat v[4], const GLfloat m[16]);
7352 struct simple_node {
7353    struct simple_node *next;
7354    struct simple_node *prev;
7355 };
7356 typedef enum
7357 {
7358    MESA_FORMAT_NONE = 0,
7359    MESA_FORMAT_RGBA8888,
7360    MESA_FORMAT_RGBA8888_REV,
7361    MESA_FORMAT_ARGB8888,
7362    MESA_FORMAT_ARGB8888_REV,
7363    MESA_FORMAT_XRGB8888,
7364    MESA_FORMAT_XRGB8888_REV,
7365    MESA_FORMAT_RGB888,
7366    MESA_FORMAT_BGR888,
7367    MESA_FORMAT_RGB565,
7368    MESA_FORMAT_RGB565_REV,
7369    MESA_FORMAT_ARGB4444,
7370    MESA_FORMAT_ARGB4444_REV,
7371    MESA_FORMAT_RGBA5551,
7372    MESA_FORMAT_ARGB1555,
7373    MESA_FORMAT_ARGB1555_REV,
7374    MESA_FORMAT_AL44,
7375    MESA_FORMAT_AL88,
7376    MESA_FORMAT_AL88_REV,
7377    MESA_FORMAT_AL1616,
7378    MESA_FORMAT_AL1616_REV,
7379    MESA_FORMAT_RGB332,
7380    MESA_FORMAT_A8,
7381    MESA_FORMAT_A16,
7382    MESA_FORMAT_L8,
7383    MESA_FORMAT_L16,
7384    MESA_FORMAT_I8,
7385    MESA_FORMAT_I16,
7386    MESA_FORMAT_CI8,
7387    MESA_FORMAT_YCBCR,
7388    MESA_FORMAT_YCBCR_REV,
7389    MESA_FORMAT_R8,
7390    MESA_FORMAT_RG88,
7391    MESA_FORMAT_RG88_REV,
7392    MESA_FORMAT_R16,
7393    MESA_FORMAT_RG1616,
7394    MESA_FORMAT_RG1616_REV,
7395    MESA_FORMAT_ARGB2101010,
7396    MESA_FORMAT_Z24_S8,
7397    MESA_FORMAT_S8_Z24,
7398    MESA_FORMAT_Z16,
7399    MESA_FORMAT_X8_Z24,
7400    MESA_FORMAT_Z24_X8,
7401    MESA_FORMAT_Z32,
7402    MESA_FORMAT_S8,
7403    MESA_FORMAT_SRGB8,
7404    MESA_FORMAT_SRGBA8,
7405    MESA_FORMAT_SARGB8,
7406    MESA_FORMAT_SL8,
7407    MESA_FORMAT_SLA8,
7408    MESA_FORMAT_SRGB_DXT1,
7409    MESA_FORMAT_SRGBA_DXT1,
7410    MESA_FORMAT_SRGBA_DXT3,
7411    MESA_FORMAT_SRGBA_DXT5,
7412    MESA_FORMAT_RGB_FXT1,
7413    MESA_FORMAT_RGBA_FXT1,
7414    MESA_FORMAT_RGB_DXT1,
7415    MESA_FORMAT_RGBA_DXT1,
7416    MESA_FORMAT_RGBA_DXT3,
7417    MESA_FORMAT_RGBA_DXT5,
7418    MESA_FORMAT_RGBA_FLOAT32,
7419    MESA_FORMAT_RGBA_FLOAT16,
7420    MESA_FORMAT_RGB_FLOAT32,
7421    MESA_FORMAT_RGB_FLOAT16,
7422    MESA_FORMAT_ALPHA_FLOAT32,
7423    MESA_FORMAT_ALPHA_FLOAT16,
7424    MESA_FORMAT_LUMINANCE_FLOAT32,
7425    MESA_FORMAT_LUMINANCE_FLOAT16,
7426    MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32,
7427    MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16,
7428    MESA_FORMAT_INTENSITY_FLOAT32,
7429    MESA_FORMAT_INTENSITY_FLOAT16,
7430    MESA_FORMAT_R_FLOAT32,
7431    MESA_FORMAT_R_FLOAT16,
7432    MESA_FORMAT_RG_FLOAT32,
7433    MESA_FORMAT_RG_FLOAT16,
7434    MESA_FORMAT_RGBA_INT8,
7435    MESA_FORMAT_RGBA_INT16,
7436    MESA_FORMAT_RGBA_INT32,
7437    MESA_FORMAT_RGBA_UINT8,
7438    MESA_FORMAT_RGBA_UINT16,
7439    MESA_FORMAT_RGBA_UINT32,
7440    MESA_FORMAT_DUDV8,
7441    MESA_FORMAT_SIGNED_R8,
7442    MESA_FORMAT_SIGNED_RG88_REV,
7443    MESA_FORMAT_SIGNED_RGBX8888,
7444    MESA_FORMAT_SIGNED_RGBA8888,
7445    MESA_FORMAT_SIGNED_RGBA8888_REV,
7446    MESA_FORMAT_SIGNED_R16,
7447    MESA_FORMAT_SIGNED_GR1616,
7448    MESA_FORMAT_SIGNED_RGB_16,
7449    MESA_FORMAT_SIGNED_RGBA_16,
7450    MESA_FORMAT_RGBA_16,
7451    MESA_FORMAT_RED_RGTC1,
7452    MESA_FORMAT_SIGNED_RED_RGTC1,
7453    MESA_FORMAT_RG_RGTC2,
7454    MESA_FORMAT_SIGNED_RG_RGTC2,
7455    MESA_FORMAT_L_LATC1,
7456    MESA_FORMAT_SIGNED_L_LATC1,
7457    MESA_FORMAT_LA_LATC2,
7458    MESA_FORMAT_SIGNED_LA_LATC2,
7459    MESA_FORMAT_SIGNED_A8,
7460    MESA_FORMAT_SIGNED_L8,
7461    MESA_FORMAT_SIGNED_AL88,
7462    MESA_FORMAT_SIGNED_I8,
7463    MESA_FORMAT_SIGNED_A16,
7464    MESA_FORMAT_SIGNED_L16,
7465    MESA_FORMAT_SIGNED_AL1616,
7466    MESA_FORMAT_SIGNED_I16,
7467    MESA_FORMAT_RGB9_E5_FLOAT,
7468    MESA_FORMAT_R11_G11_B10_FLOAT,
7469    MESA_FORMAT_COUNT
7470 } gl_format;
7471 extern const char *
7472 _mesa_get_format_name(gl_format format);
7473 extern GLint
7474 _mesa_get_format_bytes(gl_format format);
7475 extern GLint
7476 _mesa_get_format_bits(gl_format format, GLenum pname);
7477 extern GLenum
7478 _mesa_get_format_datatype(gl_format format);
7479 extern GLenum
7480 _mesa_get_format_base_format(gl_format format);
7481 extern void
7482 _mesa_get_format_block_size(gl_format format, GLuint *bw, GLuint *bh);
7483 extern GLboolean
7484 _mesa_is_format_compressed(gl_format format);
7485 extern GLboolean
7486 _mesa_is_format_packed_depth_stencil(gl_format format);
7487 extern GLboolean
7488 _mesa_is_format_integer_color(gl_format format);
7489 extern GLenum
7490 _mesa_get_format_color_encoding(gl_format format);
7491 extern GLuint
7492 _mesa_format_image_size(gl_format format, GLsizei width,
7493                         GLsizei height, GLsizei depth);
7494 extern uint64_t
7495 _mesa_format_image_size64(gl_format format, GLsizei width,
7496                           GLsizei height, GLsizei depth);
7497 extern GLint
7498 _mesa_format_row_stride(gl_format format, GLsizei width);
7499 extern void
7500 _mesa_format_to_type_and_comps(gl_format format,
7501                                GLenum *datatype, GLuint *comps);
7502 extern void
7503 _mesa_test_formats(void);
7504 extern gl_format
7505 _mesa_get_srgb_format_linear(gl_format format);
7506    typedef GLubyte GLchan;
7507    typedef GLubyte GLstencil;
7508 typedef GLuint64 GLbitfield64;
7509 struct _mesa_HashTable;
7510 struct gl_attrib_node;
7511 struct gl_list_extensions;
7512 struct gl_meta_state;
7513 struct gl_pixelstore_attrib;
7514 struct gl_program_cache;
7515 struct gl_texture_format;
7516 struct gl_texture_image;
7517 struct gl_texture_object;
7518 struct gl_context;
7519 struct st_context;
7520 typedef enum
7521 {
7522    MESA_SHADER_VERTEX = 0,
7523    MESA_SHADER_FRAGMENT = 1,
7524    MESA_SHADER_GEOMETRY = 2,
7525    MESA_SHADER_TYPES = 3
7526 } gl_shader_type;
7527 typedef enum
7528 {
7529    VERT_ATTRIB_POS = 0,
7530    VERT_ATTRIB_WEIGHT = 1,
7531    VERT_ATTRIB_NORMAL = 2,
7532    VERT_ATTRIB_COLOR0 = 3,
7533    VERT_ATTRIB_COLOR1 = 4,
7534    VERT_ATTRIB_FOG = 5,
7535    VERT_ATTRIB_COLOR_INDEX = 6,
7536    VERT_ATTRIB_POINT_SIZE = 6,
7537    VERT_ATTRIB_EDGEFLAG = 7,
7538    VERT_ATTRIB_TEX0 = 8,
7539    VERT_ATTRIB_TEX1 = 9,
7540    VERT_ATTRIB_TEX2 = 10,
7541    VERT_ATTRIB_TEX3 = 11,
7542    VERT_ATTRIB_TEX4 = 12,
7543    VERT_ATTRIB_TEX5 = 13,
7544    VERT_ATTRIB_TEX6 = 14,
7545    VERT_ATTRIB_TEX7 = 15,
7546    VERT_ATTRIB_GENERIC0 = 16,
7547    VERT_ATTRIB_GENERIC1 = 17,
7548    VERT_ATTRIB_GENERIC2 = 18,
7549    VERT_ATTRIB_GENERIC3 = 19,
7550    VERT_ATTRIB_GENERIC4 = 20,
7551    VERT_ATTRIB_GENERIC5 = 21,
7552    VERT_ATTRIB_GENERIC6 = 22,
7553    VERT_ATTRIB_GENERIC7 = 23,
7554    VERT_ATTRIB_GENERIC8 = 24,
7555    VERT_ATTRIB_GENERIC9 = 25,
7556    VERT_ATTRIB_GENERIC10 = 26,
7557    VERT_ATTRIB_GENERIC11 = 27,
7558    VERT_ATTRIB_GENERIC12 = 28,
7559    VERT_ATTRIB_GENERIC13 = 29,
7560    VERT_ATTRIB_GENERIC14 = 30,
7561    VERT_ATTRIB_GENERIC15 = 31,
7562    VERT_ATTRIB_MAX = 32
7563 } gl_vert_attrib;
7564 typedef enum
7565 {
7566    VERT_RESULT_HPOS = 0,
7567    VERT_RESULT_COL0 = 1,
7568    VERT_RESULT_COL1 = 2,
7569    VERT_RESULT_FOGC = 3,
7570    VERT_RESULT_TEX0 = 4,
7571    VERT_RESULT_TEX1 = 5,
7572    VERT_RESULT_TEX2 = 6,
7573    VERT_RESULT_TEX3 = 7,
7574    VERT_RESULT_TEX4 = 8,
7575    VERT_RESULT_TEX5 = 9,
7576    VERT_RESULT_TEX6 = 10,
7577    VERT_RESULT_TEX7 = 11,
7578    VERT_RESULT_PSIZ = 12,
7579    VERT_RESULT_BFC0 = 13,
7580    VERT_RESULT_BFC1 = 14,
7581    VERT_RESULT_EDGE = 15,
7582    VERT_RESULT_VAR0 = 16,
7583    VERT_RESULT_MAX = (VERT_RESULT_VAR0 + 16)
7584 } gl_vert_result;
7585 typedef enum
7586 {
7587    GEOM_ATTRIB_POSITION = 0,
7588    GEOM_ATTRIB_COLOR0 = 1,
7589    GEOM_ATTRIB_COLOR1 = 2,
7590    GEOM_ATTRIB_SECONDARY_COLOR0 = 3,
7591    GEOM_ATTRIB_SECONDARY_COLOR1 = 4,
7592    GEOM_ATTRIB_FOG_FRAG_COORD = 5,
7593    GEOM_ATTRIB_POINT_SIZE = 6,
7594    GEOM_ATTRIB_CLIP_VERTEX = 7,
7595    GEOM_ATTRIB_PRIMITIVE_ID = 8,
7596    GEOM_ATTRIB_TEX_COORD = 9,
7597    GEOM_ATTRIB_VAR0 = 16,
7598    GEOM_ATTRIB_MAX = (GEOM_ATTRIB_VAR0 + 16)
7599 } gl_geom_attrib;
7600 typedef enum
7601 {
7602    GEOM_RESULT_POS = 0,
7603    GEOM_RESULT_COL0 = 1,
7604    GEOM_RESULT_COL1 = 2,
7605    GEOM_RESULT_SCOL0 = 3,
7606    GEOM_RESULT_SCOL1 = 4,
7607    GEOM_RESULT_FOGC = 5,
7608    GEOM_RESULT_TEX0 = 6,
7609    GEOM_RESULT_TEX1 = 7,
7610    GEOM_RESULT_TEX2 = 8,
7611    GEOM_RESULT_TEX3 = 9,
7612    GEOM_RESULT_TEX4 = 10,
7613    GEOM_RESULT_TEX5 = 11,
7614    GEOM_RESULT_TEX6 = 12,
7615    GEOM_RESULT_TEX7 = 13,
7616    GEOM_RESULT_PSIZ = 14,
7617    GEOM_RESULT_CLPV = 15,
7618    GEOM_RESULT_PRID = 16,
7619    GEOM_RESULT_LAYR = 17,
7620    GEOM_RESULT_VAR0 = 18,
7621    GEOM_RESULT_MAX = (GEOM_RESULT_VAR0 + 16 - 2)
7622 } gl_geom_result;
7623 typedef enum
7624 {
7625    FRAG_ATTRIB_WPOS = 0,
7626    FRAG_ATTRIB_COL0 = 1,
7627    FRAG_ATTRIB_COL1 = 2,
7628    FRAG_ATTRIB_FOGC = 3,
7629    FRAG_ATTRIB_TEX0 = 4,
7630    FRAG_ATTRIB_TEX1 = 5,
7631    FRAG_ATTRIB_TEX2 = 6,
7632    FRAG_ATTRIB_TEX3 = 7,
7633    FRAG_ATTRIB_TEX4 = 8,
7634    FRAG_ATTRIB_TEX5 = 9,
7635    FRAG_ATTRIB_TEX6 = 10,
7636    FRAG_ATTRIB_TEX7 = 11,
7637    FRAG_ATTRIB_FACE = 12,
7638    FRAG_ATTRIB_PNTC = 13,
7639    FRAG_ATTRIB_VAR0 = 14,
7640    FRAG_ATTRIB_MAX = (FRAG_ATTRIB_VAR0 + 16)
7641 } gl_frag_attrib;
7642 typedef enum
7643 {
7644    FRAG_RESULT_DEPTH = 0,
7645    FRAG_RESULT_STENCIL = 1,
7646    FRAG_RESULT_COLOR = 2,
7647    FRAG_RESULT_DATA0 = 3,
7648    FRAG_RESULT_MAX = (FRAG_RESULT_DATA0 + 8)
7649 } gl_frag_result;
7650 typedef enum
7651 {
7652    BUFFER_FRONT_LEFT,
7653    BUFFER_BACK_LEFT,
7654    BUFFER_FRONT_RIGHT,
7655    BUFFER_BACK_RIGHT,
7656    BUFFER_DEPTH,
7657    BUFFER_STENCIL,
7658    BUFFER_ACCUM,
7659    BUFFER_AUX0,
7660    BUFFER_COLOR0,
7661    BUFFER_COLOR1,
7662    BUFFER_COLOR2,
7663    BUFFER_COLOR3,
7664    BUFFER_COLOR4,
7665    BUFFER_COLOR5,
7666    BUFFER_COLOR6,
7667    BUFFER_COLOR7,
7668    BUFFER_COUNT
7669 } gl_buffer_index;
7670 struct gl_config
7671 {
7672    GLboolean rgbMode;
7673    GLboolean floatMode;
7674    GLboolean colorIndexMode;
7675    GLuint doubleBufferMode;
7676    GLuint stereoMode;
7677    GLboolean haveAccumBuffer;
7678    GLboolean haveDepthBuffer;
7679    GLboolean haveStencilBuffer;
7680    GLint redBits, greenBits, blueBits, alphaBits;
7681    GLuint redMask, greenMask, blueMask, alphaMask;
7682    GLint rgbBits;
7683    GLint indexBits;
7684    GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits;
7685    GLint depthBits;
7686    GLint stencilBits;
7687    GLint numAuxBuffers;
7688    GLint level;
7689    GLint visualRating;
7690    GLint transparentPixel;
7691    GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha;
7692    GLint transparentIndex;
7693    GLint sampleBuffers;
7694    GLint samples;
7695    GLint maxPbufferWidth;
7696    GLint maxPbufferHeight;
7697    GLint maxPbufferPixels;
7698    GLint optimalPbufferWidth;
7699    GLint optimalPbufferHeight;
7700    GLint swapMethod;
7701    GLint bindToTextureRgb;
7702    GLint bindToTextureRgba;
7703    GLint bindToMipmapTexture;
7704    GLint bindToTextureTargets;
7705    GLint yInverted;
7706    GLint sRGBCapable;
7707 };
7708 struct gl_color_table
7709 {
7710    GLenum InternalFormat;
7711    GLenum _BaseFormat;
7712    GLuint Size;
7713    GLfloat *TableF;
7714    GLubyte *TableUB;
7715    GLubyte RedSize;
7716    GLubyte GreenSize;
7717    GLubyte BlueSize;
7718    GLubyte AlphaSize;
7719    GLubyte LuminanceSize;
7720    GLubyte IntensitySize;
7721 };
7722 struct gl_shine_tab
7723 {
7724    struct gl_shine_tab *next, *prev;
7725    GLfloat tab[256 +1];
7726    GLfloat shininess;
7727    GLuint refcount;
7728 };
7729 struct gl_light
7730 {
7731    struct gl_light *next;
7732    struct gl_light *prev;
7733    GLfloat Ambient[4];
7734    GLfloat Diffuse[4];
7735    GLfloat Specular[4];
7736    GLfloat EyePosition[4];
7737    GLfloat SpotDirection[4];
7738    GLfloat SpotExponent;
7739    GLfloat SpotCutoff;
7740    GLfloat _CosCutoffNeg;
7741    GLfloat _CosCutoff;
7742    GLfloat ConstantAttenuation;
7743    GLfloat LinearAttenuation;
7744    GLfloat QuadraticAttenuation;
7745    GLboolean Enabled;
7746    GLbitfield _Flags;
7747    GLfloat _Position[4];
7748    GLfloat _VP_inf_norm[3];
7749    GLfloat _h_inf_norm[3];
7750    GLfloat _NormSpotDirection[4];
7751    GLfloat _VP_inf_spot_attenuation;
7752    GLfloat _SpotExpTable[512][2];
7753    GLfloat _MatAmbient[2][3];
7754    GLfloat _MatDiffuse[2][3];
7755    GLfloat _MatSpecular[2][3];
7756    GLfloat _dli;
7757    GLfloat _sli;
7758 };
7759 struct gl_lightmodel
7760 {
7761    GLfloat Ambient[4];
7762    GLboolean LocalViewer;
7763    GLboolean TwoSide;
7764    GLenum ColorControl;
7765 };
7766 struct gl_material
7767 {
7768    GLfloat Attrib[12][4];
7769 };
7770 struct gl_accum_attrib
7771 {
7772    GLfloat ClearColor[4];
7773 };
7774 struct gl_colorbuffer_attrib
7775 {
7776    GLuint ClearIndex;
7777    GLfloat ClearColorUnclamped[4];
7778    GLclampf ClearColor[4];
7779    GLuint IndexMask;
7780    GLubyte ColorMask[8][4];
7781    GLenum DrawBuffer[8];
7782    GLboolean AlphaEnabled;
7783    GLenum AlphaFunc;
7784    GLfloat AlphaRefUnclamped;
7785    GLclampf AlphaRef;
7786    GLbitfield BlendEnabled;
7787    GLfloat BlendColorUnclamped[4];
7788    GLfloat BlendColor[4];
7789    struct
7790    {
7791       GLenum SrcRGB;
7792       GLenum DstRGB;
7793       GLenum SrcA;
7794       GLenum DstA;
7795       GLenum EquationRGB;
7796       GLenum EquationA;
7797    } Blend[8];
7798    GLboolean _BlendFuncPerBuffer;
7799    GLboolean _BlendEquationPerBuffer;
7800    GLenum LogicOp;
7801    GLboolean IndexLogicOpEnabled;
7802    GLboolean ColorLogicOpEnabled;
7803    GLboolean _LogicOpEnabled;
7804    GLboolean DitherFlag;
7805    GLenum ClampFragmentColor;
7806    GLboolean _ClampFragmentColor;
7807    GLenum ClampReadColor;
7808    GLboolean _ClampReadColor;
7809    GLboolean sRGBEnabled;
7810 };
7811 struct gl_current_attrib
7812 {
7813    GLfloat Attrib[VERT_ATTRIB_MAX][4];
7814    GLfloat RasterPos[4];
7815    GLfloat RasterDistance;
7816    GLfloat RasterColor[4];
7817    GLfloat RasterSecondaryColor[4];
7818    GLfloat RasterTexCoords[8][4];
7819    GLboolean RasterPosValid;
7820 };
7821 struct gl_depthbuffer_attrib
7822 {
7823    GLenum Func;
7824    GLclampd Clear;
7825    GLboolean Test;
7826    GLboolean Mask;
7827    GLboolean BoundsTest;
7828    GLfloat BoundsMin, BoundsMax;
7829 };
7830 struct gl_eval_attrib
7831 {
7832    GLboolean Map1Color4;
7833    GLboolean Map1Index;
7834    GLboolean Map1Normal;
7835    GLboolean Map1TextureCoord1;
7836    GLboolean Map1TextureCoord2;
7837    GLboolean Map1TextureCoord3;
7838    GLboolean Map1TextureCoord4;
7839    GLboolean Map1Vertex3;
7840    GLboolean Map1Vertex4;
7841    GLboolean Map1Attrib[16];
7842    GLboolean Map2Color4;
7843    GLboolean Map2Index;
7844    GLboolean Map2Normal;
7845    GLboolean Map2TextureCoord1;
7846    GLboolean Map2TextureCoord2;
7847    GLboolean Map2TextureCoord3;
7848    GLboolean Map2TextureCoord4;
7849    GLboolean Map2Vertex3;
7850    GLboolean Map2Vertex4;
7851    GLboolean Map2Attrib[16];
7852    GLboolean AutoNormal;
7853    GLint MapGrid1un;
7854    GLfloat MapGrid1u1, MapGrid1u2, MapGrid1du;
7855    GLint MapGrid2un, MapGrid2vn;
7856    GLfloat MapGrid2u1, MapGrid2u2, MapGrid2du;
7857    GLfloat MapGrid2v1, MapGrid2v2, MapGrid2dv;
7858 };
7859 struct gl_fog_attrib
7860 {
7861    GLboolean Enabled;
7862    GLfloat ColorUnclamped[4];
7863    GLfloat Color[4];
7864    GLfloat Density;
7865    GLfloat Start;
7866    GLfloat End;
7867    GLfloat Index;
7868    GLenum Mode;
7869    GLboolean ColorSumEnabled;
7870    GLenum FogCoordinateSource;
7871    GLfloat _Scale;
7872 };
7873 enum gl_frag_depth_layout {
7874     FRAG_DEPTH_LAYOUT_NONE,
7875     FRAG_DEPTH_LAYOUT_ANY,
7876     FRAG_DEPTH_LAYOUT_GREATER,
7877     FRAG_DEPTH_LAYOUT_LESS,
7878     FRAG_DEPTH_LAYOUT_UNCHANGED
7879 };
7880 struct gl_hint_attrib
7881 {
7882    GLenum PerspectiveCorrection;
7883    GLenum PointSmooth;
7884    GLenum LineSmooth;
7885    GLenum PolygonSmooth;
7886    GLenum Fog;
7887    GLenum ClipVolumeClipping;
7888    GLenum TextureCompression;
7889    GLenum GenerateMipmap;
7890    GLenum FragmentShaderDerivative;
7891 };
7892 struct gl_light_attrib
7893 {
7894    struct gl_light Light[8];
7895    struct gl_lightmodel Model;
7896    struct gl_material Material;
7897    GLboolean Enabled;
7898    GLenum ShadeModel;
7899    GLenum ProvokingVertex;
7900    GLenum ColorMaterialFace;
7901    GLenum ColorMaterialMode;
7902    GLbitfield ColorMaterialBitmask;
7903    GLboolean ColorMaterialEnabled;
7904    GLenum ClampVertexColor;
7905    GLboolean _ClampVertexColor;
7906    struct gl_light EnabledList;
7907    GLboolean _NeedEyeCoords;
7908    GLboolean _NeedVertices;
7909    GLbitfield _Flags;
7910    GLfloat _BaseColor[2][3];
7911 };
7912 struct gl_line_attrib
7913 {
7914    GLboolean SmoothFlag;
7915    GLboolean StippleFlag;
7916    GLushort StipplePattern;
7917    GLint StippleFactor;
7918    GLfloat Width;
7919 };
7920 struct gl_list_attrib
7921 {
7922    GLuint ListBase;
7923 };
7924 struct gl_multisample_attrib
7925 {
7926    GLboolean Enabled;
7927    GLboolean _Enabled;
7928    GLboolean SampleAlphaToCoverage;
7929    GLboolean SampleAlphaToOne;
7930    GLboolean SampleCoverage;
7931    GLfloat SampleCoverageValue;
7932    GLboolean SampleCoverageInvert;
7933 };
7934 struct gl_pixelmap
7935 {
7936    GLint Size;
7937    GLfloat Map[256];
7938    GLubyte Map8[256];
7939 };
7940 struct gl_pixelmaps
7941 {
7942    struct gl_pixelmap RtoR;
7943    struct gl_pixelmap GtoG;
7944    struct gl_pixelmap BtoB;
7945    struct gl_pixelmap AtoA;
7946    struct gl_pixelmap ItoR;
7947    struct gl_pixelmap ItoG;
7948    struct gl_pixelmap ItoB;
7949    struct gl_pixelmap ItoA;
7950    struct gl_pixelmap ItoI;
7951    struct gl_pixelmap StoS;
7952 };
7953 struct gl_pixel_attrib
7954 {
7955    GLenum ReadBuffer;
7956    GLfloat RedBias, RedScale;
7957    GLfloat GreenBias, GreenScale;
7958    GLfloat BlueBias, BlueScale;
7959    GLfloat AlphaBias, AlphaScale;
7960    GLfloat DepthBias, DepthScale;
7961    GLint IndexShift, IndexOffset;
7962    GLboolean MapColorFlag;
7963    GLboolean MapStencilFlag;
7964    GLfloat ZoomX, ZoomY;
7965 };
7966 struct gl_point_attrib
7967 {
7968    GLboolean SmoothFlag;
7969    GLfloat Size;
7970    GLfloat Params[3];
7971    GLfloat MinSize, MaxSize;
7972    GLfloat Threshold;
7973    GLboolean _Attenuated;
7974    GLboolean PointSprite;
7975    GLboolean CoordReplace[8];
7976    GLenum SpriteRMode;
7977    GLenum SpriteOrigin;
7978 };
7979 struct gl_polygon_attrib
7980 {
7981    GLenum FrontFace;
7982    GLenum FrontMode;
7983    GLenum BackMode;
7984    GLboolean _FrontBit;
7985    GLboolean CullFlag;
7986    GLboolean SmoothFlag;
7987    GLboolean StippleFlag;
7988    GLenum CullFaceMode;
7989    GLfloat OffsetFactor;
7990    GLfloat OffsetUnits;
7991    GLboolean OffsetPoint;
7992    GLboolean OffsetLine;
7993    GLboolean OffsetFill;
7994 };
7995 struct gl_scissor_attrib
7996 {
7997    GLboolean Enabled;
7998    GLint X, Y;
7999    GLsizei Width, Height;
8000 };
8001 struct gl_stencil_attrib
8002 {
8003    GLboolean Enabled;
8004    GLboolean TestTwoSide;
8005    GLubyte ActiveFace;
8006    GLboolean _Enabled;
8007    GLboolean _TestTwoSide;
8008    GLubyte _BackFace;
8009    GLenum Function[3];
8010    GLenum FailFunc[3];
8011    GLenum ZPassFunc[3];
8012    GLenum ZFailFunc[3];
8013    GLint Ref[3];
8014    GLuint ValueMask[3];
8015    GLuint WriteMask[3];
8016    GLuint Clear;
8017 };
8018 typedef enum
8019 {
8020    TEXTURE_BUFFER_INDEX,
8021    TEXTURE_2D_ARRAY_INDEX,
8022    TEXTURE_1D_ARRAY_INDEX,
8023    TEXTURE_CUBE_INDEX,
8024    TEXTURE_3D_INDEX,
8025    TEXTURE_RECT_INDEX,
8026    TEXTURE_2D_INDEX,
8027    TEXTURE_1D_INDEX,
8028    NUM_TEXTURE_TARGETS
8029 } gl_texture_index;
8030 typedef void (*FetchTexelFuncC)( const struct gl_texture_image *texImage,
8031                                  GLint col, GLint row, GLint img,
8032                                  GLchan *texelOut );
8033 typedef void (*FetchTexelFuncF)( const struct gl_texture_image *texImage,
8034                                  GLint col, GLint row, GLint img,
8035                                  GLfloat *texelOut );
8036 typedef void (*StoreTexelFunc)(struct gl_texture_image *texImage,
8037                                GLint col, GLint row, GLint img,
8038                                const void *texel);
8039 struct gl_texture_image
8040 {
8041    GLint InternalFormat;
8042    GLenum _BaseFormat;
8043    gl_format TexFormat;
8044    GLuint Border;
8045    GLuint Width;
8046    GLuint Height;
8047    GLuint Depth;
8048    GLuint Width2;
8049    GLuint Height2;
8050    GLuint Depth2;
8051    GLuint WidthLog2;
8052    GLuint HeightLog2;
8053    GLuint DepthLog2;
8054    GLuint MaxLog2;
8055    GLfloat WidthScale;
8056    GLfloat HeightScale;
8057    GLfloat DepthScale;
8058    GLboolean IsClientData;
8059    GLboolean _IsPowerOfTwo;
8060    struct gl_texture_object *TexObject;
8061    FetchTexelFuncC FetchTexelc;
8062    FetchTexelFuncF FetchTexelf;
8063    GLuint RowStride;
8064    GLuint *ImageOffsets;
8065    GLvoid *Data;
8066    void *DriverData;
8067 };
8068 typedef enum
8069 {
8070    FACE_POS_X = 0,
8071    FACE_NEG_X = 1,
8072    FACE_POS_Y = 2,
8073    FACE_NEG_Y = 3,
8074    FACE_POS_Z = 4,
8075    FACE_NEG_Z = 5,
8076    MAX_FACES = 6
8077 } gl_face_index;
8078 struct gl_sampler_object
8079 {
8080    GLuint Name;
8081    GLint RefCount;
8082    GLenum WrapS;
8083    GLenum WrapT;
8084    GLenum WrapR;
8085    GLenum MinFilter;
8086    GLenum MagFilter;
8087    union {
8088       GLfloat f[4];
8089       GLuint ui[4];
8090       GLint i[4];
8091    } BorderColor;
8092    GLfloat MinLod;
8093    GLfloat MaxLod;
8094    GLfloat LodBias;
8095    GLfloat MaxAnisotropy;
8096    GLenum CompareMode;
8097    GLenum CompareFunc;
8098    GLfloat CompareFailValue;
8099    GLenum sRGBDecode;
8100    GLboolean CubeMapSeamless;
8101    GLenum DepthMode;
8102    GLboolean _CompleteTexture;
8103 };
8104 struct gl_texture_object
8105 {
8106    _glthread_Mutex Mutex;
8107    GLint RefCount;
8108    GLuint Name;
8109    GLenum Target;
8110    struct gl_sampler_object Sampler;
8111    GLfloat Priority;
8112    GLint BaseLevel;
8113    GLint MaxLevel;
8114    GLint _MaxLevel;
8115    GLfloat _MaxLambda;
8116    GLint CropRect[4];
8117    GLenum Swizzle[4];
8118    GLuint _Swizzle;
8119    GLboolean GenerateMipmap;
8120    GLboolean _Complete;
8121    GLboolean _RenderToTexture;
8122    GLboolean Purgeable;
8123    struct gl_texture_image *Image[MAX_FACES][15];
8124    struct gl_buffer_object *BufferObject;
8125    GLenum BufferObjectFormat;
8126    struct gl_color_table Palette;
8127    void *DriverData;
8128 };
8129 struct gl_tex_env_combine_state
8130 {
8131    GLenum ModeRGB;
8132    GLenum ModeA;
8133    GLenum SourceRGB[4];
8134    GLenum SourceA[4];
8135    GLenum OperandRGB[4];
8136    GLenum OperandA[4];
8137    GLuint ScaleShiftRGB;
8138    GLuint ScaleShiftA;
8139    GLuint _NumArgsRGB;
8140    GLuint _NumArgsA;
8141 };
8142 struct gl_texgen
8143 {
8144    GLenum Mode;
8145    GLbitfield _ModeBit;
8146    GLfloat ObjectPlane[4];
8147    GLfloat EyePlane[4];
8148 };
8149 struct gl_texture_unit
8150 {
8151    GLbitfield Enabled;
8152    GLbitfield _ReallyEnabled;
8153    GLenum EnvMode;
8154    GLclampf EnvColor[4];
8155    GLfloat EnvColorUnclamped[4];
8156    struct gl_texgen GenS;
8157    struct gl_texgen GenT;
8158    struct gl_texgen GenR;
8159    struct gl_texgen GenQ;
8160    GLbitfield TexGenEnabled;
8161    GLbitfield _GenFlags;
8162    GLfloat LodBias;
8163    GLenum BumpTarget;
8164    GLfloat RotMatrix[4];
8165    struct gl_sampler_object *Sampler;
8166    struct gl_tex_env_combine_state Combine;
8167    struct gl_tex_env_combine_state _EnvMode;
8168    struct gl_tex_env_combine_state *_CurrentCombine;
8169    struct gl_texture_object *CurrentTex[NUM_TEXTURE_TARGETS];
8170    struct gl_texture_object *_Current;
8171 };
8172 struct gl_texture_attrib
8173 {
8174    GLuint CurrentUnit;
8175    struct gl_texture_unit Unit[(16 + 16)];
8176    struct gl_texture_object *ProxyTex[NUM_TEXTURE_TARGETS];
8177    struct gl_buffer_object *BufferObject;
8178    GLboolean CubeMapSeamless;
8179    GLboolean SharedPalette;
8180    struct gl_color_table Palette;
8181    GLbitfield _EnabledUnits;
8182    GLbitfield _EnabledCoordUnits;
8183    GLbitfield _TexGenEnabled;
8184    GLbitfield _TexMatEnabled;
8185    GLbitfield _GenFlags;
8186 };
8187 struct gl_transform_attrib
8188 {
8189    GLenum MatrixMode;
8190    GLfloat EyeUserPlane[6][4];
8191    GLfloat _ClipUserPlane[6][4];
8192    GLbitfield ClipPlanesEnabled;
8193    GLboolean Normalize;
8194    GLboolean RescaleNormals;
8195    GLboolean RasterPositionUnclipped;
8196    GLboolean DepthClamp;
8197    GLfloat CullEyePos[4];
8198    GLfloat CullObjPos[4];
8199 };
8200 struct gl_viewport_attrib
8201 {
8202    GLint X, Y;
8203    GLsizei Width, Height;
8204    GLfloat Near, Far;
8205    GLmatrix _WindowMap;
8206 };
8207 struct gl_buffer_object
8208 {
8209    _glthread_Mutex Mutex;
8210    GLint RefCount;
8211    GLuint Name;
8212    GLenum Usage;
8213    GLsizeiptrARB Size;
8214    GLubyte *Data;
8215    GLbitfield AccessFlags;
8216    GLvoid *Pointer;
8217    GLintptr Offset;
8218    GLsizeiptr Length;
8219    GLboolean Written;
8220    GLboolean Purgeable;
8221 };
8222 struct gl_pixelstore_attrib
8223 {
8224    GLint Alignment;
8225    GLint RowLength;
8226    GLint SkipPixels;
8227    GLint SkipRows;
8228    GLint ImageHeight;
8229    GLint SkipImages;
8230    GLboolean SwapBytes;
8231    GLboolean LsbFirst;
8232    GLboolean ClientStorage;
8233    GLboolean Invert;
8234    struct gl_buffer_object *BufferObj;
8235 };
8236 struct gl_client_array
8237 {
8238    GLint Size;
8239    GLenum Type;
8240    GLenum Format;
8241    GLsizei Stride;
8242    GLsizei StrideB;
8243    const GLubyte *Ptr;
8244    GLboolean Enabled;
8245    GLboolean Normalized;
8246    GLboolean Integer;
8247    GLuint InstanceDivisor;
8248    GLuint _ElementSize;
8249    struct gl_buffer_object *BufferObj;
8250    GLuint _MaxElement;
8251 };
8252 struct gl_array_object
8253 {
8254    GLuint Name;
8255    GLint RefCount;
8256    _glthread_Mutex Mutex;
8257    GLboolean VBOonly;
8258    struct gl_client_array Vertex;
8259    struct gl_client_array Weight;
8260    struct gl_client_array Normal;
8261    struct gl_client_array Color;
8262    struct gl_client_array SecondaryColor;
8263    struct gl_client_array FogCoord;
8264    struct gl_client_array Index;
8265    struct gl_client_array EdgeFlag;
8266    struct gl_client_array TexCoord[8];
8267    struct gl_client_array PointSize;
8268    struct gl_client_array VertexAttrib[16];
8269    GLbitfield _Enabled;
8270    GLuint _MaxElement;
8271 };
8272 struct gl_array_attrib
8273 {
8274    struct gl_array_object *ArrayObj;
8275    struct gl_array_object *DefaultArrayObj;
8276    struct _mesa_HashTable *Objects;
8277    GLint ActiveTexture;
8278    GLuint LockFirst;
8279    GLuint LockCount;
8280    GLboolean PrimitiveRestart;
8281    GLuint RestartIndex;
8282    GLbitfield NewState;
8283    GLboolean RebindArrays;
8284    struct gl_buffer_object *ArrayBufferObj;
8285    struct gl_buffer_object *ElementArrayBufferObj;
8286 };
8287 struct gl_feedback
8288 {
8289    GLenum Type;
8290    GLbitfield _Mask;
8291    GLfloat *Buffer;
8292    GLuint BufferSize;
8293    GLuint Count;
8294 };
8295 struct gl_selection
8296 {
8297    GLuint *Buffer;
8298    GLuint BufferSize;
8299    GLuint BufferCount;
8300    GLuint Hits;
8301    GLuint NameStackDepth;
8302    GLuint NameStack[64];
8303    GLboolean HitFlag;
8304    GLfloat HitMinZ;
8305    GLfloat HitMaxZ;
8306 };
8307 struct gl_1d_map
8308 {
8309    GLuint Order;
8310    GLfloat u1, u2, du;
8311    GLfloat *Points;
8312 };
8313 struct gl_2d_map
8314 {
8315    GLuint Uorder;
8316    GLuint Vorder;
8317    GLfloat u1, u2, du;
8318    GLfloat v1, v2, dv;
8319    GLfloat *Points;
8320 };
8321 struct gl_evaluators
8322 {
8323    struct gl_1d_map Map1Vertex3;
8324    struct gl_1d_map Map1Vertex4;
8325    struct gl_1d_map Map1Index;
8326    struct gl_1d_map Map1Color4;
8327    struct gl_1d_map Map1Normal;
8328    struct gl_1d_map Map1Texture1;
8329    struct gl_1d_map Map1Texture2;
8330    struct gl_1d_map Map1Texture3;
8331    struct gl_1d_map Map1Texture4;
8332    struct gl_1d_map Map1Attrib[16];
8333    struct gl_2d_map Map2Vertex3;
8334    struct gl_2d_map Map2Vertex4;
8335    struct gl_2d_map Map2Index;
8336    struct gl_2d_map Map2Color4;
8337    struct gl_2d_map Map2Normal;
8338    struct gl_2d_map Map2Texture1;
8339    struct gl_2d_map Map2Texture2;
8340    struct gl_2d_map Map2Texture3;
8341    struct gl_2d_map Map2Texture4;
8342    struct gl_2d_map Map2Attrib[16];
8343 };
8344 typedef enum
8345 {
8346    PROGRAM_TEMPORARY,
8347    PROGRAM_INPUT,
8348    PROGRAM_OUTPUT,
8349    PROGRAM_VARYING,
8350    PROGRAM_LOCAL_PARAM,
8351    PROGRAM_ENV_PARAM,
8352    PROGRAM_STATE_VAR,
8353    PROGRAM_NAMED_PARAM,
8354    PROGRAM_CONSTANT,
8355    PROGRAM_UNIFORM,
8356    PROGRAM_WRITE_ONLY,
8357    PROGRAM_ADDRESS,
8358    PROGRAM_SAMPLER,
8359    PROGRAM_SYSTEM_VALUE,
8360    PROGRAM_UNDEFINED,
8361    PROGRAM_FILE_MAX
8362 } gl_register_file;
8363 typedef enum
8364 {
8365    SYSTEM_VALUE_FRONT_FACE,
8366    SYSTEM_VALUE_INSTANCE_ID,
8367    SYSTEM_VALUE_MAX
8368 } gl_system_value;
8369 struct prog_instruction;
8370 struct gl_program_parameter_list;
8371 struct gl_uniform_list;
8372 struct gl_program
8373 {
8374    GLuint Id;
8375    GLubyte *String;
8376    GLint RefCount;
8377    GLenum Target;
8378    GLenum Format;
8379    GLboolean Resident;
8380    struct prog_instruction *Instructions;
8381    GLbitfield InputsRead;
8382    GLbitfield64 OutputsWritten;
8383    GLbitfield SystemValuesRead;
8384    GLbitfield InputFlags[32];
8385    GLbitfield OutputFlags[64];
8386    GLbitfield TexturesUsed[((8 > 16) ? 8 : 16)];
8387    GLbitfield SamplersUsed;
8388    GLbitfield ShadowSamplers;
8389    struct gl_program_parameter_list *Parameters;
8390    GLfloat LocalParams[1024][4];
8391    struct gl_program_parameter_list *Varying;
8392    struct gl_program_parameter_list *Attributes;
8393    GLubyte SamplerUnits[16];
8394    gl_texture_index SamplerTargets[16];
8395    GLbitfield IndirectRegisterFiles;
8396    GLuint NumInstructions;
8397    GLuint NumTemporaries;
8398    GLuint NumParameters;
8399    GLuint NumAttributes;
8400    GLuint NumAddressRegs;
8401    GLuint NumAluInstructions;
8402    GLuint NumTexInstructions;
8403    GLuint NumTexIndirections;
8404    GLuint NumNativeInstructions;
8405    GLuint NumNativeTemporaries;
8406    GLuint NumNativeParameters;
8407    GLuint NumNativeAttributes;
8408    GLuint NumNativeAddressRegs;
8409    GLuint NumNativeAluInstructions;
8410    GLuint NumNativeTexInstructions;
8411    GLuint NumNativeTexIndirections;
8412 };
8413 struct gl_vertex_program
8414 {
8415    struct gl_program Base;
8416    GLboolean IsNVProgram;
8417    GLboolean IsPositionInvariant;
8418 };
8419 struct gl_geometry_program
8420 {
8421    struct gl_program Base;
8422    GLint VerticesOut;
8423    GLenum InputType;
8424    GLenum OutputType;
8425 };
8426 struct gl_fragment_program
8427 {
8428    struct gl_program Base;
8429    GLboolean UsesKill;
8430    GLboolean OriginUpperLeft;
8431    GLboolean PixelCenterInteger;
8432    enum gl_frag_depth_layout FragDepthLayout;
8433 };
8434 struct gl_program_state
8435 {
8436    GLint ErrorPos;
8437    const char *ErrorString;
8438 };
8439 struct gl_vertex_program_state
8440 {
8441    GLboolean Enabled;
8442    GLboolean _Enabled;
8443    GLboolean PointSizeEnabled;
8444    GLboolean TwoSideEnabled;
8445    struct gl_vertex_program *Current;
8446    struct gl_vertex_program *_Current;
8447    GLfloat Parameters[256][4];
8448    GLenum TrackMatrix[256 / 4];
8449    GLenum TrackMatrixTransform[256 / 4];
8450    GLboolean _MaintainTnlProgram;
8451    struct gl_vertex_program *_TnlProgram;
8452    struct gl_program_cache *Cache;
8453    GLboolean _Overriden;
8454 };
8455 struct gl_geometry_program_state
8456 {
8457    GLboolean Enabled;
8458    GLboolean _Enabled;
8459    struct gl_geometry_program *Current;
8460    struct gl_geometry_program *_Current;
8461    GLfloat Parameters[256][4];
8462    struct gl_program_cache *Cache;
8463 };
8464 struct gl_fragment_program_state
8465 {
8466    GLboolean Enabled;
8467    GLboolean _Enabled;
8468    struct gl_fragment_program *Current;
8469    struct gl_fragment_program *_Current;
8470    GLfloat Parameters[256][4];
8471    GLboolean _MaintainTexEnvProgram;
8472    struct gl_fragment_program *_TexEnvProgram;
8473    struct gl_program_cache *Cache;
8474 };
8475 struct atifs_instruction;
8476 struct atifs_setupinst;
8477 struct ati_fragment_shader
8478 {
8479    GLuint Id;
8480    GLint RefCount;
8481    struct atifs_instruction *Instructions[2];
8482    struct atifs_setupinst *SetupInst[2];
8483    GLfloat Constants[8][4];
8484    GLbitfield LocalConstDef;
8485    GLubyte numArithInstr[2];
8486    GLubyte regsAssigned[2];
8487    GLubyte NumPasses;
8488    GLubyte cur_pass;
8489    GLubyte last_optype;
8490    GLboolean interpinp1;
8491    GLboolean isValid;
8492    GLuint swizzlerq;
8493 };
8494 struct gl_ati_fragment_shader_state
8495 {
8496    GLboolean Enabled;
8497    GLboolean _Enabled;
8498    GLboolean Compiling;
8499    GLfloat GlobalConstants[8][4];
8500    struct ati_fragment_shader *Current;
8501 };
8502 struct gl_query_object
8503 {
8504    GLenum Target;
8505    GLuint Id;
8506    GLuint64EXT Result;
8507    GLboolean Active;
8508    GLboolean Ready;
8509 };
8510 struct gl_query_state
8511 {
8512    struct _mesa_HashTable *QueryObjects;
8513    struct gl_query_object *CurrentOcclusionObject;
8514    struct gl_query_object *CurrentTimerObject;
8515    struct gl_query_object *CondRenderQuery;
8516    struct gl_query_object *PrimitivesGenerated;
8517    struct gl_query_object *PrimitivesWritten;
8518    struct gl_query_object *TimeElapsed;
8519    GLenum CondRenderMode;
8520 };
8521 struct gl_sync_object {
8522    struct simple_node link;
8523    GLenum Type;
8524    GLuint Name;
8525    GLint RefCount;
8526    GLboolean DeletePending;
8527    GLenum SyncCondition;
8528    GLbitfield Flags;
8529    GLuint StatusFlag:1;
8530 };
8531 struct gl_sl_pragmas
8532 {
8533    GLboolean IgnoreOptimize;
8534    GLboolean IgnoreDebug;
8535    GLboolean Optimize;
8536    GLboolean Debug;
8537 };
8538 struct gl_shader
8539 {
8540    GLenum Type;
8541    GLuint Name;
8542    GLint RefCount;
8543    GLboolean DeletePending;
8544    GLboolean CompileStatus;
8545    const GLchar *Source;
8546    GLuint SourceChecksum;
8547    struct gl_program *Program;
8548    GLchar *InfoLog;
8549    struct gl_sl_pragmas Pragmas;
8550    unsigned Version;
8551    struct exec_list *ir;
8552    struct glsl_symbol_table *symbols;
8553    struct gl_shader *builtins_to_link[16];
8554    unsigned num_builtins_to_link;
8555 };
8556 struct gl_shader_program
8557 {
8558    GLenum Type;
8559    GLuint Name;
8560    GLint RefCount;
8561    GLboolean DeletePending;
8562    GLuint NumShaders;
8563    struct gl_shader **Shaders;
8564    struct gl_program_parameter_list *Attributes;
8565    struct {
8566       GLenum BufferMode;
8567       GLuint NumVarying;
8568       GLchar **VaryingNames;
8569    } TransformFeedback;
8570    struct {
8571       GLint VerticesOut;
8572       GLenum InputType;
8573       GLenum OutputType;
8574    } Geom;
8575    struct gl_vertex_program *VertexProgram;
8576    struct gl_fragment_program *FragmentProgram;
8577    struct gl_geometry_program *GeometryProgram;
8578    struct gl_uniform_list *Uniforms;
8579    struct gl_program_parameter_list *Varying;
8580    GLboolean LinkStatus;
8581    GLboolean Validated;
8582    GLboolean _Used;
8583    GLchar *InfoLog;
8584    unsigned Version;
8585    struct gl_shader *_LinkedShaders[MESA_SHADER_TYPES];
8586 };
8587 struct gl_shader_state
8588 {
8589    struct gl_shader_program *CurrentVertexProgram;
8590    struct gl_shader_program *CurrentGeometryProgram;
8591    struct gl_shader_program *CurrentFragmentProgram;
8592    struct gl_shader_program *ActiveProgram;
8593    void *MemPool;
8594    GLbitfield Flags;
8595 };
8596 struct gl_shader_compiler_options
8597 {
8598    GLboolean EmitCondCodes;
8599    GLboolean EmitNVTempInitialization;
8600    GLboolean EmitNoIfs;
8601    GLboolean EmitNoLoops;
8602    GLboolean EmitNoFunctions;
8603    GLboolean EmitNoCont;
8604    GLboolean EmitNoMainReturn;
8605    GLboolean EmitNoNoise;
8606    GLboolean EmitNoPow;
8607    GLboolean EmitNoIndirectInput;
8608    GLboolean EmitNoIndirectOutput;
8609    GLboolean EmitNoIndirectTemp;
8610    GLboolean EmitNoIndirectUniform;
8611    GLuint MaxUnrollIterations;
8612    struct gl_sl_pragmas DefaultPragmas;
8613 };
8614 struct gl_transform_feedback_object
8615 {
8616    GLuint Name;
8617    GLint RefCount;
8618    GLboolean Active;
8619    GLboolean Paused;
8620    GLuint BufferNames[32];
8621    struct gl_buffer_object *Buffers[32];
8622    GLintptr Offset[32];
8623    GLsizeiptr Size[32];
8624 };
8625 struct gl_transform_feedback
8626 {
8627    GLenum Mode;
8628    GLboolean RasterDiscard;
8629    struct gl_buffer_object *CurrentBuffer;
8630    struct _mesa_HashTable *Objects;
8631    struct gl_transform_feedback_object *CurrentObject;
8632    struct gl_transform_feedback_object *DefaultObject;
8633 };
8634 struct gl_shared_state
8635 {
8636    _glthread_Mutex Mutex;
8637    GLint RefCount;
8638    struct _mesa_HashTable *DisplayList;
8639    struct _mesa_HashTable *TexObjects;
8640    struct gl_texture_object *DefaultTex[NUM_TEXTURE_TARGETS];
8641    struct gl_texture_object *FallbackTex;
8642    _glthread_Mutex TexMutex;
8643    GLuint TextureStateStamp;
8644    struct gl_buffer_object *NullBufferObj;
8645    struct _mesa_HashTable *Programs;
8646    struct gl_vertex_program *DefaultVertexProgram;
8647    struct gl_fragment_program *DefaultFragmentProgram;
8648    struct gl_geometry_program *DefaultGeometryProgram;
8649    struct _mesa_HashTable *ATIShaders;
8650    struct ati_fragment_shader *DefaultFragmentShader;
8651    struct _mesa_HashTable *BufferObjects;
8652    struct _mesa_HashTable *ShaderObjects;
8653    struct _mesa_HashTable *RenderBuffers;
8654    struct _mesa_HashTable *FrameBuffers;
8655    struct simple_node SyncObjects;
8656    struct _mesa_HashTable *SamplerObjects;
8657    void *DriverData;
8658 };
8659 struct gl_renderbuffer
8660 {
8661    _glthread_Mutex Mutex;
8662    GLuint ClassID;
8663    GLuint Name;
8664    GLint RefCount;
8665    GLuint Width, Height;
8666    GLint RowStride;
8667    GLboolean Purgeable;
8668    GLboolean AttachedAnytime;
8669    GLubyte NumSamples;
8670    GLenum InternalFormat;
8671    GLenum _BaseFormat;
8672    gl_format Format;
8673    GLenum DataType;
8674    GLvoid *Data;
8675    struct gl_renderbuffer *Wrapped;
8676    void (*Delete)(struct gl_renderbuffer *rb);
8677    GLboolean (*AllocStorage)(struct gl_context *ctx, struct gl_renderbuffer *rb,
8678                              GLenum internalFormat,
8679                              GLuint width, GLuint height);
8680    void *(*GetPointer)(struct gl_context *ctx, struct gl_renderbuffer *rb,
8681                        GLint x, GLint y);
8682    void (*GetRow)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
8683                   GLint x, GLint y, void *values);
8684    void (*GetValues)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
8685                      const GLint x[], const GLint y[], void *values);
8686    void (*PutRow)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
8687                   GLint x, GLint y, const void *values, const GLubyte *mask);
8688    void (*PutRowRGB)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
8689                     GLint x, GLint y, const void *values, const GLubyte *mask);
8690    void (*PutMonoRow)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
8691                      GLint x, GLint y, const void *value, const GLubyte *mask);
8692    void (*PutValues)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
8693                      const GLint x[], const GLint y[], const void *values,
8694                      const GLubyte *mask);
8695    void (*PutMonoValues)(struct gl_context *ctx, struct gl_renderbuffer *rb,
8696                          GLuint count, const GLint x[], const GLint y[],
8697                          const void *value, const GLubyte *mask);
8698 };
8699 struct gl_renderbuffer_attachment
8700 {
8701    GLenum Type;
8702    GLboolean Complete;
8703    struct gl_renderbuffer *Renderbuffer;
8704    struct gl_texture_object *Texture;
8705    GLuint TextureLevel;
8706    GLuint CubeMapFace;
8707    GLuint Zoffset;
8708 };
8709 struct gl_framebuffer
8710 {
8711    _glthread_Mutex Mutex;
8712    GLuint Name;
8713    GLint RefCount;
8714    GLboolean DeletePending;
8715    struct gl_config Visual;
8716    GLboolean Initialized;
8717    GLuint Width, Height;
8718    GLint _Xmin, _Xmax;
8719    GLint _Ymin, _Ymax;
8720    GLuint _DepthMax;
8721    GLfloat _DepthMaxF;
8722    GLfloat _MRD;
8723    GLenum _Status;
8724    GLboolean _IntegerColor;
8725    struct gl_renderbuffer_attachment Attachment[BUFFER_COUNT];
8726    GLenum ColorDrawBuffer[8];
8727    GLenum ColorReadBuffer;
8728    GLuint _NumColorDrawBuffers;
8729    GLint _ColorDrawBufferIndexes[8];
8730    GLint _ColorReadBufferIndex;
8731    struct gl_renderbuffer *_ColorDrawBuffers[8];
8732    struct gl_renderbuffer *_ColorReadBuffer;
8733    struct gl_renderbuffer *_DepthBuffer;
8734    struct gl_renderbuffer *_StencilBuffer;
8735    void (*Delete)(struct gl_framebuffer *fb);
8736 };
8737 struct gl_precision
8738 {
8739    GLushort RangeMin;
8740    GLushort RangeMax;
8741    GLushort Precision;
8742 };
8743 struct gl_program_constants
8744 {
8745    GLuint MaxInstructions;
8746    GLuint MaxAluInstructions;
8747    GLuint MaxTexInstructions;
8748    GLuint MaxTexIndirections;
8749    GLuint MaxAttribs;
8750    GLuint MaxTemps;
8751    GLuint MaxAddressRegs;
8752    GLuint MaxAddressOffset;
8753    GLuint MaxParameters;
8754    GLuint MaxLocalParams;
8755    GLuint MaxEnvParams;
8756    GLuint MaxNativeInstructions;
8757    GLuint MaxNativeAluInstructions;
8758    GLuint MaxNativeTexInstructions;
8759    GLuint MaxNativeTexIndirections;
8760    GLuint MaxNativeAttribs;
8761    GLuint MaxNativeTemps;
8762    GLuint MaxNativeAddressRegs;
8763    GLuint MaxNativeParameters;
8764    GLuint MaxUniformComponents;
8765    struct gl_precision LowFloat, MediumFloat, HighFloat;
8766    struct gl_precision LowInt, MediumInt, HighInt;
8767 };
8768 struct gl_constants
8769 {
8770    GLint MaxTextureMbytes;
8771    GLint MaxTextureLevels;
8772    GLint Max3DTextureLevels;
8773    GLint MaxCubeTextureLevels;
8774    GLint MaxArrayTextureLayers;
8775    GLint MaxTextureRectSize;
8776    GLuint MaxTextureCoordUnits;
8777    GLuint MaxTextureImageUnits;
8778    GLuint MaxVertexTextureImageUnits;
8779    GLuint MaxCombinedTextureImageUnits;
8780    GLuint MaxGeometryTextureImageUnits;
8781    GLuint MaxTextureUnits;
8782    GLfloat MaxTextureMaxAnisotropy;
8783    GLfloat MaxTextureLodBias;
8784    GLuint MaxTextureBufferSize;
8785    GLuint MaxArrayLockSize;
8786    GLint SubPixelBits;
8787    GLfloat MinPointSize, MaxPointSize;
8788    GLfloat MinPointSizeAA, MaxPointSizeAA;
8789    GLfloat PointSizeGranularity;
8790    GLfloat MinLineWidth, MaxLineWidth;
8791    GLfloat MinLineWidthAA, MaxLineWidthAA;
8792    GLfloat LineWidthGranularity;
8793    GLuint MaxColorTableSize;
8794    GLuint MaxClipPlanes;
8795    GLuint MaxLights;
8796    GLfloat MaxShininess;
8797    GLfloat MaxSpotExponent;
8798    GLuint MaxViewportWidth, MaxViewportHeight;
8799    struct gl_program_constants VertexProgram;
8800    struct gl_program_constants FragmentProgram;
8801    struct gl_program_constants GeometryProgram;
8802    GLuint MaxProgramMatrices;
8803    GLuint MaxProgramMatrixStackDepth;
8804    GLboolean CheckArrayBounds;
8805    GLuint MaxDrawBuffers;
8806    GLuint MaxColorAttachments;
8807    GLuint MaxRenderbufferSize;
8808    GLuint MaxSamples;
8809    GLuint MaxVarying;
8810    GLuint MaxVertexVaryingComponents;
8811    GLuint MaxGeometryVaryingComponents;
8812    GLuint MaxGeometryOutputVertices;
8813    GLuint MaxGeometryTotalOutputComponents;
8814    GLuint GLSLVersion;
8815    GLbitfield SupportedBumpUnits;
8816    GLuint64 MaxServerWaitTimeout;
8817    GLboolean QuadsFollowProvokingVertexConvention;
8818    GLbitfield ContextFlags;
8819    GLbitfield ProfileMask;
8820    GLuint MaxTransformFeedbackSeparateAttribs;
8821    GLuint MaxTransformFeedbackSeparateComponents;
8822    GLuint MaxTransformFeedbackInterleavedComponents;
8823    GLint MinProgramTexelOffset, MaxProgramTexelOffset;
8824    GLboolean sRGBCapable;
8825    GLenum ResetStrategy;
8826 };
8827 struct gl_extensions
8828 {
8829    GLboolean dummy;
8830    GLboolean dummy_true;
8831    GLboolean dummy_false;
8832    GLboolean ARB_ES2_compatibility;
8833    GLboolean ARB_blend_func_extended;
8834    GLboolean ARB_color_buffer_float;
8835    GLboolean ARB_copy_buffer;
8836    GLboolean ARB_depth_buffer_float;
8837    GLboolean ARB_depth_clamp;
8838    GLboolean ARB_depth_texture;
8839    GLboolean ARB_draw_buffers;
8840    GLboolean ARB_draw_buffers_blend;
8841    GLboolean ARB_draw_elements_base_vertex;
8842    GLboolean ARB_draw_instanced;
8843    GLboolean ARB_fragment_coord_conventions;
8844    GLboolean ARB_fragment_program;
8845    GLboolean ARB_fragment_program_shadow;
8846    GLboolean ARB_fragment_shader;
8847    GLboolean ARB_framebuffer_object;
8848    GLboolean ARB_explicit_attrib_location;
8849    GLboolean ARB_geometry_shader4;
8850    GLboolean ARB_half_float_pixel;
8851    GLboolean ARB_half_float_vertex;
8852    GLboolean ARB_instanced_arrays;
8853    GLboolean ARB_map_buffer_range;
8854    GLboolean ARB_multisample;
8855    GLboolean ARB_multitexture;
8856    GLboolean ARB_occlusion_query;
8857    GLboolean ARB_occlusion_query2;
8858    GLboolean ARB_point_sprite;
8859    GLboolean ARB_sampler_objects;
8860    GLboolean ARB_seamless_cube_map;
8861    GLboolean ARB_shader_objects;
8862    GLboolean ARB_shader_stencil_export;
8863    GLboolean ARB_shader_texture_lod;
8864    GLboolean ARB_shading_language_100;
8865    GLboolean ARB_shadow;
8866    GLboolean ARB_shadow_ambient;
8867    GLboolean ARB_sync;
8868    GLboolean ARB_texture_border_clamp;
8869    GLboolean ARB_texture_buffer_object;
8870    GLboolean ARB_texture_compression;
8871    GLboolean ARB_texture_compression_rgtc;
8872    GLboolean ARB_texture_cube_map;
8873    GLboolean ARB_texture_env_combine;
8874    GLboolean ARB_texture_env_crossbar;
8875    GLboolean ARB_texture_env_dot3;
8876    GLboolean ARB_texture_float;
8877    GLboolean ARB_texture_mirrored_repeat;
8878    GLboolean ARB_texture_multisample;
8879    GLboolean ARB_texture_non_power_of_two;
8880    GLboolean ARB_texture_rg;
8881    GLboolean ARB_texture_rgb10_a2ui;
8882    GLboolean ARB_timer_query;
8883    GLboolean ARB_transform_feedback2;
8884    GLboolean ARB_transpose_matrix;
8885    GLboolean ARB_uniform_buffer_object;
8886    GLboolean ARB_vertex_array_object;
8887    GLboolean ARB_vertex_buffer_object;
8888    GLboolean ARB_vertex_program;
8889    GLboolean ARB_vertex_shader;
8890    GLboolean ARB_vertex_type_2_10_10_10_rev;
8891    GLboolean ARB_window_pos;
8892    GLboolean EXT_abgr;
8893    GLboolean EXT_bgra;
8894    GLboolean EXT_blend_color;
8895    GLboolean EXT_blend_equation_separate;
8896    GLboolean EXT_blend_func_separate;
8897    GLboolean EXT_blend_logic_op;
8898    GLboolean EXT_blend_minmax;
8899    GLboolean EXT_blend_subtract;
8900    GLboolean EXT_clip_volume_hint;
8901    GLboolean EXT_compiled_vertex_array;
8902    GLboolean EXT_copy_texture;
8903    GLboolean EXT_depth_bounds_test;
8904    GLboolean EXT_draw_buffers2;
8905    GLboolean EXT_draw_range_elements;
8906    GLboolean EXT_fog_coord;
8907    GLboolean EXT_framebuffer_blit;
8908    GLboolean EXT_framebuffer_multisample;
8909    GLboolean EXT_framebuffer_object;
8910    GLboolean EXT_framebuffer_sRGB;
8911    GLboolean EXT_gpu_program_parameters;
8912    GLboolean EXT_gpu_shader4;
8913    GLboolean EXT_multi_draw_arrays;
8914    GLboolean EXT_paletted_texture;
8915    GLboolean EXT_packed_depth_stencil;
8916    GLboolean EXT_packed_float;
8917    GLboolean EXT_packed_pixels;
8918    GLboolean EXT_pixel_buffer_object;
8919    GLboolean EXT_point_parameters;
8920    GLboolean EXT_polygon_offset;
8921    GLboolean EXT_provoking_vertex;
8922    GLboolean EXT_rescale_normal;
8923    GLboolean EXT_shadow_funcs;
8924    GLboolean EXT_secondary_color;
8925    GLboolean EXT_separate_shader_objects;
8926    GLboolean EXT_separate_specular_color;
8927    GLboolean EXT_shared_texture_palette;
8928    GLboolean EXT_stencil_wrap;
8929    GLboolean EXT_stencil_two_side;
8930    GLboolean EXT_subtexture;
8931    GLboolean EXT_texture;
8932    GLboolean EXT_texture_object;
8933    GLboolean EXT_texture3D;
8934    GLboolean EXT_texture_array;
8935    GLboolean EXT_texture_compression_latc;
8936    GLboolean EXT_texture_compression_s3tc;
8937    GLboolean EXT_texture_env_add;
8938    GLboolean EXT_texture_env_combine;
8939    GLboolean EXT_texture_env_dot3;
8940    GLboolean EXT_texture_filter_anisotropic;
8941    GLboolean EXT_texture_integer;
8942    GLboolean EXT_texture_lod_bias;
8943    GLboolean EXT_texture_mirror_clamp;
8944    GLboolean EXT_texture_shared_exponent;
8945    GLboolean EXT_texture_snorm;
8946    GLboolean EXT_texture_sRGB;
8947    GLboolean EXT_texture_sRGB_decode;
8948    GLboolean EXT_texture_swizzle;
8949    GLboolean EXT_transform_feedback;
8950    GLboolean EXT_timer_query;
8951    GLboolean EXT_vertex_array;
8952    GLboolean EXT_vertex_array_bgra;
8953    GLboolean EXT_vertex_array_set;
8954    GLboolean OES_standard_derivatives;
8955    GLboolean AMD_conservative_depth;
8956    GLboolean AMD_seamless_cubemap_per_texture;
8957    GLboolean APPLE_client_storage;
8958    GLboolean APPLE_packed_pixels;
8959    GLboolean APPLE_vertex_array_object;
8960    GLboolean APPLE_object_purgeable;
8961    GLboolean ATI_envmap_bumpmap;
8962    GLboolean ATI_texture_compression_3dc;
8963    GLboolean ATI_texture_mirror_once;
8964    GLboolean ATI_texture_env_combine3;
8965    GLboolean ATI_fragment_shader;
8966    GLboolean ATI_separate_stencil;
8967    GLboolean IBM_rasterpos_clip;
8968    GLboolean IBM_multimode_draw_arrays;
8969    GLboolean MESA_pack_invert;
8970    GLboolean MESA_resize_buffers;
8971    GLboolean MESA_ycbcr_texture;
8972    GLboolean MESA_texture_array;
8973    GLboolean NV_blend_square;
8974    GLboolean NV_conditional_render;
8975    GLboolean NV_fragment_program;
8976    GLboolean NV_fragment_program_option;
8977    GLboolean NV_light_max_exponent;
8978    GLboolean NV_point_sprite;
8979    GLboolean NV_primitive_restart;
8980    GLboolean NV_texture_barrier;
8981    GLboolean NV_texgen_reflection;
8982    GLboolean NV_texture_env_combine4;
8983    GLboolean NV_texture_rectangle;
8984    GLboolean NV_vertex_program;
8985    GLboolean NV_vertex_program1_1;
8986    GLboolean OES_read_format;
8987    GLboolean SGIS_generate_mipmap;
8988    GLboolean SGIS_texture_edge_clamp;
8989    GLboolean SGIS_texture_lod;
8990    GLboolean TDFX_texture_compression_FXT1;
8991    GLboolean S3_s3tc;
8992    GLboolean OES_EGL_image;
8993    GLboolean OES_draw_texture;
8994    GLboolean EXT_texture_format_BGRA8888;
8995    GLboolean extension_sentinel;
8996    const GLubyte *String;
8997    GLuint Count;
8998 };
8999 struct gl_matrix_stack
9000 {
9001    GLmatrix *Top;
9002    GLmatrix *Stack;
9003    GLuint Depth;
9004    GLuint MaxDepth;
9005    GLuint DirtyFlag;
9006 };
9007 struct gl_buffer_object;
9008 struct gl_context;
9009 struct gl_display_list;
9010 struct gl_framebuffer;
9011 struct gl_pixelstore_attrib;
9012 struct gl_program;
9013 struct gl_renderbuffer;
9014 struct gl_renderbuffer_attachment;
9015 struct gl_shader;
9016 struct gl_shader_program;
9017 struct gl_texture_image;
9018 struct gl_texture_object;
9019 struct dd_function_table {
9020    const GLubyte * (*GetString)( struct gl_context *ctx, GLenum name );
9021    void (*UpdateState)( struct gl_context *ctx, GLbitfield new_state );
9022    void (*GetBufferSize)( struct gl_framebuffer *buffer,
9023                           GLuint *width, GLuint *height );
9024    void (*ResizeBuffers)( struct gl_context *ctx, struct gl_framebuffer *fb,
9025                           GLuint width, GLuint height);
9026    void (*Error)( struct gl_context *ctx );
9027    void (*Finish)( struct gl_context *ctx );
9028    void (*Flush)( struct gl_context *ctx );
9029    void (*Clear)( struct gl_context *ctx, GLbitfield buffers );
9030    void (*Accum)( struct gl_context *ctx, GLenum op, GLfloat value );
9031    void (*RasterPos)( struct gl_context *ctx, const GLfloat v[4] );
9032    void (*DrawPixels)( struct gl_context *ctx,
9033          GLint x, GLint y, GLsizei width, GLsizei height,
9034          GLenum format, GLenum type,
9035          const struct gl_pixelstore_attrib *unpack,
9036          const GLvoid *pixels );
9037    void (*ReadPixels)( struct gl_context *ctx,
9038          GLint x, GLint y, GLsizei width, GLsizei height,
9039          GLenum format, GLenum type,
9040          const struct gl_pixelstore_attrib *unpack,
9041          GLvoid *dest );
9042    void (*CopyPixels)( struct gl_context *ctx, GLint srcx, GLint srcy,
9043                        GLsizei width, GLsizei height,
9044                        GLint dstx, GLint dsty, GLenum type );
9045    void (*Bitmap)( struct gl_context *ctx,
9046      GLint x, GLint y, GLsizei width, GLsizei height,
9047      const struct gl_pixelstore_attrib *unpack,
9048      const GLubyte *bitmap );
9049    GLuint (*ChooseTextureFormat)( struct gl_context *ctx, GLint internalFormat,
9050                                      GLenum srcFormat, GLenum srcType );
9051    void (*TexImage1D)( struct gl_context *ctx, GLenum target, GLint level,
9052                        GLint internalFormat,
9053                        GLint width, GLint border,
9054                        GLenum format, GLenum type, const GLvoid *pixels,
9055                        const struct gl_pixelstore_attrib *packing,
9056                        struct gl_texture_object *texObj,
9057                        struct gl_texture_image *texImage );
9058    void (*TexImage2D)( struct gl_context *ctx, GLenum target, GLint level,
9059                        GLint internalFormat,
9060                        GLint width, GLint height, GLint border,
9061                        GLenum format, GLenum type, const GLvoid *pixels,
9062                        const struct gl_pixelstore_attrib *packing,
9063                        struct gl_texture_object *texObj,
9064                        struct gl_texture_image *texImage );
9065    void (*TexImage3D)( struct gl_context *ctx, GLenum target, GLint level,
9066                        GLint internalFormat,
9067                        GLint width, GLint height, GLint depth, GLint border,
9068                        GLenum format, GLenum type, const GLvoid *pixels,
9069                        const struct gl_pixelstore_attrib *packing,
9070                        struct gl_texture_object *texObj,
9071                        struct gl_texture_image *texImage );
9072    void (*TexSubImage1D)( struct gl_context *ctx, GLenum target, GLint level,
9073                           GLint xoffset, GLsizei width,
9074                           GLenum format, GLenum type,
9075                           const GLvoid *pixels,
9076                           const struct gl_pixelstore_attrib *packing,
9077                           struct gl_texture_object *texObj,
9078                           struct gl_texture_image *texImage );
9079    void (*TexSubImage2D)( struct gl_context *ctx, GLenum target, GLint level,
9080                           GLint xoffset, GLint yoffset,
9081                           GLsizei width, GLsizei height,
9082                           GLenum format, GLenum type,
9083                           const GLvoid *pixels,
9084                           const struct gl_pixelstore_attrib *packing,
9085                           struct gl_texture_object *texObj,
9086                           struct gl_texture_image *texImage );
9087    void (*TexSubImage3D)( struct gl_context *ctx, GLenum target, GLint level,
9088                           GLint xoffset, GLint yoffset, GLint zoffset,
9089                           GLsizei width, GLsizei height, GLint depth,
9090                           GLenum format, GLenum type,
9091                           const GLvoid *pixels,
9092                           const struct gl_pixelstore_attrib *packing,
9093                           struct gl_texture_object *texObj,
9094                           struct gl_texture_image *texImage );
9095    void (*GetTexImage)( struct gl_context *ctx, GLenum target, GLint level,
9096                         GLenum format, GLenum type, GLvoid *pixels,
9097                         struct gl_texture_object *texObj,
9098                         struct gl_texture_image *texImage );
9099    void (*CopyTexImage1D)( struct gl_context *ctx, GLenum target, GLint level,
9100                            GLenum internalFormat, GLint x, GLint y,
9101                            GLsizei width, GLint border );
9102    void (*CopyTexImage2D)( struct gl_context *ctx, GLenum target, GLint level,
9103                            GLenum internalFormat, GLint x, GLint y,
9104                            GLsizei width, GLsizei height, GLint border );
9105    void (*CopyTexSubImage1D)( struct gl_context *ctx, GLenum target, GLint level,
9106                               GLint xoffset,
9107                               GLint x, GLint y, GLsizei width );
9108    void (*CopyTexSubImage2D)( struct gl_context *ctx, GLenum target, GLint level,
9109                               GLint xoffset, GLint yoffset,
9110                               GLint x, GLint y,
9111                               GLsizei width, GLsizei height );
9112    void (*CopyTexSubImage3D)( struct gl_context *ctx, GLenum target, GLint level,
9113                               GLint xoffset, GLint yoffset, GLint zoffset,
9114                               GLint x, GLint y,
9115                               GLsizei width, GLsizei height );
9116    void (*GenerateMipmap)(struct gl_context *ctx, GLenum target,
9117                           struct gl_texture_object *texObj);
9118    GLboolean (*TestProxyTexImage)(struct gl_context *ctx, GLenum target,
9119                                   GLint level, GLint internalFormat,
9120                                   GLenum format, GLenum type,
9121                                   GLint width, GLint height,
9122                                   GLint depth, GLint border);
9123    void (*CompressedTexImage1D)( struct gl_context *ctx, GLenum target,
9124                                  GLint level, GLint internalFormat,
9125                                  GLsizei width, GLint border,
9126                                  GLsizei imageSize, const GLvoid *data,
9127                                  struct gl_texture_object *texObj,
9128                                  struct gl_texture_image *texImage );
9129    void (*CompressedTexImage2D)( struct gl_context *ctx, GLenum target,
9130                                  GLint level, GLint internalFormat,
9131                                  GLsizei width, GLsizei height, GLint border,
9132                                  GLsizei imageSize, const GLvoid *data,
9133                                  struct gl_texture_object *texObj,
9134                                  struct gl_texture_image *texImage );
9135    void (*CompressedTexImage3D)( struct gl_context *ctx, GLenum target,
9136                                  GLint level, GLint internalFormat,
9137                                  GLsizei width, GLsizei height, GLsizei depth,
9138                                  GLint border,
9139                                  GLsizei imageSize, const GLvoid *data,
9140                                  struct gl_texture_object *texObj,
9141                                  struct gl_texture_image *texImage );
9142    void (*CompressedTexSubImage1D)(struct gl_context *ctx, GLenum target, GLint level,
9143                                    GLint xoffset, GLsizei width,
9144                                    GLenum format,
9145                                    GLsizei imageSize, const GLvoid *data,
9146                                    struct gl_texture_object *texObj,
9147                                    struct gl_texture_image *texImage);
9148    void (*CompressedTexSubImage2D)(struct gl_context *ctx, GLenum target, GLint level,
9149                                    GLint xoffset, GLint yoffset,
9150                                    GLsizei width, GLint height,
9151                                    GLenum format,
9152                                    GLsizei imageSize, const GLvoid *data,
9153                                    struct gl_texture_object *texObj,
9154                                    struct gl_texture_image *texImage);
9155    void (*CompressedTexSubImage3D)(struct gl_context *ctx, GLenum target, GLint level,
9156                                    GLint xoffset, GLint yoffset, GLint zoffset,
9157                                    GLsizei width, GLint height, GLint depth,
9158                                    GLenum format,
9159                                    GLsizei imageSize, const GLvoid *data,
9160                                    struct gl_texture_object *texObj,
9161                                    struct gl_texture_image *texImage);
9162    void (*GetCompressedTexImage)(struct gl_context *ctx, GLenum target, GLint level,
9163                                  GLvoid *img,
9164                                  struct gl_texture_object *texObj,
9165                                  struct gl_texture_image *texImage);
9166    void (*BindTexture)( struct gl_context *ctx, GLenum target,
9167                         struct gl_texture_object *tObj );
9168    struct gl_texture_object * (*NewTextureObject)( struct gl_context *ctx, GLuint name,
9169                                                    GLenum target );
9170    void (*DeleteTexture)( struct gl_context *ctx, struct gl_texture_object *tObj );
9171    struct gl_texture_image * (*NewTextureImage)( struct gl_context *ctx );
9172    void (*FreeTexImageData)( struct gl_context *ctx, struct gl_texture_image *tImage );
9173    void (*MapTexture)( struct gl_context *ctx, struct gl_texture_object *tObj );
9174    void (*UnmapTexture)( struct gl_context *ctx, struct gl_texture_object *tObj );
9175    void* (*TextureMemCpy)( void *to, const void *from, size_t sz );
9176    GLboolean (*IsTextureResident)( struct gl_context *ctx,
9177                                    struct gl_texture_object *t );
9178    void (*UpdateTexturePalette)( struct gl_context *ctx,
9179                                  struct gl_texture_object *tObj );
9180    void (*CopyColorTable)( struct gl_context *ctx,
9181       GLenum target, GLenum internalformat,
9182       GLint x, GLint y, GLsizei width );
9183    void (*CopyColorSubTable)( struct gl_context *ctx,
9184          GLenum target, GLsizei start,
9185          GLint x, GLint y, GLsizei width );
9186    void (*BindProgram)(struct gl_context *ctx, GLenum target, struct gl_program *prog);
9187    struct gl_program * (*NewProgram)(struct gl_context *ctx, GLenum target, GLuint id);
9188    void (*DeleteProgram)(struct gl_context *ctx, struct gl_program *prog);
9189    GLboolean (*ProgramStringNotify)(struct gl_context *ctx, GLenum target,
9190                                     struct gl_program *prog);
9191    GLboolean (*IsProgramNative)(struct gl_context *ctx, GLenum target,
9192     struct gl_program *prog);
9193    GLboolean (*LinkShader)(struct gl_context *ctx, struct gl_shader_program *shader);
9194    void (*AlphaFunc)(struct gl_context *ctx, GLenum func, GLfloat ref);
9195    void (*BlendColor)(struct gl_context *ctx, const GLfloat color[4]);
9196    void (*BlendEquationSeparate)(struct gl_context *ctx, GLenum modeRGB, GLenum modeA);
9197    void (*BlendEquationSeparatei)(struct gl_context *ctx, GLuint buffer,
9198                                   GLenum modeRGB, GLenum modeA);
9199    void (*BlendFuncSeparate)(struct gl_context *ctx,
9200                              GLenum sfactorRGB, GLenum dfactorRGB,
9201                              GLenum sfactorA, GLenum dfactorA);
9202    void (*BlendFuncSeparatei)(struct gl_context *ctx, GLuint buffer,
9203                               GLenum sfactorRGB, GLenum dfactorRGB,
9204                               GLenum sfactorA, GLenum dfactorA);
9205    void (*ClearColor)(struct gl_context *ctx, const GLfloat color[4]);
9206    void (*ClearDepth)(struct gl_context *ctx, GLclampd d);
9207    void (*ClearStencil)(struct gl_context *ctx, GLint s);
9208    void (*ClipPlane)(struct gl_context *ctx, GLenum plane, const GLfloat *equation );
9209    void (*ColorMask)(struct gl_context *ctx, GLboolean rmask, GLboolean gmask,
9210                      GLboolean bmask, GLboolean amask );
9211    void (*ColorMaskIndexed)(struct gl_context *ctx, GLuint buf, GLboolean rmask,
9212                             GLboolean gmask, GLboolean bmask, GLboolean amask);
9213    void (*ColorMaterial)(struct gl_context *ctx, GLenum face, GLenum mode);
9214    void (*CullFace)(struct gl_context *ctx, GLenum mode);
9215    void (*FrontFace)(struct gl_context *ctx, GLenum mode);
9216    void (*DepthFunc)(struct gl_context *ctx, GLenum func);
9217    void (*DepthMask)(struct gl_context *ctx, GLboolean flag);
9218    void (*DepthRange)(struct gl_context *ctx, GLclampd nearval, GLclampd farval);
9219    void (*DrawBuffer)( struct gl_context *ctx, GLenum buffer );
9220    void (*DrawBuffers)( struct gl_context *ctx, GLsizei n, const GLenum *buffers );
9221    void (*Enable)(struct gl_context *ctx, GLenum cap, GLboolean state);
9222    void (*Fogfv)(struct gl_context *ctx, GLenum pname, const GLfloat *params);
9223    void (*Hint)(struct gl_context *ctx, GLenum target, GLenum mode);
9224    void (*Lightfv)(struct gl_context *ctx, GLenum light,
9225      GLenum pname, const GLfloat *params );
9226    void (*LightModelfv)(struct gl_context *ctx, GLenum pname, const GLfloat *params);
9227    void (*LineStipple)(struct gl_context *ctx, GLint factor, GLushort pattern );
9228    void (*LineWidth)(struct gl_context *ctx, GLfloat width);
9229    void (*LogicOpcode)(struct gl_context *ctx, GLenum opcode);
9230    void (*PointParameterfv)(struct gl_context *ctx, GLenum pname,
9231                             const GLfloat *params);
9232    void (*PointSize)(struct gl_context *ctx, GLfloat size);
9233    void (*PolygonMode)(struct gl_context *ctx, GLenum face, GLenum mode);
9234    void (*PolygonOffset)(struct gl_context *ctx, GLfloat factor, GLfloat units);
9235    void (*PolygonStipple)(struct gl_context *ctx, const GLubyte *mask );
9236    void (*ReadBuffer)( struct gl_context *ctx, GLenum buffer );
9237    void (*RenderMode)(struct gl_context *ctx, GLenum mode );
9238    void (*Scissor)(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h);
9239    void (*ShadeModel)(struct gl_context *ctx, GLenum mode);
9240    void (*StencilFuncSeparate)(struct gl_context *ctx, GLenum face, GLenum func,
9241                                GLint ref, GLuint mask);
9242    void (*StencilMaskSeparate)(struct gl_context *ctx, GLenum face, GLuint mask);
9243    void (*StencilOpSeparate)(struct gl_context *ctx, GLenum face, GLenum fail,
9244                              GLenum zfail, GLenum zpass);
9245    void (*TexGen)(struct gl_context *ctx, GLenum coord, GLenum pname,
9246     const GLfloat *params);
9247    void (*TexEnv)(struct gl_context *ctx, GLenum target, GLenum pname,
9248                   const GLfloat *param);
9249    void (*TexParameter)(struct gl_context *ctx, GLenum target,
9250                         struct gl_texture_object *texObj,
9251                         GLenum pname, const GLfloat *params);
9252    void (*Viewport)(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h);
9253    void (*BindBuffer)( struct gl_context *ctx, GLenum target,
9254          struct gl_buffer_object *obj );
9255    struct gl_buffer_object * (*NewBufferObject)( struct gl_context *ctx, GLuint buffer,
9256        GLenum target );
9257    void (*DeleteBuffer)( struct gl_context *ctx, struct gl_buffer_object *obj );
9258    GLboolean (*BufferData)( struct gl_context *ctx, GLenum target, GLsizeiptrARB size,
9259                             const GLvoid *data, GLenum usage,
9260                             struct gl_buffer_object *obj );
9261    void (*BufferSubData)( struct gl_context *ctx, GLenum target, GLintptrARB offset,
9262      GLsizeiptrARB size, const GLvoid *data,
9263      struct gl_buffer_object *obj );
9264    void (*GetBufferSubData)( struct gl_context *ctx, GLenum target,
9265         GLintptrARB offset, GLsizeiptrARB size,
9266         GLvoid *data, struct gl_buffer_object *obj );
9267    void * (*MapBuffer)( struct gl_context *ctx, GLenum target, GLenum access,
9268    struct gl_buffer_object *obj );
9269    void (*CopyBufferSubData)( struct gl_context *ctx,
9270                               struct gl_buffer_object *src,
9271                               struct gl_buffer_object *dst,
9272                               GLintptr readOffset, GLintptr writeOffset,
9273                               GLsizeiptr size );
9274    void * (*MapBufferRange)( struct gl_context *ctx, GLenum target, GLintptr offset,
9275                              GLsizeiptr length, GLbitfield access,
9276                              struct gl_buffer_object *obj);
9277    void (*FlushMappedBufferRange)(struct gl_context *ctx, GLenum target,
9278                                   GLintptr offset, GLsizeiptr length,
9279                                   struct gl_buffer_object *obj);
9280    GLboolean (*UnmapBuffer)( struct gl_context *ctx, GLenum target,
9281         struct gl_buffer_object *obj );
9282    GLenum (*BufferObjectPurgeable)( struct gl_context *ctx, struct gl_buffer_object *obj, GLenum option );
9283    GLenum (*RenderObjectPurgeable)( struct gl_context *ctx, struct gl_renderbuffer *obj, GLenum option );
9284    GLenum (*TextureObjectPurgeable)( struct gl_context *ctx, struct gl_texture_object *obj, GLenum option );
9285    GLenum (*BufferObjectUnpurgeable)( struct gl_context *ctx, struct gl_buffer_object *obj, GLenum option );
9286    GLenum (*RenderObjectUnpurgeable)( struct gl_context *ctx, struct gl_renderbuffer *obj, GLenum option );
9287    GLenum (*TextureObjectUnpurgeable)( struct gl_context *ctx, struct gl_texture_object *obj, GLenum option );
9288    struct gl_framebuffer * (*NewFramebuffer)(struct gl_context *ctx, GLuint name);
9289    struct gl_renderbuffer * (*NewRenderbuffer)(struct gl_context *ctx, GLuint name);
9290    void (*BindFramebuffer)(struct gl_context *ctx, GLenum target,
9291                            struct gl_framebuffer *drawFb,
9292                            struct gl_framebuffer *readFb);
9293    void (*FramebufferRenderbuffer)(struct gl_context *ctx,
9294                                    struct gl_framebuffer *fb,
9295                                    GLenum attachment,
9296                                    struct gl_renderbuffer *rb);
9297    void (*RenderTexture)(struct gl_context *ctx,
9298                          struct gl_framebuffer *fb,
9299                          struct gl_renderbuffer_attachment *att);
9300    void (*FinishRenderTexture)(struct gl_context *ctx,
9301                                struct gl_renderbuffer_attachment *att);
9302    void (*ValidateFramebuffer)(struct gl_context *ctx,
9303                                struct gl_framebuffer *fb);
9304    void (*BlitFramebuffer)(struct gl_context *ctx,
9305                            GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
9306                            GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
9307                            GLbitfield mask, GLenum filter);
9308    struct gl_query_object * (*NewQueryObject)(struct gl_context *ctx, GLuint id);
9309    void (*DeleteQuery)(struct gl_context *ctx, struct gl_query_object *q);
9310    void (*BeginQuery)(struct gl_context *ctx, struct gl_query_object *q);
9311    void (*EndQuery)(struct gl_context *ctx, struct gl_query_object *q);
9312    void (*CheckQuery)(struct gl_context *ctx, struct gl_query_object *q);
9313    void (*WaitQuery)(struct gl_context *ctx, struct gl_query_object *q);
9314    struct gl_array_object * (*NewArrayObject)(struct gl_context *ctx, GLuint id);
9315    void (*DeleteArrayObject)(struct gl_context *ctx, struct gl_array_object *obj);
9316    void (*BindArrayObject)(struct gl_context *ctx, struct gl_array_object *obj);
9317    struct gl_shader *(*NewShader)(struct gl_context *ctx, GLuint name, GLenum type);
9318    void (*DeleteShader)(struct gl_context *ctx, struct gl_shader *shader);
9319    struct gl_shader_program *(*NewShaderProgram)(struct gl_context *ctx, GLuint name);
9320    void (*DeleteShaderProgram)(struct gl_context *ctx,
9321                                struct gl_shader_program *shProg);
9322    void (*UseProgram)(struct gl_context *ctx, struct gl_shader_program *shProg);
9323    GLuint NeedValidate;
9324    void (*ValidateTnlModule)( struct gl_context *ctx, GLuint new_state );
9325    GLuint CurrentExecPrimitive;
9326    GLuint CurrentSavePrimitive;
9327    GLuint NeedFlush;
9328    GLuint SaveNeedFlush;
9329    void (*BeginVertices)( struct gl_context *ctx );
9330    void (*FlushVertices)( struct gl_context *ctx, GLuint flags );
9331    void (*SaveFlushVertices)( struct gl_context *ctx );
9332    GLboolean (*NotifySaveBegin)( struct gl_context *ctx, GLenum mode );
9333    void (*LightingSpaceChange)( struct gl_context *ctx );
9334    void (*NewList)( struct gl_context *ctx, GLuint list, GLenum mode );
9335    void (*EndList)( struct gl_context *ctx );
9336    void (*BeginCallList)( struct gl_context *ctx,
9337      struct gl_display_list *dlist );
9338    void (*EndCallList)( struct gl_context *ctx );
9339    struct gl_sync_object * (*NewSyncObject)(struct gl_context *, GLenum);
9340    void (*FenceSync)(struct gl_context *, struct gl_sync_object *, GLenum, GLbitfield);
9341    void (*DeleteSyncObject)(struct gl_context *, struct gl_sync_object *);
9342    void (*CheckSync)(struct gl_context *, struct gl_sync_object *);
9343    void (*ClientWaitSync)(struct gl_context *, struct gl_sync_object *,
9344      GLbitfield, GLuint64);
9345    void (*ServerWaitSync)(struct gl_context *, struct gl_sync_object *,
9346      GLbitfield, GLuint64);
9347    void (*BeginConditionalRender)(struct gl_context *ctx, struct gl_query_object *q,
9348                                   GLenum mode);
9349    void (*EndConditionalRender)(struct gl_context *ctx, struct gl_query_object *q);
9350    void (*DrawTex)(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
9351                    GLfloat width, GLfloat height);
9352    void (*EGLImageTargetTexture2D)(struct gl_context *ctx, GLenum target,
9353        struct gl_texture_object *texObj,
9354        struct gl_texture_image *texImage,
9355        GLeglImageOES image_handle);
9356    void (*EGLImageTargetRenderbufferStorage)(struct gl_context *ctx,
9357           struct gl_renderbuffer *rb,
9358           void *image_handle);
9359    struct gl_transform_feedback_object *
9360         (*NewTransformFeedback)(struct gl_context *ctx, GLuint name);
9361    void (*DeleteTransformFeedback)(struct gl_context *ctx,
9362                                    struct gl_transform_feedback_object *obj);
9363    void (*BeginTransformFeedback)(struct gl_context *ctx, GLenum mode,
9364                                   struct gl_transform_feedback_object *obj);
9365    void (*EndTransformFeedback)(struct gl_context *ctx,
9366                                 struct gl_transform_feedback_object *obj);
9367    void (*PauseTransformFeedback)(struct gl_context *ctx,
9368                                   struct gl_transform_feedback_object *obj);
9369    void (*ResumeTransformFeedback)(struct gl_context *ctx,
9370                                    struct gl_transform_feedback_object *obj);
9371    void (*DrawTransformFeedback)(struct gl_context *ctx, GLenum mode,
9372                                  struct gl_transform_feedback_object *obj);
9373    void (*TextureBarrier)(struct gl_context *ctx);
9374    struct gl_sampler_object * (*NewSamplerObject)(struct gl_context *ctx,
9375                                                   GLuint name);
9376    void (*DeleteSamplerObject)(struct gl_context *ctx,
9377                                struct gl_sampler_object *samp);
9378 };
9379 typedef struct {
9380    void ( * ArrayElement)( GLint );
9381    void ( * Color3f)( GLfloat, GLfloat, GLfloat );
9382    void ( * Color3fv)( const GLfloat * );
9383    void ( * Color4f)( GLfloat, GLfloat, GLfloat, GLfloat );
9384    void ( * Color4fv)( const GLfloat * );
9385    void ( * EdgeFlag)( GLboolean );
9386    void ( * EvalCoord1f)( GLfloat );
9387    void ( * EvalCoord1fv)( const GLfloat * );
9388    void ( * EvalCoord2f)( GLfloat, GLfloat );
9389    void ( * EvalCoord2fv)( const GLfloat * );
9390    void ( * EvalPoint1)( GLint );
9391    void ( * EvalPoint2)( GLint, GLint );
9392    void ( * FogCoordfEXT)( GLfloat );
9393    void ( * FogCoordfvEXT)( const GLfloat * );
9394    void ( * Indexf)( GLfloat );
9395    void ( * Indexfv)( const GLfloat * );
9396    void ( * Materialfv)( GLenum face, GLenum pname, const GLfloat * );
9397    void ( * MultiTexCoord1fARB)( GLenum, GLfloat );
9398    void ( * MultiTexCoord1fvARB)( GLenum, const GLfloat * );
9399    void ( * MultiTexCoord2fARB)( GLenum, GLfloat, GLfloat );
9400    void ( * MultiTexCoord2fvARB)( GLenum, const GLfloat * );
9401    void ( * MultiTexCoord3fARB)( GLenum, GLfloat, GLfloat, GLfloat );
9402    void ( * MultiTexCoord3fvARB)( GLenum, const GLfloat * );
9403    void ( * MultiTexCoord4fARB)( GLenum, GLfloat, GLfloat, GLfloat, GLfloat );
9404    void ( * MultiTexCoord4fvARB)( GLenum, const GLfloat * );
9405    void ( * Normal3f)( GLfloat, GLfloat, GLfloat );
9406    void ( * Normal3fv)( const GLfloat * );
9407    void ( * SecondaryColor3fEXT)( GLfloat, GLfloat, GLfloat );
9408    void ( * SecondaryColor3fvEXT)( const GLfloat * );
9409    void ( * TexCoord1f)( GLfloat );
9410    void ( * TexCoord1fv)( const GLfloat * );
9411    void ( * TexCoord2f)( GLfloat, GLfloat );
9412    void ( * TexCoord2fv)( const GLfloat * );
9413    void ( * TexCoord3f)( GLfloat, GLfloat, GLfloat );
9414    void ( * TexCoord3fv)( const GLfloat * );
9415    void ( * TexCoord4f)( GLfloat, GLfloat, GLfloat, GLfloat );
9416    void ( * TexCoord4fv)( const GLfloat * );
9417    void ( * Vertex2f)( GLfloat, GLfloat );
9418    void ( * Vertex2fv)( const GLfloat * );
9419    void ( * Vertex3f)( GLfloat, GLfloat, GLfloat );
9420    void ( * Vertex3fv)( const GLfloat * );
9421    void ( * Vertex4f)( GLfloat, GLfloat, GLfloat, GLfloat );
9422    void ( * Vertex4fv)( const GLfloat * );
9423    void ( * CallList)( GLuint );
9424    void ( * CallLists)( GLsizei, GLenum, const GLvoid * );
9425    void ( * Begin)( GLenum );
9426    void ( * End)( void );
9427    void ( * PrimitiveRestartNV)( void );
9428    void ( * VertexAttrib1fNV)( GLuint index, GLfloat x );
9429    void ( * VertexAttrib1fvNV)( GLuint index, const GLfloat *v );
9430    void ( * VertexAttrib2fNV)( GLuint index, GLfloat x, GLfloat y );
9431    void ( * VertexAttrib2fvNV)( GLuint index, const GLfloat *v );
9432    void ( * VertexAttrib3fNV)( GLuint index, GLfloat x, GLfloat y, GLfloat z );
9433    void ( * VertexAttrib3fvNV)( GLuint index, const GLfloat *v );
9434    void ( * VertexAttrib4fNV)( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w );
9435    void ( * VertexAttrib4fvNV)( GLuint index, const GLfloat *v );
9436    void ( * VertexAttrib1fARB)( GLuint index, GLfloat x );
9437    void ( * VertexAttrib1fvARB)( GLuint index, const GLfloat *v );
9438    void ( * VertexAttrib2fARB)( GLuint index, GLfloat x, GLfloat y );
9439    void ( * VertexAttrib2fvARB)( GLuint index, const GLfloat *v );
9440    void ( * VertexAttrib3fARB)( GLuint index, GLfloat x, GLfloat y, GLfloat z );
9441    void ( * VertexAttrib3fvARB)( GLuint index, const GLfloat *v );
9442    void ( * VertexAttrib4fARB)( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w );
9443    void ( * VertexAttrib4fvARB)( GLuint index, const GLfloat *v );
9444    void ( * VertexAttribI1i)( GLuint index, GLint x);
9445    void ( * VertexAttribI2i)( GLuint index, GLint x, GLint y);
9446    void ( * VertexAttribI3i)( GLuint index, GLint x, GLint y, GLint z);
9447    void ( * VertexAttribI4i)( GLuint index, GLint x, GLint y, GLint z, GLint w);
9448    void ( * VertexAttribI2iv)( GLuint index, const GLint *v);
9449    void ( * VertexAttribI3iv)( GLuint index, const GLint *v);
9450    void ( * VertexAttribI4iv)( GLuint index, const GLint *v);
9451    void ( * VertexAttribI1ui)( GLuint index, GLuint x);
9452    void ( * VertexAttribI2ui)( GLuint index, GLuint x, GLuint y);
9453    void ( * VertexAttribI3ui)( GLuint index, GLuint x, GLuint y, GLuint z);
9454    void ( * VertexAttribI4ui)( GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
9455    void ( * VertexAttribI2uiv)( GLuint index, const GLuint *v);
9456    void ( * VertexAttribI3uiv)( GLuint index, const GLuint *v);
9457    void ( * VertexAttribI4uiv)( GLuint index, const GLuint *v);
9458    void ( * Rectf)( GLfloat, GLfloat, GLfloat, GLfloat );
9459    void ( * DrawArrays)( GLenum mode, GLint start, GLsizei count );
9460    void ( * DrawElements)( GLenum mode, GLsizei count, GLenum type,
9461     const GLvoid *indices );
9462    void ( * DrawRangeElements)( GLenum mode, GLuint start,
9463          GLuint end, GLsizei count,
9464          GLenum type, const GLvoid *indices );
9465    void ( * MultiDrawElementsEXT)( GLenum mode, const GLsizei *count,
9466          GLenum type,
9467          const GLvoid **indices,
9468          GLsizei primcount);
9469    void ( * DrawElementsBaseVertex)( GLenum mode, GLsizei count,
9470            GLenum type,
9471            const GLvoid *indices,
9472            GLint basevertex );
9473    void ( * DrawRangeElementsBaseVertex)( GLenum mode, GLuint start,
9474          GLuint end, GLsizei count,
9475          GLenum type,
9476          const GLvoid *indices,
9477          GLint basevertex);
9478    void ( * MultiDrawElementsBaseVertex)( GLenum mode,
9479          const GLsizei *count,
9480          GLenum type,
9481          const GLvoid **indices,
9482          GLsizei primcount,
9483          const GLint *basevertex);
9484    void ( * DrawArraysInstanced)(GLenum mode, GLint first,
9485                                           GLsizei count, GLsizei primcount);
9486    void ( * DrawElementsInstanced)(GLenum mode, GLsizei count,
9487                                             GLenum type, const GLvoid *indices,
9488                                             GLsizei primcount);
9489    void ( * DrawElementsInstancedBaseVertex)(GLenum mode, GLsizei count,
9490                                             GLenum type, const GLvoid *indices,
9491                                             GLsizei primcount, GLint basevertex);
9492    void ( * EvalMesh1)( GLenum mode, GLint i1, GLint i2 );
9493    void ( * EvalMesh2)( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
9494 } GLvertexformat;
9495 union gl_dlist_node;
9496 struct gl_display_list
9497 {
9498    GLuint Name;
9499    GLbitfield Flags;
9500    union gl_dlist_node *Head;
9501 };
9502 struct gl_dlist_state
9503 {
9504    GLuint CallDepth;
9505    struct gl_display_list *CurrentList;
9506    union gl_dlist_node *CurrentBlock;
9507    GLuint CurrentPos;
9508    GLvertexformat ListVtxfmt;
9509    GLubyte ActiveAttribSize[VERT_ATTRIB_MAX];
9510    GLfloat CurrentAttrib[VERT_ATTRIB_MAX][4];
9511    GLubyte ActiveMaterialSize[12];
9512    GLfloat CurrentMaterial[12][4];
9513    GLubyte ActiveIndex;
9514    GLfloat CurrentIndex;
9515    GLubyte ActiveEdgeFlag;
9516    GLboolean CurrentEdgeFlag;
9517    struct {
9518       GLenum ShadeModel;
9519    } Current;
9520 };
9521 typedef enum
9522 {
9523    API_OPENGL,
9524    API_OPENGLES,
9525    API_OPENGLES2
9526 } gl_api;
9527 struct gl_context
9528 {
9529    struct gl_shared_state *Shared;
9530    gl_api API;
9531    struct _glapi_table *Save;
9532    struct _glapi_table *Exec;
9533    struct _glapi_table *CurrentDispatch;
9534    struct gl_config Visual;
9535    struct gl_framebuffer *DrawBuffer;
9536    struct gl_framebuffer *ReadBuffer;
9537    struct gl_framebuffer *WinSysDrawBuffer;
9538    struct gl_framebuffer *WinSysReadBuffer;
9539    struct dd_function_table Driver;
9540    void *DriverCtx;
9541    struct gl_constants Const;
9542    struct gl_matrix_stack ModelviewMatrixStack;
9543    struct gl_matrix_stack ProjectionMatrixStack;
9544    struct gl_matrix_stack TextureMatrixStack[((8 > 16) ? 8 : 16)];
9545    struct gl_matrix_stack ProgramMatrixStack[8];
9546    struct gl_matrix_stack *CurrentStack;
9547    GLmatrix _ModelProjectMatrix;
9548    struct gl_dlist_state ListState;
9549    GLboolean ExecuteFlag;
9550    GLboolean CompileFlag;
9551    struct gl_extensions Extensions;
9552    GLuint VersionMajor, VersionMinor;
9553    char *VersionString;
9554    GLuint AttribStackDepth;
9555    struct gl_attrib_node *AttribStack[16];
9556    struct gl_accum_attrib Accum;
9557    struct gl_colorbuffer_attrib Color;
9558    struct gl_current_attrib Current;
9559    struct gl_depthbuffer_attrib Depth;
9560    struct gl_eval_attrib Eval;
9561    struct gl_fog_attrib Fog;
9562    struct gl_hint_attrib Hint;
9563    struct gl_light_attrib Light;
9564    struct gl_line_attrib Line;
9565    struct gl_list_attrib List;
9566    struct gl_multisample_attrib Multisample;
9567    struct gl_pixel_attrib Pixel;
9568    struct gl_point_attrib Point;
9569    struct gl_polygon_attrib Polygon;
9570    GLuint PolygonStipple[32];
9571    struct gl_scissor_attrib Scissor;
9572    struct gl_stencil_attrib Stencil;
9573    struct gl_texture_attrib Texture;
9574    struct gl_transform_attrib Transform;
9575    struct gl_viewport_attrib Viewport;
9576    GLuint ClientAttribStackDepth;
9577    struct gl_attrib_node *ClientAttribStack[16];
9578    struct gl_array_attrib Array;
9579    struct gl_pixelstore_attrib Pack;
9580    struct gl_pixelstore_attrib Unpack;
9581    struct gl_pixelstore_attrib DefaultPacking;
9582    struct gl_pixelmaps PixelMaps;
9583    struct gl_evaluators EvalMap;
9584    struct gl_feedback Feedback;
9585    struct gl_selection Select;
9586    struct gl_program_state Program;
9587    struct gl_vertex_program_state VertexProgram;
9588    struct gl_fragment_program_state FragmentProgram;
9589    struct gl_geometry_program_state GeometryProgram;
9590    struct gl_ati_fragment_shader_state ATIFragmentShader;
9591    struct gl_shader_state Shader;
9592    struct gl_shader_compiler_options ShaderCompilerOptions[MESA_SHADER_TYPES];
9593    struct gl_query_state Query;
9594    struct gl_transform_feedback TransformFeedback;
9595    struct gl_buffer_object *CopyReadBuffer;
9596    struct gl_buffer_object *CopyWriteBuffer;
9597    struct gl_meta_state *Meta;
9598    struct gl_renderbuffer *CurrentRenderbuffer;
9599    GLenum ErrorValue;
9600    GLenum ResetStatus;
9601    const char *ErrorDebugFmtString;
9602    GLuint ErrorDebugCount;
9603    GLenum RenderMode;
9604    GLbitfield NewState;
9605    GLboolean ViewportInitialized;
9606    GLbitfield varying_vp_inputs;
9607    GLbitfield _TriangleCaps;
9608    GLbitfield _ImageTransferState;
9609    GLfloat _EyeZDir[3];
9610    GLfloat _ModelViewInvScale;
9611    GLboolean _NeedEyeCoords;
9612    GLboolean _ForceEyeCoords;
9613    GLuint TextureStateTimestamp;
9614    struct gl_shine_tab *_ShineTable[2];
9615    struct gl_shine_tab *_ShineTabList;
9616    struct gl_list_extensions *ListExt;
9617    GLboolean FirstTimeCurrent;
9618    GLboolean Mesa_DXTn;
9619    GLboolean TextureFormatSupported[MESA_FORMAT_COUNT];
9620    GLboolean mvp_with_dp4;
9621    void *swrast_context;
9622    void *swsetup_context;
9623    void *swtnl_context;
9624    void *swtnl_im;
9625    struct st_context *st;
9626    void *aelt_context;
9627 };
9628 enum _verbose
9629 {
9630    VERBOSE_VARRAY = 0x0001,
9631    VERBOSE_TEXTURE = 0x0002,
9632    VERBOSE_MATERIAL = 0x0004,
9633    VERBOSE_PIPELINE = 0x0008,
9634    VERBOSE_DRIVER = 0x0010,
9635    VERBOSE_STATE = 0x0020,
9636    VERBOSE_API = 0x0040,
9637    VERBOSE_DISPLAY_LIST = 0x0100,
9638    VERBOSE_LIGHTING = 0x0200,
9639    VERBOSE_PRIMS = 0x0400,
9640    VERBOSE_VERTS = 0x0800,
9641    VERBOSE_DISASSEM = 0x1000,
9642    VERBOSE_DRAW = 0x2000,
9643    VERBOSE_SWAPBUFFERS = 0x4000
9644 };
9645 enum _debug
9646 {
9647    DEBUG_ALWAYS_FLUSH = 0x1
9648 };
9649 struct _glapi_table;
9650 extern struct gl_config *
9651 _mesa_create_visual( GLboolean dbFlag,
9652                      GLboolean stereoFlag,
9653                      GLint redBits,
9654                      GLint greenBits,
9655                      GLint blueBits,
9656                      GLint alphaBits,
9657                      GLint depthBits,
9658                      GLint stencilBits,
9659                      GLint accumRedBits,
9660                      GLint accumGreenBits,
9661                      GLint accumBlueBits,
9662                      GLint accumAlphaBits,
9663                      GLint numSamples );
9664 extern GLboolean
9665 _mesa_initialize_visual( struct gl_config *v,
9666                          GLboolean dbFlag,
9667                          GLboolean stereoFlag,
9668                          GLint redBits,
9669                          GLint greenBits,
9670                          GLint blueBits,
9671                          GLint alphaBits,
9672                          GLint depthBits,
9673                          GLint stencilBits,
9674                          GLint accumRedBits,
9675                          GLint accumGreenBits,
9676                          GLint accumBlueBits,
9677                          GLint accumAlphaBits,
9678                          GLint numSamples );
9679 extern void
9680 _mesa_destroy_visual( struct gl_config *vis );
9681 extern GLboolean
9682 _mesa_initialize_context( struct gl_context *ctx,
9683                           gl_api api,
9684                           const struct gl_config *visual,
9685                           struct gl_context *share_list,
9686                           const struct dd_function_table *driverFunctions,
9687                           void *driverContext );
9688 extern struct gl_context *
9689 _mesa_create_context(gl_api api,
9690                      const struct gl_config *visual,
9691                      struct gl_context *share_list,
9692                      const struct dd_function_table *driverFunctions,
9693                      void *driverContext);
9694 extern void
9695 _mesa_free_context_data( struct gl_context *ctx );
9696 extern void
9697 _mesa_destroy_context( struct gl_context *ctx );
9698 extern void
9699 _mesa_copy_context(const struct gl_context *src, struct gl_context *dst, GLuint mask);
9700 extern void
9701 _mesa_check_init_viewport(struct gl_context *ctx, GLuint width, GLuint height);
9702 extern GLboolean
9703 _mesa_make_current( struct gl_context *ctx, struct gl_framebuffer *drawBuffer,
9704                     struct gl_framebuffer *readBuffer );
9705 extern GLboolean
9706 _mesa_share_state(struct gl_context *ctx, struct gl_context *ctxToShare);
9707 extern struct gl_context *
9708 _mesa_get_current_context(void);
9709 extern void
9710 _mesa_init_get_hash(struct gl_context *ctx);
9711 extern void
9712 _mesa_notifySwapBuffers(struct gl_context *gc);
9713 extern struct _glapi_table *
9714 _mesa_get_dispatch(struct gl_context *ctx);
9715 void
9716 _mesa_set_mvp_with_dp4( struct gl_context *ctx,
9717                         GLboolean flag );
9718 extern GLboolean
9719 _mesa_valid_to_render(struct gl_context *ctx, const char *where);
9720 extern void
9721 _mesa_record_error( struct gl_context *ctx, GLenum error );
9722 extern void
9723 _mesa_finish(struct gl_context *ctx);
9724 extern void
9725 _mesa_flush(struct gl_context *ctx);
9726 extern void
9727 _mesa_Finish( void );
9728 extern void
9729 _mesa_Flush( void );
9730 extern GLfloat _mesa_ubyte_to_float_color_tab[256];
9731 extern void
9732 _mesa_update_state(struct gl_context *ctx);
9733 extern void
9734 _mesa_update_state_locked(struct gl_context *ctx);
9735 extern void
9736 _mesa_set_varying_vp_inputs(struct gl_context *ctx, GLbitfield varying_inputs);
9737 extern void
9738 _mesa_set_vp_override(struct gl_context *ctx, GLboolean flag);
9739 static __inline__ GLboolean
9740 _mesa_need_secondary_color(const struct gl_context *ctx)
9741 {
9742    if (ctx->Light.Enabled &&
9743        ctx->Light.Model.ColorControl == 0x81FA)
9744        return 0x1;
9745    if (ctx->Fog.ColorSumEnabled)
9746       return 0x1;
9747    if (ctx->VertexProgram._Current &&
9748        (ctx->VertexProgram._Current != ctx->VertexProgram._TnlProgram) &&
9749        (ctx->VertexProgram._Current->Base.InputsRead & (1 << VERT_ATTRIB_COLOR1)))
9750       return 0x1;
9751    if (ctx->FragmentProgram._Current &&
9752        (ctx->FragmentProgram._Current != ctx->FragmentProgram._TexEnvProgram) &&
9753        (ctx->FragmentProgram._Current->Base.InputsRead & (1 << FRAG_ATTRIB_COL1)))
9754       return 0x1;
9755    return 0x0;
9756 }
9757 static __inline__ GLboolean
9758 _mesa_rgba_logicop_enabled(const struct gl_context *ctx)
9759 {
9760    return ctx->Color.ColorLogicOpEnabled ||
9761       (ctx->Color.BlendEnabled && ctx->Color.Blend[0].EquationRGB == 0x0BF1);
9762 }
9763 typedef enum prog_opcode {
9764    OPCODE_NOP = 0,
9765    OPCODE_ABS,
9766    OPCODE_ADD,
9767    OPCODE_AND,
9768    OPCODE_ARA,
9769    OPCODE_ARL,
9770    OPCODE_ARL_NV,
9771    OPCODE_ARR,
9772    OPCODE_BGNLOOP,
9773    OPCODE_BGNSUB,
9774    OPCODE_BRA,
9775    OPCODE_BRK,
9776    OPCODE_CAL,
9777    OPCODE_CMP,
9778    OPCODE_CONT,
9779    OPCODE_COS,
9780    OPCODE_DDX,
9781    OPCODE_DDY,
9782    OPCODE_DP2,
9783    OPCODE_DP2A,
9784    OPCODE_DP3,
9785    OPCODE_DP4,
9786    OPCODE_DPH,
9787    OPCODE_DST,
9788    OPCODE_ELSE,
9789    OPCODE_EMIT_VERTEX,
9790    OPCODE_END,
9791    OPCODE_END_PRIMITIVE,
9792    OPCODE_ENDIF,
9793    OPCODE_ENDLOOP,
9794    OPCODE_ENDSUB,
9795    OPCODE_EX2,
9796    OPCODE_EXP,
9797    OPCODE_FLR,
9798    OPCODE_FRC,
9799    OPCODE_IF,
9800    OPCODE_KIL,
9801    OPCODE_KIL_NV,
9802    OPCODE_LG2,
9803    OPCODE_LIT,
9804    OPCODE_LOG,
9805    OPCODE_LRP,
9806    OPCODE_MAD,
9807    OPCODE_MAX,
9808    OPCODE_MIN,
9809    OPCODE_MOV,
9810    OPCODE_MUL,
9811    OPCODE_NOISE1,
9812    OPCODE_NOISE2,
9813    OPCODE_NOISE3,
9814    OPCODE_NOISE4,
9815    OPCODE_NOT,
9816    OPCODE_NRM3,
9817    OPCODE_NRM4,
9818    OPCODE_OR,
9819    OPCODE_PK2H,
9820    OPCODE_PK2US,
9821    OPCODE_PK4B,
9822    OPCODE_PK4UB,
9823    OPCODE_POW,
9824    OPCODE_POPA,
9825    OPCODE_PRINT,
9826    OPCODE_PUSHA,
9827    OPCODE_RCC,
9828    OPCODE_RCP,
9829    OPCODE_RET,
9830    OPCODE_RFL,
9831    OPCODE_RSQ,
9832    OPCODE_SCS,
9833    OPCODE_SEQ,
9834    OPCODE_SFL,
9835    OPCODE_SGE,
9836    OPCODE_SGT,
9837    OPCODE_SIN,
9838    OPCODE_SLE,
9839    OPCODE_SLT,
9840    OPCODE_SNE,
9841    OPCODE_SSG,
9842    OPCODE_STR,
9843    OPCODE_SUB,
9844    OPCODE_SWZ,
9845    OPCODE_TEX,
9846    OPCODE_TXB,
9847    OPCODE_TXD,
9848    OPCODE_TXL,
9849    OPCODE_TXP,
9850    OPCODE_TXP_NV,
9851    OPCODE_TRUNC,
9852    OPCODE_UP2H,
9853    OPCODE_UP2US,
9854    OPCODE_UP4B,
9855    OPCODE_UP4UB,
9856    OPCODE_X2D,
9857    OPCODE_XOR,
9858    OPCODE_XPD,
9859    MAX_OPCODE
9860 } gl_inst_opcode;
9861 struct prog_src_register
9862 {
9863    GLuint File:4;
9864    GLint Index:(12 +1);
9865    GLuint Swizzle:12;
9866    GLuint RelAddr:1;
9867    GLuint Abs:1;
9868    GLuint Negate:4;
9869    GLuint HasIndex2:1;
9870    GLuint RelAddr2:1;
9871    GLint Index2:(12 +1);
9872 };
9873 struct prog_dst_register
9874 {
9875    GLuint File:4;
9876    GLuint Index:12;
9877    GLuint WriteMask:4;
9878    GLuint RelAddr:1;
9879    GLuint CondMask:4;
9880    GLuint CondSwizzle:12;
9881    GLuint CondSrc:1;
9882 };
9883 struct prog_instruction
9884 {
9885    gl_inst_opcode Opcode;
9886    struct prog_src_register SrcReg[3];
9887    struct prog_dst_register DstReg;
9888    GLuint CondUpdate:1;
9889    GLuint CondDst:1;
9890    GLuint SaturateMode:2;
9891    GLuint Precision:3;
9892    GLuint TexSrcUnit:5;
9893    GLuint TexSrcTarget:3;
9894    GLuint TexShadow:1;
9895    GLint BranchTarget;
9896    const char *Comment;
9897    void *Data;
9898    GLint Aux;
9899 };
9900 extern void
9901 _mesa_init_instructions(struct prog_instruction *inst, GLuint count);
9902 extern struct prog_instruction *
9903 _mesa_alloc_instructions(GLuint numInst);
9904 extern struct prog_instruction *
9905 _mesa_realloc_instructions(struct prog_instruction *oldInst,
9906                            GLuint numOldInst, GLuint numNewInst);
9907 extern struct prog_instruction *
9908 _mesa_copy_instructions(struct prog_instruction *dest,
9909                         const struct prog_instruction *src, GLuint n);
9910 extern void
9911 _mesa_free_instructions(struct prog_instruction *inst, GLuint count);
9912 extern GLuint
9913 _mesa_num_inst_src_regs(gl_inst_opcode opcode);
9914 extern GLuint
9915 _mesa_num_inst_dst_regs(gl_inst_opcode opcode);
9916 extern GLboolean
9917 _mesa_is_tex_instruction(gl_inst_opcode opcode);
9918 extern GLboolean
9919 _mesa_check_soa_dependencies(const struct prog_instruction *inst);
9920 extern const char *
9921 _mesa_opcode_string(gl_inst_opcode opcode);
9922 struct gl_context;
9923 extern void
9924 _swrast_set_aa_triangle_function(struct gl_context *ctx);
9925 typedef void (*FetchTexelLodFunc)(struct gl_context *ctx, const GLfloat texcoord[4],
9926                                   GLfloat lambda, GLuint unit, GLfloat color[4]);
9927 typedef void (*FetchTexelDerivFunc)(struct gl_context *ctx, const GLfloat texcoord[4],
9928                                     const GLfloat texdx[4],
9929                                     const GLfloat texdy[4],
9930                                     GLfloat lodBias,
9931                                     GLuint unit, GLfloat color[4]);
9932 struct gl_program_machine
9933 {
9934    const struct gl_program *CurProgram;
9935    GLfloat (*Attribs)[16384][4];
9936    GLfloat (*DerivX)[4];
9937    GLfloat (*DerivY)[4];
9938    GLuint NumDeriv;
9939    GLuint CurElement;
9940    GLfloat VertAttribs[VERT_ATTRIB_MAX][4];
9941    GLfloat Temporaries[256][4];
9942    GLfloat Outputs[64][4];
9943    GLfloat (*EnvParams)[4];
9944    GLuint CondCodes[4];
9945    GLint AddressReg[2][4];
9946    GLfloat SystemValues[SYSTEM_VALUE_MAX][4];
9947    const GLubyte *Samplers;
9948    GLuint CallStack[8];
9949    GLuint StackDepth;
9950    FetchTexelLodFunc FetchTexelLod;
9951    FetchTexelDerivFunc FetchTexelDeriv;
9952 };
9953 extern void
9954 _mesa_get_program_register(struct gl_context *ctx, gl_register_file file,
9955                            GLuint index, GLfloat val[4]);
9956 extern GLboolean
9957 _mesa_execute_program(struct gl_context *ctx,
9958                       const struct gl_program *program,
9959                       struct gl_program_machine *machine);
9960 typedef struct {
9961    GLfloat attrib[FRAG_ATTRIB_MAX][4];
9962    GLchan color[4];
9963    GLfloat pointSize;
9964 } SWvertex;
9965 struct swrast_device_driver;
9966 extern GLboolean
9967 _swrast_CreateContext( struct gl_context *ctx );
9968 extern void
9969 _swrast_DestroyContext( struct gl_context *ctx );
9970 extern struct swrast_device_driver *
9971 _swrast_GetDeviceDriverReference( struct gl_context *ctx );
9972 extern void
9973 _swrast_Bitmap( struct gl_context *ctx,
9974   GLint px, GLint py,
9975   GLsizei width, GLsizei height,
9976   const struct gl_pixelstore_attrib *unpack,
9977   const GLubyte *bitmap );
9978 extern void
9979 _swrast_CopyPixels( struct gl_context *ctx,
9980       GLint srcx, GLint srcy,
9981       GLint destx, GLint desty,
9982       GLsizei width, GLsizei height,
9983       GLenum type );
9984 extern void
9985 _swrast_DrawPixels( struct gl_context *ctx,
9986       GLint x, GLint y,
9987       GLsizei width, GLsizei height,
9988       GLenum format, GLenum type,
9989       const struct gl_pixelstore_attrib *unpack,
9990       const GLvoid *pixels );
9991 extern void
9992 _swrast_ReadPixels( struct gl_context *ctx,
9993       GLint x, GLint y, GLsizei width, GLsizei height,
9994       GLenum format, GLenum type,
9995       const struct gl_pixelstore_attrib *unpack,
9996       GLvoid *pixels );
9997 extern void
9998 _swrast_BlitFramebuffer(struct gl_context *ctx,
9999                         GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
10000                         GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
10001                         GLbitfield mask, GLenum filter);
10002 extern void
10003 _swrast_Clear(struct gl_context *ctx, GLbitfield buffers);
10004 extern void
10005 _swrast_Accum(struct gl_context *ctx, GLenum op, GLfloat value);
10006 extern void
10007 _swrast_ResetLineStipple( struct gl_context *ctx );
10008 extern void
10009 _swrast_SetFacing(struct gl_context *ctx, GLuint facing);
10010 extern void
10011 _swrast_Point( struct gl_context *ctx, const SWvertex *v );
10012 extern void
10013 _swrast_Line( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1 );
10014 extern void
10015 _swrast_Triangle( struct gl_context *ctx, const SWvertex *v0,
10016                   const SWvertex *v1, const SWvertex *v2 );
10017 extern void
10018 _swrast_Quad( struct gl_context *ctx,
10019               const SWvertex *v0, const SWvertex *v1,
10020        const SWvertex *v2, const SWvertex *v3);
10021 extern void
10022 _swrast_flush( struct gl_context *ctx );
10023 extern void
10024 _swrast_render_primitive( struct gl_context *ctx, GLenum mode );
10025 extern void
10026 _swrast_render_start( struct gl_context *ctx );
10027 extern void
10028 _swrast_render_finish( struct gl_context *ctx );
10029 extern void
10030 _swrast_InvalidateState( struct gl_context *ctx, GLbitfield new_state );
10031 extern void
10032 _swrast_allow_vertex_fog( struct gl_context *ctx, GLboolean value );
10033 extern void
10034 _swrast_allow_pixel_fog( struct gl_context *ctx, GLboolean value );
10035 extern void
10036 _swrast_print_vertex( struct gl_context *ctx, const SWvertex *v );
10037 extern void
10038 _swrast_eject_texture_images(struct gl_context *ctx);
10039 extern void
10040 _swrast_render_texture(struct gl_context *ctx,
10041                        struct gl_framebuffer *fb,
10042                        struct gl_renderbuffer_attachment *att);
10043 extern void
10044 _swrast_finish_render_texture(struct gl_context *ctx,
10045                               struct gl_renderbuffer_attachment *att);
10046 struct swrast_device_driver {
10047    void (*SpanRenderStart)(struct gl_context *ctx);
10048    void (*SpanRenderFinish)(struct gl_context *ctx);
10049 };
10050 struct gl_context;
10051 struct gl_renderbuffer;
10052 typedef struct sw_span_arrays
10053 {
10054    GLfloat attribs[FRAG_ATTRIB_MAX][16384][4];
10055    GLubyte mask[16384];
10056    GLenum ChanType;
10057    GLubyte rgba8[16384][4];
10058    GLushort rgba16[16384][4];
10059    GLchan (*rgba)[4];
10060    GLint x[16384];
10061    GLint y[16384];
10062    GLuint z[16384];
10063    GLuint index[16384];
10064    GLfloat lambda[8][16384];
10065    GLfloat coverage[16384];
10066 } SWspanarrays;
10067 typedef struct sw_span
10068 {
10069    GLint x, y;
10070    GLuint end;
10071    GLuint leftClip;
10072    GLboolean writeAll;
10073    GLenum primitive;
10074    GLuint facing;
10075    GLbitfield interpMask;
10076    GLfloat attrStart[FRAG_ATTRIB_MAX][4];
10077    GLfloat attrStepX[FRAG_ATTRIB_MAX][4];
10078    GLfloat attrStepY[FRAG_ATTRIB_MAX][4];
10079    GLfixed red, redStep;
10080    GLfixed green, greenStep;
10081    GLfixed blue, blueStep;
10082    GLfixed alpha, alphaStep;
10083    GLfixed index, indexStep;
10084    GLfixed z, zStep;
10085    GLfixed intTex[2], intTexStep[2];
10086    GLbitfield arrayMask;
10087    GLbitfield arrayAttribs;
10088    SWspanarrays *array;
10089 } SWspan;
10090 extern void
10091 _swrast_span_default_attribs(struct gl_context *ctx, SWspan *span);
10092 extern void
10093 _swrast_span_interpolate_z( const struct gl_context *ctx, SWspan *span );
10094 extern GLfloat
10095 _swrast_compute_lambda(GLfloat dsdx, GLfloat dsdy, GLfloat dtdx, GLfloat dtdy,
10096                        GLfloat dqdx, GLfloat dqdy, GLfloat texW, GLfloat texH,
10097                        GLfloat s, GLfloat t, GLfloat q, GLfloat invQ);
10098 extern void
10099 _swrast_write_rgba_span( struct gl_context *ctx, SWspan *span);
10100 extern void
10101 _swrast_read_rgba_span(struct gl_context *ctx, struct gl_renderbuffer *rb,
10102                        GLuint n, GLint x, GLint y, GLenum type, GLvoid *rgba);
10103 extern void
10104 _swrast_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb,
10105                    GLuint count, const GLint x[], const GLint y[],
10106                    void *values, GLuint valueSize);
10107 extern void
10108 _swrast_put_row(struct gl_context *ctx, struct gl_renderbuffer *rb,
10109                 GLuint count, GLint x, GLint y,
10110                 const GLvoid *values, GLuint valueSize);
10111 extern void
10112 _swrast_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb,
10113                 GLuint count, GLint x, GLint y,
10114                 GLvoid *values, GLuint valueSize);
10115 extern void *
10116 _swrast_get_dest_rgba(struct gl_context *ctx, struct gl_renderbuffer *rb,
10117                       SWspan *span);
10118 typedef void (*texture_sample_func)(struct gl_context *ctx,
10119                                     const struct gl_texture_object *tObj,
10120                                     GLuint n, const GLfloat texcoords[][4],
10121                                     const GLfloat lambda[], GLfloat rgba[][4]);
10122 typedef void ( * blend_func)( struct gl_context *ctx, GLuint n,
10123                                     const GLubyte mask[],
10124                                     GLvoid *src, const GLvoid *dst,
10125                                     GLenum chanType);
10126 typedef void (*swrast_point_func)( struct gl_context *ctx, const SWvertex *);
10127 typedef void (*swrast_line_func)( struct gl_context *ctx,
10128                                   const SWvertex *, const SWvertex *);
10129 typedef void (*swrast_tri_func)( struct gl_context *ctx, const SWvertex *,
10130                                  const SWvertex *, const SWvertex *);
10131 typedef void (*validate_texture_image_func)(struct gl_context *ctx,
10132                                             struct gl_texture_object *texObj,
10133                                             GLuint face, GLuint level);
10134 typedef struct
10135 {
10136    struct swrast_device_driver Driver;
10137    GLboolean AllowVertexFog;
10138    GLboolean AllowPixelFog;
10139    GLbitfield _RasterMask;
10140    GLfloat _BackfaceSign;
10141    GLfloat _BackfaceCullSign;
10142    GLboolean _PreferPixelFog;
10143    GLboolean _TextureCombinePrimary;
10144    GLboolean _FogEnabled;
10145    GLboolean _DeferredTexture;
10146    GLuint _ActiveAttribs[FRAG_ATTRIB_MAX];
10147    GLbitfield _ActiveAttribMask;
10148    GLuint _NumActiveAttribs;
10149    GLenum _InterpMode[FRAG_ATTRIB_MAX];
10150    GLboolean _IntegerAccumMode;
10151    GLfloat _IntegerAccumScaler;
10152    GLuint StippleCounter;
10153    GLuint PointLineFacing;
10154    GLbitfield NewState;
10155    GLuint StateChanges;
10156    GLenum Primitive;
10157    GLboolean SpecularVertexAdd;
10158    void (*InvalidateState)( struct gl_context *ctx, GLbitfield new_state );
10159    GLbitfield InvalidatePointMask;
10160    GLbitfield InvalidateLineMask;
10161    GLbitfield InvalidateTriangleMask;
10162    void (*choose_point)( struct gl_context * );
10163    void (*choose_line)( struct gl_context * );
10164    void (*choose_triangle)( struct gl_context * );
10165    swrast_point_func Point;
10166    swrast_line_func Line;
10167    swrast_tri_func Triangle;
10168    swrast_point_func SpecPoint;
10169    swrast_line_func SpecLine;
10170    swrast_tri_func SpecTriangle;
10171    SWspanarrays *SpanArrays;
10172    SWspanarrays *ZoomedArrays;
10173    SWspan PointSpan;
10174    blend_func BlendFunc;
10175    texture_sample_func TextureSample[16];
10176    GLfloat *TexelBuffer;
10177    validate_texture_image_func ValidateTextureImage;
10178    struct gl_program_machine FragProgMachine;
10179 } SWcontext;
10180 extern void
10181 _swrast_validate_derived( struct gl_context *ctx );
10182 extern void
10183 _swrast_update_texture_samplers(struct gl_context *ctx);
10184 static __inline__ SWcontext *
10185 SWRAST_CONTEXT(struct gl_context *ctx)
10186 {
10187    return (SWcontext *) ctx->swrast_context;
10188 }
10189 static __inline__ const SWcontext *
10190 CONST_SWRAST_CONTEXT(const struct gl_context *ctx)
10191 {
10192    return (const SWcontext *) ctx->swrast_context;
10193 }
10194 static __inline__ void
10195 swrast_render_start(struct gl_context *ctx)
10196 {
10197    SWcontext *swrast = SWRAST_CONTEXT(ctx);
10198    if (swrast->Driver.SpanRenderStart)
10199       swrast->Driver.SpanRenderStart(ctx);
10200 }
10201 static __inline__ void
10202 swrast_render_finish(struct gl_context *ctx)
10203 {
10204    SWcontext *swrast = SWRAST_CONTEXT(ctx);
10205    if (swrast->Driver.SpanRenderFinish)
10206       swrast->Driver.SpanRenderFinish(ctx);
10207 }
10208 extern void _swrast_feedback_point( struct gl_context *ctx, const SWvertex *v );
10209 extern void _swrast_feedback_line( struct gl_context *ctx,
10210                               const SWvertex *v1, const SWvertex *v2 );
10211 extern void _swrast_feedback_triangle( struct gl_context *ctx, const SWvertex *v0,
10212                                   const SWvertex *v1, const SWvertex *v2 );
10213 extern void _swrast_select_point( struct gl_context *ctx, const SWvertex *v );
10214 extern void _swrast_select_line( struct gl_context *ctx,
10215                             const SWvertex *v1, const SWvertex *v2 );
10216 extern void _swrast_select_triangle( struct gl_context *ctx, const SWvertex *v0,
10217                                 const SWvertex *v1, const SWvertex *v2 );
10218 extern GLboolean
10219 _swrast_culltriangle( struct gl_context *ctx,
10220                      const SWvertex *v0,
10221                      const SWvertex *v1,
10222                      const SWvertex *v2);
10223 extern void
10224 _swrast_choose_triangle( struct gl_context *ctx );
10225 extern void
10226 _swrast_add_spec_terms_triangle( struct gl_context *ctx,
10227      const SWvertex *v0,
10228      const SWvertex *v1,
10229      const SWvertex *v2 );
10230 GLboolean
10231 _swrast_culltriangle( struct gl_context *ctx,
10232                       const SWvertex *v0,
10233                       const SWvertex *v1,
10234                       const SWvertex *v2 )
10235 {
10236    SWcontext *swrast = SWRAST_CONTEXT(ctx);
10237    GLfloat ex = v1->attrib[FRAG_ATTRIB_WPOS][0] - v0->attrib[FRAG_ATTRIB_WPOS][0];
10238    GLfloat ey = v1->attrib[FRAG_ATTRIB_WPOS][1] - v0->attrib[FRAG_ATTRIB_WPOS][1];
10239    GLfloat fx = v2->attrib[FRAG_ATTRIB_WPOS][0] - v0->attrib[FRAG_ATTRIB_WPOS][0];
10240    GLfloat fy = v2->attrib[FRAG_ATTRIB_WPOS][1] - v0->attrib[FRAG_ATTRIB_WPOS][1];
10241    GLfloat c = ex*fy-ey*fx;
10242    if (c * swrast->_BackfaceSign * swrast->_BackfaceCullSign <= 0.0F)
10243       return 0x0;
10244    return 0x1;
10245 }
10246 static void flat_rgba_triangle(struct gl_context *ctx, const SWvertex *v0,
10247                                  const SWvertex *v1,
10248                                  const SWvertex *v2 )
10249 {
10250    typedef struct {
10251       const SWvertex *v0, *v1;
10252       GLfloat dx;
10253       GLfloat dy;
10254       GLfloat dxdy;
10255       GLfixed fdxdy;
10256       GLfloat adjy;
10257       GLfixed fsx;
10258       GLfixed fsy;
10259       GLfixed fx0;
10260       GLint lines;
10261    } EdgeT;
10262    const SWcontext *swrast = SWRAST_CONTEXT(ctx);
10263    const GLint depthBits = ctx->DrawBuffer->Visual.depthBits;
10264    const GLint fixedToDepthShift = depthBits <= 16 ? 11 : 0;
10265    const GLfloat maxDepth = ctx->DrawBuffer->_DepthMaxF;
10266    EdgeT eMaj, eTop, eBot;
10267    GLfloat oneOverArea;
10268    const SWvertex *vMin, *vMid, *vMax;
10269    GLfloat bf = SWRAST_CONTEXT(ctx)->_BackfaceSign;
10270    const GLint snapMask = ~(((1 << 11) / (1 << 4)) - 1);
10271    GLfixed vMin_fx, vMin_fy, vMid_fx, vMid_fy, vMax_fx, vMax_fy;
10272    SWspan span;
10273    (void) swrast;
10274    do { (span).primitive = (0x0009); (span).interpMask = 0x0; (span).arrayMask = 0x0; (span).arrayAttribs = 0x0; (span).end = 0; (span).leftClip = 0; (span).facing = 0; (span).array = SWRAST_CONTEXT(ctx)->SpanArrays; } while (0);
10275    span.y = 0;
10276    (void) fixedToDepthShift;
10277    {
10278       const GLfixed fy0 = (((int) ((((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10279       const GLfixed fy1 = (((int) ((((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10280       const GLfixed fy2 = (((int) ((((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10281       if (fy0 <= fy1) {
10282          if (fy1 <= fy2) {
10283             vMin = v0; vMid = v1; vMax = v2;
10284             vMin_fy = fy0; vMid_fy = fy1; vMax_fy = fy2;
10285          }
10286          else if (fy2 <= fy0) {
10287             vMin = v2; vMid = v0; vMax = v1;
10288             vMin_fy = fy2; vMid_fy = fy0; vMax_fy = fy1;
10289          }
10290          else {
10291             vMin = v0; vMid = v2; vMax = v1;
10292             vMin_fy = fy0; vMid_fy = fy2; vMax_fy = fy1;
10293             bf = -bf;
10294          }
10295       }
10296       else {
10297          if (fy0 <= fy2) {
10298             vMin = v1; vMid = v0; vMax = v2;
10299             vMin_fy = fy1; vMid_fy = fy0; vMax_fy = fy2;
10300             bf = -bf;
10301          }
10302          else if (fy2 <= fy1) {
10303             vMin = v2; vMid = v1; vMax = v0;
10304             vMin_fy = fy2; vMid_fy = fy1; vMax_fy = fy0;
10305             bf = -bf;
10306          }
10307          else {
10308             vMin = v1; vMid = v2; vMax = v0;
10309             vMin_fy = fy1; vMid_fy = fy2; vMax_fy = fy0;
10310          }
10311       }
10312       vMin_fx = (((int) ((((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10313       vMid_fx = (((int) ((((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10314       vMax_fx = (((int) ((((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10315    }
10316    eMaj.v0 = vMin; eMaj.v1 = vMax;
10317    eTop.v0 = vMid; eTop.v1 = vMax;
10318    eBot.v0 = vMin; eBot.v1 = vMid;
10319    eMaj.dx = ((vMax_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
10320    eMaj.dy = ((vMax_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
10321    eTop.dx = ((vMax_fx - vMid_fx) * (1.0F / ((float) (1 << 11))));
10322    eTop.dy = ((vMax_fy - vMid_fy) * (1.0F / ((float) (1 << 11))));
10323    eBot.dx = ((vMid_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
10324    eBot.dy = ((vMid_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
10325    {
10326       const GLfloat area = eMaj.dx * eBot.dy - eBot.dx * eMaj.dy;
10327       if (IS_INF_OR_NAN(area) || area == 0.0F)
10328          return;
10329       if (area * bf * swrast->_BackfaceCullSign < 0.0)
10330          return;
10331       oneOverArea = 1.0F / area;
10332       span.facing = oneOverArea * bf > 0.0F;
10333    }
10334    {
10335       eMaj.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10336       eMaj.lines = (((((vMax_fy - eMaj.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
10337       if (eMaj.lines > 0) {
10338          eMaj.dxdy = eMaj.dx / eMaj.dy;
10339          eMaj.fdxdy = (((int) ((((eMaj.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eMaj.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eMaj.dxdy) * ((float) (1 << 11))) - 0.5F))));
10340          eMaj.adjy = (GLfloat) (eMaj.fsy - vMin_fy);
10341          eMaj.fx0 = vMin_fx;
10342          eMaj.fsx = eMaj.fx0 + (GLfixed) (eMaj.adjy * eMaj.dxdy);
10343       }
10344       else {
10345          return;
10346       }
10347       eTop.fsy = (((vMid_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10348       eTop.lines = (((((vMax_fy - eTop.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
10349       if (eTop.lines > 0) {
10350          eTop.dxdy = eTop.dx / eTop.dy;
10351          eTop.fdxdy = (((int) ((((eTop.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eTop.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eTop.dxdy) * ((float) (1 << 11))) - 0.5F))));
10352          eTop.adjy = (GLfloat) (eTop.fsy - vMid_fy);
10353          eTop.fx0 = vMid_fx;
10354          eTop.fsx = eTop.fx0 + (GLfixed) (eTop.adjy * eTop.dxdy);
10355       }
10356       eBot.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10357       eBot.lines = (((((vMid_fy - eBot.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
10358       if (eBot.lines > 0) {
10359          eBot.dxdy = eBot.dx / eBot.dy;
10360          eBot.fdxdy = (((int) ((((eBot.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eBot.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eBot.dxdy) * ((float) (1 << 11))) - 0.5F))));
10361          eBot.adjy = (GLfloat) (eBot.fsy - vMin_fy);
10362          eBot.fx0 = vMin_fx;
10363          eBot.fsx = eBot.fx0 + (GLfixed) (eBot.adjy * eBot.dxdy);
10364       }
10365    }
10366    {
10367       GLint scan_from_left_to_right;
10368       ; ; span.interpMask |= 0x01; span.red = ((v2->color[0]) << 11); span.green = ((v2->color[1]) << 11); span.blue = ((v2->color[2]) << 11); span.alpha = ((v2->color[3]) << 11); span.redStep = 0; span.greenStep = 0; span.blueStep = 0; span.alphaStep = 0;
10369       scan_from_left_to_right = (oneOverArea < 0.0F);
10370       span.interpMask |= 0x02;
10371       {
10372          GLfloat eMaj_dz = vMax->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
10373          GLfloat eBot_dz = vMid->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
10374          span.attrStepX[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj_dz * eBot.dy - eMaj.dy * eBot_dz);
10375          if (span.attrStepX[FRAG_ATTRIB_WPOS][2] > maxDepth ||
10376              span.attrStepX[FRAG_ATTRIB_WPOS][2] < -maxDepth) {
10377             span.attrStepX[FRAG_ATTRIB_WPOS][2] = 0.0;
10378             span.attrStepY[FRAG_ATTRIB_WPOS][2] = 0.0;
10379          }
10380          else {
10381             span.attrStepY[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj.dx * eBot_dz - eMaj_dz * eBot.dx);
10382          }
10383          if (depthBits <= 16)
10384             span.zStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))));
10385          else
10386             span.zStep = (GLint) span.attrStepX[FRAG_ATTRIB_WPOS][2];
10387       }
10388       {
10389          GLint subTriangle;
10390          GLfixed fxLeftEdge = 0, fxRightEdge = 0;
10391          GLfixed fdxLeftEdge = 0, fdxRightEdge = 0;
10392          GLfixed fError = 0, fdError = 0;
10393          GLuint zLeft = 0;
10394          GLfixed fdzOuter = 0, fdzInner;
10395          for (subTriangle=0; subTriangle<=1; subTriangle++) {
10396             EdgeT *eLeft, *eRight;
10397             int setupLeft, setupRight;
10398             int lines;
10399             if (subTriangle==0) {
10400                if (scan_from_left_to_right) {
10401                   eLeft = &eMaj;
10402                   eRight = &eBot;
10403                   lines = eRight->lines;
10404                   setupLeft = 1;
10405                   setupRight = 1;
10406                }
10407                else {
10408                   eLeft = &eBot;
10409                   eRight = &eMaj;
10410                   lines = eLeft->lines;
10411                   setupLeft = 1;
10412                   setupRight = 1;
10413                }
10414             }
10415             else {
10416                if (scan_from_left_to_right) {
10417                   eLeft = &eMaj;
10418                   eRight = &eTop;
10419                   lines = eRight->lines;
10420                   setupLeft = 0;
10421                   setupRight = 1;
10422                }
10423                else {
10424                   eLeft = &eTop;
10425                   eRight = &eMaj;
10426                   lines = eLeft->lines;
10427                   setupLeft = 1;
10428                   setupRight = 0;
10429                }
10430                if (lines == 0)
10431                   return;
10432             }
10433             if (setupLeft && eLeft->lines > 0) {
10434                const SWvertex *vLower = eLeft->v0;
10435                const GLfixed fsy = eLeft->fsy;
10436                const GLfixed fsx = eLeft->fsx;
10437                const GLfixed fx = (((fsx) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10438                const GLfixed adjx = (GLfixed) (fx - eLeft->fx0);
10439                const GLfixed adjy = (GLfixed) eLeft->adjy;
10440                GLint idxOuter;
10441                GLfloat dxOuter;
10442                GLfixed fdxOuter;
10443                fError = fx - fsx - (1 << 11);
10444                fxLeftEdge = fsx - 1;
10445                fdxLeftEdge = eLeft->fdxdy;
10446                fdxOuter = ((fdxLeftEdge - 1) & (~((1 << 11) - 1)));
10447                fdError = fdxOuter - fdxLeftEdge + (1 << 11);
10448                idxOuter = ((fdxOuter) >> 11);
10449                dxOuter = (GLfloat) idxOuter;
10450                span.y = ((fsy) >> 11);
10451                (void) dxOuter;
10452                (void) adjx;
10453                (void) adjy;
10454                (void) vLower;
10455                {
10456                   GLfloat z0 = vLower->attrib[FRAG_ATTRIB_WPOS][2];
10457                   if (depthBits <= 16) {
10458                      GLfloat tmp = (z0 * ((float) (1 << 11))
10459                                     + span.attrStepX[FRAG_ATTRIB_WPOS][2] * adjx
10460                                     + span.attrStepY[FRAG_ATTRIB_WPOS][2] * adjy) + (1 << (11 -1));
10461                      if (tmp < 0xffffffff / 2)
10462                         zLeft = (GLfixed) tmp;
10463                      else
10464                         zLeft = 0xffffffff / 2;
10465                      fdzOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))))
10466                                                                                                  ;
10467                   }
10468                   else {
10469                      zLeft = (GLuint) (z0 + span.attrStepX[FRAG_ATTRIB_WPOS][2] * ((adjx) * (1.0F / ((float) (1 << 11))))
10470                                           + span.attrStepY[FRAG_ATTRIB_WPOS][2] * ((adjy) * (1.0F / ((float) (1 << 11)))));
10471                      fdzOuter = (GLint) (span.attrStepY[FRAG_ATTRIB_WPOS][2] +
10472                                          dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]);
10473                   }
10474                }
10475             }
10476             if (setupRight && eRight->lines>0) {
10477                fxRightEdge = eRight->fsx - 1;
10478                fdxRightEdge = eRight->fdxdy;
10479             }
10480             if (lines==0) {
10481                continue;
10482             }
10483             fdzInner = fdzOuter + span.zStep;
10484             while (lines > 0) {
10485                const GLint right = ((fxRightEdge) >> 11);
10486                span.x = ((fxLeftEdge) >> 11);
10487                if (right <= span.x)
10488                   span.end = 0;
10489                else
10490                   span.end = right - span.x;
10491                span.z = zLeft;
10492                if (span.end > 0 && span.y >= 0) {
10493                   const GLint len = span.end - 1;
10494                   (void) len;
10495                   {
10496                      _swrast_write_rgba_span(ctx, &span);;
10497                   }
10498                }
10499                span.y++;
10500                lines--;
10501                fxLeftEdge += fdxLeftEdge;
10502                fxRightEdge += fdxRightEdge;
10503                fError += fdError;
10504                if (fError >= 0) {
10505                   fError -= (1 << 11);
10506                   zLeft += fdzOuter;
10507                }
10508                else {
10509                   zLeft += fdzInner;
10510                }
10511             }
10512          }
10513       }
10514    }
10515 }
10516 static void smooth_rgba_triangle(struct gl_context *ctx, const SWvertex *v0,
10517                                  const SWvertex *v1,
10518                                  const SWvertex *v2 )
10519 {
10520    typedef struct {
10521       const SWvertex *v0, *v1;
10522       GLfloat dx;
10523       GLfloat dy;
10524       GLfloat dxdy;
10525       GLfixed fdxdy;
10526       GLfloat adjy;
10527       GLfixed fsx;
10528       GLfixed fsy;
10529       GLfixed fx0;
10530       GLint lines;
10531    } EdgeT;
10532    const SWcontext *swrast = SWRAST_CONTEXT(ctx);
10533    const GLint depthBits = ctx->DrawBuffer->Visual.depthBits;
10534    const GLint fixedToDepthShift = depthBits <= 16 ? 11 : 0;
10535    const GLfloat maxDepth = ctx->DrawBuffer->_DepthMaxF;
10536    EdgeT eMaj, eTop, eBot;
10537    GLfloat oneOverArea;
10538    const SWvertex *vMin, *vMid, *vMax;
10539    GLfloat bf = SWRAST_CONTEXT(ctx)->_BackfaceSign;
10540    const GLint snapMask = ~(((1 << 11) / (1 << 4)) - 1);
10541    GLfixed vMin_fx, vMin_fy, vMid_fx, vMid_fy, vMax_fx, vMax_fy;
10542    SWspan span;
10543    (void) swrast;
10544    do { (span).primitive = (0x0009); (span).interpMask = 0x0; (span).arrayMask = 0x0; (span).arrayAttribs = 0x0; (span).end = 0; (span).leftClip = 0; (span).facing = 0; (span).array = SWRAST_CONTEXT(ctx)->SpanArrays; } while (0);
10545    span.y = 0;
10546    (void) fixedToDepthShift;
10547    {
10548       const GLfixed fy0 = (((int) ((((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10549       const GLfixed fy1 = (((int) ((((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10550       const GLfixed fy2 = (((int) ((((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10551       if (fy0 <= fy1) {
10552          if (fy1 <= fy2) {
10553             vMin = v0; vMid = v1; vMax = v2;
10554             vMin_fy = fy0; vMid_fy = fy1; vMax_fy = fy2;
10555          }
10556          else if (fy2 <= fy0) {
10557             vMin = v2; vMid = v0; vMax = v1;
10558             vMin_fy = fy2; vMid_fy = fy0; vMax_fy = fy1;
10559          }
10560          else {
10561             vMin = v0; vMid = v2; vMax = v1;
10562             vMin_fy = fy0; vMid_fy = fy2; vMax_fy = fy1;
10563             bf = -bf;
10564          }
10565       }
10566       else {
10567          if (fy0 <= fy2) {
10568             vMin = v1; vMid = v0; vMax = v2;
10569             vMin_fy = fy1; vMid_fy = fy0; vMax_fy = fy2;
10570             bf = -bf;
10571          }
10572          else if (fy2 <= fy1) {
10573             vMin = v2; vMid = v1; vMax = v0;
10574             vMin_fy = fy2; vMid_fy = fy1; vMax_fy = fy0;
10575             bf = -bf;
10576          }
10577          else {
10578             vMin = v1; vMid = v2; vMax = v0;
10579             vMin_fy = fy1; vMid_fy = fy2; vMax_fy = fy0;
10580          }
10581       }
10582       vMin_fx = (((int) ((((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10583       vMid_fx = (((int) ((((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10584       vMax_fx = (((int) ((((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10585    }
10586    eMaj.v0 = vMin; eMaj.v1 = vMax;
10587    eTop.v0 = vMid; eTop.v1 = vMax;
10588    eBot.v0 = vMin; eBot.v1 = vMid;
10589    eMaj.dx = ((vMax_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
10590    eMaj.dy = ((vMax_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
10591    eTop.dx = ((vMax_fx - vMid_fx) * (1.0F / ((float) (1 << 11))));
10592    eTop.dy = ((vMax_fy - vMid_fy) * (1.0F / ((float) (1 << 11))));
10593    eBot.dx = ((vMid_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
10594    eBot.dy = ((vMid_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
10595    {
10596       const GLfloat area = eMaj.dx * eBot.dy - eBot.dx * eMaj.dy;
10597       if (IS_INF_OR_NAN(area) || area == 0.0F)
10598          return;
10599       if (area * bf * swrast->_BackfaceCullSign < 0.0)
10600          return;
10601       oneOverArea = 1.0F / area;
10602       span.facing = oneOverArea * bf > 0.0F;
10603    }
10604    {
10605       eMaj.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10606       eMaj.lines = (((((vMax_fy - eMaj.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
10607       if (eMaj.lines > 0) {
10608          eMaj.dxdy = eMaj.dx / eMaj.dy;
10609          eMaj.fdxdy = (((int) ((((eMaj.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eMaj.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eMaj.dxdy) * ((float) (1 << 11))) - 0.5F))));
10610          eMaj.adjy = (GLfloat) (eMaj.fsy - vMin_fy);
10611          eMaj.fx0 = vMin_fx;
10612          eMaj.fsx = eMaj.fx0 + (GLfixed) (eMaj.adjy * eMaj.dxdy);
10613       }
10614       else {
10615          return;
10616       }
10617       eTop.fsy = (((vMid_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10618       eTop.lines = (((((vMax_fy - eTop.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
10619       if (eTop.lines > 0) {
10620          eTop.dxdy = eTop.dx / eTop.dy;
10621          eTop.fdxdy = (((int) ((((eTop.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eTop.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eTop.dxdy) * ((float) (1 << 11))) - 0.5F))));
10622          eTop.adjy = (GLfloat) (eTop.fsy - vMid_fy);
10623          eTop.fx0 = vMid_fx;
10624          eTop.fsx = eTop.fx0 + (GLfixed) (eTop.adjy * eTop.dxdy);
10625       }
10626       eBot.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10627       eBot.lines = (((((vMid_fy - eBot.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
10628       if (eBot.lines > 0) {
10629          eBot.dxdy = eBot.dx / eBot.dy;
10630          eBot.fdxdy = (((int) ((((eBot.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eBot.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eBot.dxdy) * ((float) (1 << 11))) - 0.5F))));
10631          eBot.adjy = (GLfloat) (eBot.fsy - vMin_fy);
10632          eBot.fx0 = vMin_fx;
10633          eBot.fsx = eBot.fx0 + (GLfixed) (eBot.adjy * eBot.dxdy);
10634       }
10635    }
10636    {
10637       GLint scan_from_left_to_right;
10638       { ; ; }
10639       scan_from_left_to_right = (oneOverArea < 0.0F);
10640       span.interpMask |= 0x02;
10641       {
10642          GLfloat eMaj_dz = vMax->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
10643          GLfloat eBot_dz = vMid->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
10644          span.attrStepX[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj_dz * eBot.dy - eMaj.dy * eBot_dz);
10645          if (span.attrStepX[FRAG_ATTRIB_WPOS][2] > maxDepth ||
10646              span.attrStepX[FRAG_ATTRIB_WPOS][2] < -maxDepth) {
10647             span.attrStepX[FRAG_ATTRIB_WPOS][2] = 0.0;
10648             span.attrStepY[FRAG_ATTRIB_WPOS][2] = 0.0;
10649          }
10650          else {
10651             span.attrStepY[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj.dx * eBot_dz - eMaj_dz * eBot.dx);
10652          }
10653          if (depthBits <= 16)
10654             span.zStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))));
10655          else
10656             span.zStep = (GLint) span.attrStepX[FRAG_ATTRIB_WPOS][2];
10657       }
10658       span.interpMask |= 0x01;
10659       if (ctx->Light.ShadeModel == 0x1D01) {
10660          GLfloat eMaj_dr = (GLfloat) (vMax->color[0] - vMin->color[0]);
10661          GLfloat eBot_dr = (GLfloat) (vMid->color[0] - vMin->color[0]);
10662          GLfloat eMaj_dg = (GLfloat) (vMax->color[1] - vMin->color[1]);
10663          GLfloat eBot_dg = (GLfloat) (vMid->color[1] - vMin->color[1]);
10664          GLfloat eMaj_db = (GLfloat) (vMax->color[2] - vMin->color[2]);
10665          GLfloat eBot_db = (GLfloat) (vMid->color[2] - vMin->color[2]);
10666          GLfloat eMaj_da = (GLfloat) (vMax->color[3] - vMin->color[3]);
10667          GLfloat eBot_da = (GLfloat) (vMid->color[3] - vMin->color[3]);
10668          span.attrStepX[FRAG_ATTRIB_COL0][0] = oneOverArea * (eMaj_dr * eBot.dy - eMaj.dy * eBot_dr);
10669          span.attrStepY[FRAG_ATTRIB_COL0][0] = oneOverArea * (eMaj.dx * eBot_dr - eMaj_dr * eBot.dx);
10670          span.attrStepX[FRAG_ATTRIB_COL0][1] = oneOverArea * (eMaj_dg * eBot.dy - eMaj.dy * eBot_dg);
10671          span.attrStepY[FRAG_ATTRIB_COL0][1] = oneOverArea * (eMaj.dx * eBot_dg - eMaj_dg * eBot.dx);
10672          span.attrStepX[FRAG_ATTRIB_COL0][2] = oneOverArea * (eMaj_db * eBot.dy - eMaj.dy * eBot_db);
10673          span.attrStepY[FRAG_ATTRIB_COL0][2] = oneOverArea * (eMaj.dx * eBot_db - eMaj_db * eBot.dx);
10674          span.redStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) - 0.5F))));
10675          span.greenStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) - 0.5F))));
10676          span.blueStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) - 0.5F))));
10677          span.attrStepX[FRAG_ATTRIB_COL0][3] = oneOverArea * (eMaj_da * eBot.dy - eMaj.dy * eBot_da);
10678          span.attrStepY[FRAG_ATTRIB_COL0][3] = oneOverArea * (eMaj.dx * eBot_da - eMaj_da * eBot.dx);
10679          span.alphaStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) - 0.5F))));
10680       }
10681       else {
10682          ;
10683          span.interpMask |= 0x04;
10684          span.attrStepX[FRAG_ATTRIB_COL0][0] = span.attrStepY[FRAG_ATTRIB_COL0][0] = 0.0F;
10685          span.attrStepX[FRAG_ATTRIB_COL0][1] = span.attrStepY[FRAG_ATTRIB_COL0][1] = 0.0F;
10686          span.attrStepX[FRAG_ATTRIB_COL0][2] = span.attrStepY[FRAG_ATTRIB_COL0][2] = 0.0F;
10687   span.redStep = 0;
10688   span.greenStep = 0;
10689   span.blueStep = 0;
10690          span.attrStepX[FRAG_ATTRIB_COL0][3] = span.attrStepY[FRAG_ATTRIB_COL0][3] = 0.0F;
10691   span.alphaStep = 0;
10692       }
10693       {
10694          GLint subTriangle;
10695          GLfixed fxLeftEdge = 0, fxRightEdge = 0;
10696          GLfixed fdxLeftEdge = 0, fdxRightEdge = 0;
10697          GLfixed fError = 0, fdError = 0;
10698          GLuint zLeft = 0;
10699          GLfixed fdzOuter = 0, fdzInner;
10700          GLint rLeft = 0, fdrOuter = 0, fdrInner;
10701          GLint gLeft = 0, fdgOuter = 0, fdgInner;
10702          GLint bLeft = 0, fdbOuter = 0, fdbInner;
10703          GLint aLeft = 0, fdaOuter = 0, fdaInner;
10704          for (subTriangle=0; subTriangle<=1; subTriangle++) {
10705             EdgeT *eLeft, *eRight;
10706             int setupLeft, setupRight;
10707             int lines;
10708             if (subTriangle==0) {
10709                if (scan_from_left_to_right) {
10710                   eLeft = &eMaj;
10711                   eRight = &eBot;
10712                   lines = eRight->lines;
10713                   setupLeft = 1;
10714                   setupRight = 1;
10715                }
10716                else {
10717                   eLeft = &eBot;
10718                   eRight = &eMaj;
10719                   lines = eLeft->lines;
10720                   setupLeft = 1;
10721                   setupRight = 1;
10722                }
10723             }
10724             else {
10725                if (scan_from_left_to_right) {
10726                   eLeft = &eMaj;
10727                   eRight = &eTop;
10728                   lines = eRight->lines;
10729                   setupLeft = 0;
10730                   setupRight = 1;
10731                }
10732                else {
10733                   eLeft = &eTop;
10734                   eRight = &eMaj;
10735                   lines = eLeft->lines;
10736                   setupLeft = 1;
10737                   setupRight = 0;
10738                }
10739                if (lines == 0)
10740                   return;
10741             }
10742             if (setupLeft && eLeft->lines > 0) {
10743                const SWvertex *vLower = eLeft->v0;
10744                const GLfixed fsy = eLeft->fsy;
10745                const GLfixed fsx = eLeft->fsx;
10746                const GLfixed fx = (((fsx) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10747                const GLfixed adjx = (GLfixed) (fx - eLeft->fx0);
10748                const GLfixed adjy = (GLfixed) eLeft->adjy;
10749                GLint idxOuter;
10750                GLfloat dxOuter;
10751                GLfixed fdxOuter;
10752                fError = fx - fsx - (1 << 11);
10753                fxLeftEdge = fsx - 1;
10754                fdxLeftEdge = eLeft->fdxdy;
10755                fdxOuter = ((fdxLeftEdge - 1) & (~((1 << 11) - 1)));
10756                fdError = fdxOuter - fdxLeftEdge + (1 << 11);
10757                idxOuter = ((fdxOuter) >> 11);
10758                dxOuter = (GLfloat) idxOuter;
10759                span.y = ((fsy) >> 11);
10760                (void) dxOuter;
10761                (void) adjx;
10762                (void) adjy;
10763                (void) vLower;
10764                {
10765                   GLfloat z0 = vLower->attrib[FRAG_ATTRIB_WPOS][2];
10766                   if (depthBits <= 16) {
10767                      GLfloat tmp = (z0 * ((float) (1 << 11))
10768                                     + span.attrStepX[FRAG_ATTRIB_WPOS][2] * adjx
10769                                     + span.attrStepY[FRAG_ATTRIB_WPOS][2] * adjy) + (1 << (11 -1));
10770                      if (tmp < 0xffffffff / 2)
10771                         zLeft = (GLfixed) tmp;
10772                      else
10773                         zLeft = 0xffffffff / 2;
10774                      fdzOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))))
10775                                                                                                  ;
10776                   }
10777                   else {
10778                      zLeft = (GLuint) (z0 + span.attrStepX[FRAG_ATTRIB_WPOS][2] * ((adjx) * (1.0F / ((float) (1 << 11))))
10779                                           + span.attrStepY[FRAG_ATTRIB_WPOS][2] * ((adjy) * (1.0F / ((float) (1 << 11)))));
10780                      fdzOuter = (GLint) (span.attrStepY[FRAG_ATTRIB_WPOS][2] +
10781                                          dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]);
10782                   }
10783                }
10784                if (ctx->Light.ShadeModel == 0x1D01) {
10785                   rLeft = (GLint)(((vLower->color[0]) << 11)
10786                                   + span.attrStepX[FRAG_ATTRIB_COL0][0] * adjx
10787                                   + span.attrStepY[FRAG_ATTRIB_COL0][0] * adjy) + (1 << (11 -1));
10788                   gLeft = (GLint)(((vLower->color[1]) << 11)
10789                                   + span.attrStepX[FRAG_ATTRIB_COL0][1] * adjx
10790                                   + span.attrStepY[FRAG_ATTRIB_COL0][1] * adjy) + (1 << (11 -1));
10791                   bLeft = (GLint)(((vLower->color[2]) << 11)
10792                                   + span.attrStepX[FRAG_ATTRIB_COL0][2] * adjx
10793                                   + span.attrStepY[FRAG_ATTRIB_COL0][2] * adjy) + (1 << (11 -1));
10794                   fdrOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) - 0.5F))))
10795                                                                                                 ;
10796                   fdgOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) - 0.5F))))
10797                                                                                                 ;
10798                   fdbOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) - 0.5F))))
10799                                                                                                 ;
10800                   aLeft = (GLint)(((vLower->color[3]) << 11)
10801                                   + span.attrStepX[FRAG_ATTRIB_COL0][3] * adjx
10802                                   + span.attrStepY[FRAG_ATTRIB_COL0][3] * adjy) + (1 << (11 -1));
10803                   fdaOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) - 0.5F))))
10804                                                                                                 ;
10805                }
10806                else {
10807                   ;
10808                   rLeft = ((v2->color[0]) << 11);
10809                   gLeft = ((v2->color[1]) << 11);
10810                   bLeft = ((v2->color[2]) << 11);
10811                   fdrOuter = fdgOuter = fdbOuter = 0;
10812                   aLeft = ((v2->color[3]) << 11);
10813                   fdaOuter = 0;
10814                }
10815             }
10816             if (setupRight && eRight->lines>0) {
10817                fxRightEdge = eRight->fsx - 1;
10818                fdxRightEdge = eRight->fdxdy;
10819             }
10820             if (lines==0) {
10821                continue;
10822             }
10823             fdzInner = fdzOuter + span.zStep;
10824             fdrInner = fdrOuter + span.redStep;
10825             fdgInner = fdgOuter + span.greenStep;
10826             fdbInner = fdbOuter + span.blueStep;
10827             fdaInner = fdaOuter + span.alphaStep;
10828             while (lines > 0) {
10829                const GLint right = ((fxRightEdge) >> 11);
10830                span.x = ((fxLeftEdge) >> 11);
10831                if (right <= span.x)
10832                   span.end = 0;
10833                else
10834                   span.end = right - span.x;
10835                span.z = zLeft;
10836                span.red = rLeft;
10837                span.green = gLeft;
10838                span.blue = bLeft;
10839                span.alpha = aLeft;
10840                if (span.end > 0 && span.y >= 0) {
10841                   const GLint len = span.end - 1;
10842                   (void) len;
10843                   do { GLfixed endVal = span.red + (len) * span.redStep; if (endVal < 0) { span.red -= endVal; } if (span.red < 0) { span.red = 0; } } while (0);
10844                   do { GLfixed endVal = span.green + (len) * span.greenStep; if (endVal < 0) { span.green -= endVal; } if (span.green < 0) { span.green = 0; } } while (0);
10845                   do { GLfixed endVal = span.blue + (len) * span.blueStep; if (endVal < 0) { span.blue -= endVal; } if (span.blue < 0) { span.blue = 0; } } while (0);
10846                   do { GLfixed endVal = span.alpha + (len) * span.alphaStep; if (endVal < 0) { span.alpha -= endVal; } if (span.alpha < 0) { span.alpha = 0; } } while (0);
10847                   {
10848                      _swrast_write_rgba_span(ctx, &span);;
10849                   }
10850                }
10851                span.y++;
10852                lines--;
10853                fxLeftEdge += fdxLeftEdge;
10854                fxRightEdge += fdxRightEdge;
10855                fError += fdError;
10856                if (fError >= 0) {
10857                   fError -= (1 << 11);
10858                   zLeft += fdzOuter;
10859                   rLeft += fdrOuter;
10860                   gLeft += fdgOuter;
10861                   bLeft += fdbOuter;
10862                   aLeft += fdaOuter;
10863                }
10864                else {
10865                   zLeft += fdzInner;
10866                   rLeft += fdrInner;
10867                   gLeft += fdgInner;
10868                   bLeft += fdbInner;
10869                   aLeft += fdaInner;
10870                }
10871             }
10872          }
10873       }
10874    }
10875 }
10876 static void simple_textured_triangle(struct gl_context *ctx, const SWvertex *v0,
10877                                  const SWvertex *v1,
10878                                  const SWvertex *v2 )
10879 {
10880    typedef struct {
10881       const SWvertex *v0, *v1;
10882       GLfloat dx;
10883       GLfloat dy;
10884       GLfloat dxdy;
10885       GLfixed fdxdy;
10886       GLfloat adjy;
10887       GLfixed fsx;
10888       GLfixed fsy;
10889       GLfixed fx0;
10890       GLint lines;
10891    } EdgeT;
10892    const SWcontext *swrast = SWRAST_CONTEXT(ctx);
10893    EdgeT eMaj, eTop, eBot;
10894    GLfloat oneOverArea;
10895    const SWvertex *vMin, *vMid, *vMax;
10896    GLfloat bf = SWRAST_CONTEXT(ctx)->_BackfaceSign;
10897    const GLint snapMask = ~(((1 << 11) / (1 << 4)) - 1);
10898    GLfixed vMin_fx, vMin_fy, vMid_fx, vMid_fy, vMax_fx, vMax_fy;
10899    SWspan span;
10900    (void) swrast;
10901    do { (span).primitive = (0x0009); (span).interpMask = 0x0; (span).arrayMask = 0x0; (span).arrayAttribs = 0x0; (span).end = 0; (span).leftClip = 0; (span).facing = 0; (span).array = SWRAST_CONTEXT(ctx)->SpanArrays; } while (0);
10902    span.y = 0;
10903    {
10904       const GLfixed fy0 = (((int) ((((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10905       const GLfixed fy1 = (((int) ((((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10906       const GLfixed fy2 = (((int) ((((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10907       if (fy0 <= fy1) {
10908          if (fy1 <= fy2) {
10909             vMin = v0; vMid = v1; vMax = v2;
10910             vMin_fy = fy0; vMid_fy = fy1; vMax_fy = fy2;
10911          }
10912          else if (fy2 <= fy0) {
10913             vMin = v2; vMid = v0; vMax = v1;
10914             vMin_fy = fy2; vMid_fy = fy0; vMax_fy = fy1;
10915          }
10916          else {
10917             vMin = v0; vMid = v2; vMax = v1;
10918             vMin_fy = fy0; vMid_fy = fy2; vMax_fy = fy1;
10919             bf = -bf;
10920          }
10921       }
10922       else {
10923          if (fy0 <= fy2) {
10924             vMin = v1; vMid = v0; vMax = v2;
10925             vMin_fy = fy1; vMid_fy = fy0; vMax_fy = fy2;
10926             bf = -bf;
10927          }
10928          else if (fy2 <= fy1) {
10929             vMin = v2; vMid = v1; vMax = v0;
10930             vMin_fy = fy2; vMid_fy = fy1; vMax_fy = fy0;
10931             bf = -bf;
10932          }
10933          else {
10934             vMin = v1; vMid = v2; vMax = v0;
10935             vMin_fy = fy1; vMid_fy = fy2; vMax_fy = fy0;
10936          }
10937       }
10938       vMin_fx = (((int) ((((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10939       vMid_fx = (((int) ((((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10940       vMax_fx = (((int) ((((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
10941    }
10942    eMaj.v0 = vMin; eMaj.v1 = vMax;
10943    eTop.v0 = vMid; eTop.v1 = vMax;
10944    eBot.v0 = vMin; eBot.v1 = vMid;
10945    eMaj.dx = ((vMax_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
10946    eMaj.dy = ((vMax_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
10947    eTop.dx = ((vMax_fx - vMid_fx) * (1.0F / ((float) (1 << 11))));
10948    eTop.dy = ((vMax_fy - vMid_fy) * (1.0F / ((float) (1 << 11))));
10949    eBot.dx = ((vMid_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
10950    eBot.dy = ((vMid_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
10951    {
10952       const GLfloat area = eMaj.dx * eBot.dy - eBot.dx * eMaj.dy;
10953       if (IS_INF_OR_NAN(area) || area == 0.0F)
10954          return;
10955       if (area * bf * swrast->_BackfaceCullSign < 0.0)
10956          return;
10957       oneOverArea = 1.0F / area;
10958       span.facing = oneOverArea * bf > 0.0F;
10959    }
10960    {
10961       eMaj.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10962       eMaj.lines = (((((vMax_fy - eMaj.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
10963       if (eMaj.lines > 0) {
10964          eMaj.dxdy = eMaj.dx / eMaj.dy;
10965          eMaj.fdxdy = (((int) ((((eMaj.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eMaj.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eMaj.dxdy) * ((float) (1 << 11))) - 0.5F))));
10966          eMaj.adjy = (GLfloat) (eMaj.fsy - vMin_fy);
10967          eMaj.fx0 = vMin_fx;
10968          eMaj.fsx = eMaj.fx0 + (GLfixed) (eMaj.adjy * eMaj.dxdy);
10969       }
10970       else {
10971          return;
10972       }
10973       eTop.fsy = (((vMid_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10974       eTop.lines = (((((vMax_fy - eTop.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
10975       if (eTop.lines > 0) {
10976          eTop.dxdy = eTop.dx / eTop.dy;
10977          eTop.fdxdy = (((int) ((((eTop.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eTop.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eTop.dxdy) * ((float) (1 << 11))) - 0.5F))));
10978          eTop.adjy = (GLfloat) (eTop.fsy - vMid_fy);
10979          eTop.fx0 = vMid_fx;
10980          eTop.fsx = eTop.fx0 + (GLfixed) (eTop.adjy * eTop.dxdy);
10981       }
10982       eBot.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
10983       eBot.lines = (((((vMid_fy - eBot.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
10984       if (eBot.lines > 0) {
10985          eBot.dxdy = eBot.dx / eBot.dy;
10986          eBot.fdxdy = (((int) ((((eBot.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eBot.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eBot.dxdy) * ((float) (1 << 11))) - 0.5F))));
10987          eBot.adjy = (GLfloat) (eBot.fsy - vMin_fy);
10988          eBot.fx0 = vMin_fx;
10989          eBot.fsx = eBot.fx0 + (GLfixed) (eBot.adjy * eBot.dxdy);
10990       }
10991    }
10992    {
10993       GLint scan_from_left_to_right;
10994       struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0]; const struct gl_texture_object *obj = ctx->Texture.Unit[0].CurrentTex[TEXTURE_2D_INDEX]; const struct gl_texture_image *texImg = obj->Image[0][obj->BaseLevel]; const GLfloat twidth = (GLfloat) texImg->Width; const GLfloat theight = (GLfloat) texImg->Height; const GLint twidth_log2 = texImg->WidthLog2; const GLubyte *texture = (const GLubyte *) texImg->Data; const GLint smask = texImg->Width - 1; const GLint tmask = texImg->Height - 1; ; if (!rb || !texture) { return; }
10995       scan_from_left_to_right = (oneOverArea < 0.0F);
10996       {
10997          GLfloat eMaj_ds = (vMax->attrib[FRAG_ATTRIB_TEX0][0] - vMin->attrib[FRAG_ATTRIB_TEX0][0]) * twidth;
10998          GLfloat eBot_ds = (vMid->attrib[FRAG_ATTRIB_TEX0][0] - vMin->attrib[FRAG_ATTRIB_TEX0][0]) * twidth;
10999          GLfloat eMaj_dt = (vMax->attrib[FRAG_ATTRIB_TEX0][1] - vMin->attrib[FRAG_ATTRIB_TEX0][1]) * theight;
11000          GLfloat eBot_dt = (vMid->attrib[FRAG_ATTRIB_TEX0][1] - vMin->attrib[FRAG_ATTRIB_TEX0][1]) * theight;
11001          span.attrStepX[FRAG_ATTRIB_TEX0][0] = oneOverArea * (eMaj_ds * eBot.dy - eMaj.dy * eBot_ds);
11002          span.attrStepY[FRAG_ATTRIB_TEX0][0] = oneOverArea * (eMaj.dx * eBot_ds - eMaj_ds * eBot.dx);
11003          span.attrStepX[FRAG_ATTRIB_TEX0][1] = oneOverArea * (eMaj_dt * eBot.dy - eMaj.dy * eBot_dt);
11004          span.attrStepY[FRAG_ATTRIB_TEX0][1] = oneOverArea * (eMaj.dx * eBot_dt - eMaj_dt * eBot.dx);
11005          span.intTexStep[0] = (((int) ((((span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) - 0.5F))));
11006          span.intTexStep[1] = (((int) ((((span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) - 0.5F))));
11007       }
11008       {
11009          GLint subTriangle;
11010          GLfixed fxLeftEdge = 0, fxRightEdge = 0;
11011          GLfixed fdxLeftEdge = 0, fdxRightEdge = 0;
11012          GLfixed fError = 0, fdError = 0;
11013          GLfixed sLeft=0, dsOuter=0, dsInner;
11014          GLfixed tLeft=0, dtOuter=0, dtInner;
11015          for (subTriangle=0; subTriangle<=1; subTriangle++) {
11016             EdgeT *eLeft, *eRight;
11017             int setupLeft, setupRight;
11018             int lines;
11019             if (subTriangle==0) {
11020                if (scan_from_left_to_right) {
11021                   eLeft = &eMaj;
11022                   eRight = &eBot;
11023                   lines = eRight->lines;
11024                   setupLeft = 1;
11025                   setupRight = 1;
11026                }
11027                else {
11028                   eLeft = &eBot;
11029                   eRight = &eMaj;
11030                   lines = eLeft->lines;
11031                   setupLeft = 1;
11032                   setupRight = 1;
11033                }
11034             }
11035             else {
11036                if (scan_from_left_to_right) {
11037                   eLeft = &eMaj;
11038                   eRight = &eTop;
11039                   lines = eRight->lines;
11040                   setupLeft = 0;
11041                   setupRight = 1;
11042                }
11043                else {
11044                   eLeft = &eTop;
11045                   eRight = &eMaj;
11046                   lines = eLeft->lines;
11047                   setupLeft = 1;
11048                   setupRight = 0;
11049                }
11050                if (lines == 0)
11051                   return;
11052             }
11053             if (setupLeft && eLeft->lines > 0) {
11054                const SWvertex *vLower = eLeft->v0;
11055                const GLfixed fsy = eLeft->fsy;
11056                const GLfixed fsx = eLeft->fsx;
11057                const GLfixed fx = (((fsx) + (1 << 11) - 1) & (~((1 << 11) - 1)));
11058                const GLfixed adjx = (GLfixed) (fx - eLeft->fx0);
11059                const GLfixed adjy = (GLfixed) eLeft->adjy;
11060                GLint idxOuter;
11061                GLfloat dxOuter;
11062                GLfixed fdxOuter;
11063                fError = fx - fsx - (1 << 11);
11064                fxLeftEdge = fsx - 1;
11065                fdxLeftEdge = eLeft->fdxdy;
11066                fdxOuter = ((fdxLeftEdge - 1) & (~((1 << 11) - 1)));
11067                fdError = fdxOuter - fdxLeftEdge + (1 << 11);
11068                idxOuter = ((fdxOuter) >> 11);
11069                dxOuter = (GLfloat) idxOuter;
11070                span.y = ((fsy) >> 11);
11071                (void) dxOuter;
11072                (void) adjx;
11073                (void) adjy;
11074                (void) vLower;
11075                {
11076                   GLfloat s0, t0;
11077                   s0 = vLower->attrib[FRAG_ATTRIB_TEX0][0] * twidth;
11078                   sLeft = (GLfixed)(s0 * ((float) (1 << 11)) + span.attrStepX[FRAG_ATTRIB_TEX0][0] * adjx
11079                                  + span.attrStepY[FRAG_ATTRIB_TEX0][0] * adjy) + (1 << (11 -1));
11080                   dsOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_TEX0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_TEX0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_TEX0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) - 0.5F))))
11081                                                                                                ;
11082                   t0 = vLower->attrib[FRAG_ATTRIB_TEX0][1] * theight;
11083                   tLeft = (GLfixed)(t0 * ((float) (1 << 11)) + span.attrStepX[FRAG_ATTRIB_TEX0][1] * adjx
11084                                  + span.attrStepY[FRAG_ATTRIB_TEX0][1] * adjy) + (1 << (11 -1));
11085                   dtOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_TEX0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_TEX0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_TEX0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) - 0.5F))))
11086                                                                                                ;
11087                }
11088             }
11089             if (setupRight && eRight->lines>0) {
11090                fxRightEdge = eRight->fsx - 1;
11091                fdxRightEdge = eRight->fdxdy;
11092             }
11093             if (lines==0) {
11094                continue;
11095             }
11096             dsInner = dsOuter + span.intTexStep[0];
11097             dtInner = dtOuter + span.intTexStep[1];
11098             while (lines > 0) {
11099                const GLint right = ((fxRightEdge) >> 11);
11100                span.x = ((fxLeftEdge) >> 11);
11101                if (right <= span.x)
11102                   span.end = 0;
11103                else
11104                   span.end = right - span.x;
11105                span.intTex[0] = sLeft;
11106                span.intTex[1] = tLeft;
11107                if (span.end > 0 && span.y >= 0) {
11108                   const GLint len = span.end - 1;
11109                   (void) len;
11110                   {
11111                      GLuint i; GLubyte rgb[16384][3]; span.intTex[0] -= (1 << (11 -1)); span.intTex[1] -= (1 << (11 -1)); for (i = 0; i < span.end; i++) { GLint s = ((span.intTex[0]) >> 11) & smask; GLint t = ((span.intTex[1]) >> 11) & tmask; GLint pos = (t << twidth_log2) + s; pos = pos + pos + pos; rgb[i][0] = texture[pos+2]; rgb[i][1] = texture[pos+1]; rgb[i][2] = texture[pos+0]; span.intTex[0] += span.intTexStep[0]; span.intTex[1] += span.intTexStep[1]; } rb->PutRowRGB(ctx, rb, span.end, span.x, span.y, rgb, ((void *)0));;
11112                   }
11113                }
11114                span.y++;
11115                lines--;
11116                fxLeftEdge += fdxLeftEdge;
11117                fxRightEdge += fdxRightEdge;
11118                fError += fdError;
11119                if (fError >= 0) {
11120                   fError -= (1 << 11);
11121                   sLeft += dsOuter;
11122                   tLeft += dtOuter;
11123                }
11124                else {
11125                   sLeft += dsInner;
11126                   tLeft += dtInner;
11127                }
11128             }
11129          }
11130       }
11131    }
11132 }
11133 static void simple_z_textured_triangle(struct gl_context *ctx, const SWvertex *v0,
11134                                  const SWvertex *v1,
11135                                  const SWvertex *v2 )
11136 {
11137    typedef struct {
11138       const SWvertex *v0, *v1;
11139       GLfloat dx;
11140       GLfloat dy;
11141       GLfloat dxdy;
11142       GLfixed fdxdy;
11143       GLfloat adjy;
11144       GLfixed fsx;
11145       GLfixed fsy;
11146       GLfixed fx0;
11147       GLint lines;
11148    } EdgeT;
11149    const SWcontext *swrast = SWRAST_CONTEXT(ctx);
11150    const GLint depthBits = ctx->DrawBuffer->Visual.depthBits;
11151    const GLint fixedToDepthShift = depthBits <= 16 ? 11 : 0;
11152    const GLfloat maxDepth = ctx->DrawBuffer->_DepthMaxF;
11153    EdgeT eMaj, eTop, eBot;
11154    GLfloat oneOverArea;
11155    const SWvertex *vMin, *vMid, *vMax;
11156    GLfloat bf = SWRAST_CONTEXT(ctx)->_BackfaceSign;
11157    const GLint snapMask = ~(((1 << 11) / (1 << 4)) - 1);
11158    GLfixed vMin_fx, vMin_fy, vMid_fx, vMid_fy, vMax_fx, vMax_fy;
11159    SWspan span;
11160    (void) swrast;
11161    do { (span).primitive = (0x0009); (span).interpMask = 0x0; (span).arrayMask = 0x0; (span).arrayAttribs = 0x0; (span).end = 0; (span).leftClip = 0; (span).facing = 0; (span).array = SWRAST_CONTEXT(ctx)->SpanArrays; } while (0);
11162    span.y = 0;
11163    (void) fixedToDepthShift;
11164    {
11165       const GLfixed fy0 = (((int) ((((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11166       const GLfixed fy1 = (((int) ((((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11167       const GLfixed fy2 = (((int) ((((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11168       if (fy0 <= fy1) {
11169          if (fy1 <= fy2) {
11170             vMin = v0; vMid = v1; vMax = v2;
11171             vMin_fy = fy0; vMid_fy = fy1; vMax_fy = fy2;
11172          }
11173          else if (fy2 <= fy0) {
11174             vMin = v2; vMid = v0; vMax = v1;
11175             vMin_fy = fy2; vMid_fy = fy0; vMax_fy = fy1;
11176          }
11177          else {
11178             vMin = v0; vMid = v2; vMax = v1;
11179             vMin_fy = fy0; vMid_fy = fy2; vMax_fy = fy1;
11180             bf = -bf;
11181          }
11182       }
11183       else {
11184          if (fy0 <= fy2) {
11185             vMin = v1; vMid = v0; vMax = v2;
11186             vMin_fy = fy1; vMid_fy = fy0; vMax_fy = fy2;
11187             bf = -bf;
11188          }
11189          else if (fy2 <= fy1) {
11190             vMin = v2; vMid = v1; vMax = v0;
11191             vMin_fy = fy2; vMid_fy = fy1; vMax_fy = fy0;
11192             bf = -bf;
11193          }
11194          else {
11195             vMin = v1; vMid = v2; vMax = v0;
11196             vMin_fy = fy1; vMid_fy = fy2; vMax_fy = fy0;
11197          }
11198       }
11199       vMin_fx = (((int) ((((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11200       vMid_fx = (((int) ((((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11201       vMax_fx = (((int) ((((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11202    }
11203    eMaj.v0 = vMin; eMaj.v1 = vMax;
11204    eTop.v0 = vMid; eTop.v1 = vMax;
11205    eBot.v0 = vMin; eBot.v1 = vMid;
11206    eMaj.dx = ((vMax_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
11207    eMaj.dy = ((vMax_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
11208    eTop.dx = ((vMax_fx - vMid_fx) * (1.0F / ((float) (1 << 11))));
11209    eTop.dy = ((vMax_fy - vMid_fy) * (1.0F / ((float) (1 << 11))));
11210    eBot.dx = ((vMid_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
11211    eBot.dy = ((vMid_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
11212    {
11213       const GLfloat area = eMaj.dx * eBot.dy - eBot.dx * eMaj.dy;
11214       if (IS_INF_OR_NAN(area) || area == 0.0F)
11215          return;
11216       if (area * bf * swrast->_BackfaceCullSign < 0.0)
11217          return;
11218       oneOverArea = 1.0F / area;
11219       span.facing = oneOverArea * bf > 0.0F;
11220    }
11221    {
11222       eMaj.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
11223       eMaj.lines = (((((vMax_fy - eMaj.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
11224       if (eMaj.lines > 0) {
11225          eMaj.dxdy = eMaj.dx / eMaj.dy;
11226          eMaj.fdxdy = (((int) ((((eMaj.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eMaj.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eMaj.dxdy) * ((float) (1 << 11))) - 0.5F))));
11227          eMaj.adjy = (GLfloat) (eMaj.fsy - vMin_fy);
11228          eMaj.fx0 = vMin_fx;
11229          eMaj.fsx = eMaj.fx0 + (GLfixed) (eMaj.adjy * eMaj.dxdy);
11230       }
11231       else {
11232          return;
11233       }
11234       eTop.fsy = (((vMid_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
11235       eTop.lines = (((((vMax_fy - eTop.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
11236       if (eTop.lines > 0) {
11237          eTop.dxdy = eTop.dx / eTop.dy;
11238          eTop.fdxdy = (((int) ((((eTop.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eTop.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eTop.dxdy) * ((float) (1 << 11))) - 0.5F))));
11239          eTop.adjy = (GLfloat) (eTop.fsy - vMid_fy);
11240          eTop.fx0 = vMid_fx;
11241          eTop.fsx = eTop.fx0 + (GLfixed) (eTop.adjy * eTop.dxdy);
11242       }
11243       eBot.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
11244       eBot.lines = (((((vMid_fy - eBot.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
11245       if (eBot.lines > 0) {
11246          eBot.dxdy = eBot.dx / eBot.dy;
11247          eBot.fdxdy = (((int) ((((eBot.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eBot.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eBot.dxdy) * ((float) (1 << 11))) - 0.5F))));
11248          eBot.adjy = (GLfloat) (eBot.fsy - vMin_fy);
11249          eBot.fx0 = vMin_fx;
11250          eBot.fsx = eBot.fx0 + (GLfixed) (eBot.adjy * eBot.dxdy);
11251       }
11252    }
11253    {
11254       GLint scan_from_left_to_right;
11255       struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0]; const struct gl_texture_object *obj = ctx->Texture.Unit[0].CurrentTex[TEXTURE_2D_INDEX]; const struct gl_texture_image *texImg = obj->Image[0][obj->BaseLevel]; const GLfloat twidth = (GLfloat) texImg->Width; const GLfloat theight = (GLfloat) texImg->Height; const GLint twidth_log2 = texImg->WidthLog2; const GLubyte *texture = (const GLubyte *) texImg->Data; const GLint smask = texImg->Width - 1; const GLint tmask = texImg->Height - 1; ; if (!rb || !texture) { return; }
11256       scan_from_left_to_right = (oneOverArea < 0.0F);
11257       span.interpMask |= 0x02;
11258       {
11259          GLfloat eMaj_dz = vMax->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
11260          GLfloat eBot_dz = vMid->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
11261          span.attrStepX[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj_dz * eBot.dy - eMaj.dy * eBot_dz);
11262          if (span.attrStepX[FRAG_ATTRIB_WPOS][2] > maxDepth ||
11263              span.attrStepX[FRAG_ATTRIB_WPOS][2] < -maxDepth) {
11264             span.attrStepX[FRAG_ATTRIB_WPOS][2] = 0.0;
11265             span.attrStepY[FRAG_ATTRIB_WPOS][2] = 0.0;
11266          }
11267          else {
11268             span.attrStepY[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj.dx * eBot_dz - eMaj_dz * eBot.dx);
11269          }
11270          if (depthBits <= 16)
11271             span.zStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))));
11272          else
11273             span.zStep = (GLint) span.attrStepX[FRAG_ATTRIB_WPOS][2];
11274       }
11275       {
11276          GLfloat eMaj_ds = (vMax->attrib[FRAG_ATTRIB_TEX0][0] - vMin->attrib[FRAG_ATTRIB_TEX0][0]) * twidth;
11277          GLfloat eBot_ds = (vMid->attrib[FRAG_ATTRIB_TEX0][0] - vMin->attrib[FRAG_ATTRIB_TEX0][0]) * twidth;
11278          GLfloat eMaj_dt = (vMax->attrib[FRAG_ATTRIB_TEX0][1] - vMin->attrib[FRAG_ATTRIB_TEX0][1]) * theight;
11279          GLfloat eBot_dt = (vMid->attrib[FRAG_ATTRIB_TEX0][1] - vMin->attrib[FRAG_ATTRIB_TEX0][1]) * theight;
11280          span.attrStepX[FRAG_ATTRIB_TEX0][0] = oneOverArea * (eMaj_ds * eBot.dy - eMaj.dy * eBot_ds);
11281          span.attrStepY[FRAG_ATTRIB_TEX0][0] = oneOverArea * (eMaj.dx * eBot_ds - eMaj_ds * eBot.dx);
11282          span.attrStepX[FRAG_ATTRIB_TEX0][1] = oneOverArea * (eMaj_dt * eBot.dy - eMaj.dy * eBot_dt);
11283          span.attrStepY[FRAG_ATTRIB_TEX0][1] = oneOverArea * (eMaj.dx * eBot_dt - eMaj_dt * eBot.dx);
11284          span.intTexStep[0] = (((int) ((((span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) - 0.5F))));
11285          span.intTexStep[1] = (((int) ((((span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) - 0.5F))));
11286       }
11287       {
11288          GLint subTriangle;
11289          GLfixed fxLeftEdge = 0, fxRightEdge = 0;
11290          GLfixed fdxLeftEdge = 0, fdxRightEdge = 0;
11291          GLfixed fError = 0, fdError = 0;
11292          struct gl_renderbuffer *zrb
11293             = ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer;
11294          GLushort *zRow = ((void *)0);
11295          GLint dZRowOuter = 0, dZRowInner;
11296          GLuint zLeft = 0;
11297          GLfixed fdzOuter = 0, fdzInner;
11298          GLfixed sLeft=0, dsOuter=0, dsInner;
11299          GLfixed tLeft=0, dtOuter=0, dtInner;
11300          for (subTriangle=0; subTriangle<=1; subTriangle++) {
11301             EdgeT *eLeft, *eRight;
11302             int setupLeft, setupRight;
11303             int lines;
11304             if (subTriangle==0) {
11305                if (scan_from_left_to_right) {
11306                   eLeft = &eMaj;
11307                   eRight = &eBot;
11308                   lines = eRight->lines;
11309                   setupLeft = 1;
11310                   setupRight = 1;
11311                }
11312                else {
11313                   eLeft = &eBot;
11314                   eRight = &eMaj;
11315                   lines = eLeft->lines;
11316                   setupLeft = 1;
11317                   setupRight = 1;
11318                }
11319             }
11320             else {
11321                if (scan_from_left_to_right) {
11322                   eLeft = &eMaj;
11323                   eRight = &eTop;
11324                   lines = eRight->lines;
11325                   setupLeft = 0;
11326                   setupRight = 1;
11327                }
11328                else {
11329                   eLeft = &eTop;
11330                   eRight = &eMaj;
11331                   lines = eLeft->lines;
11332                   setupLeft = 1;
11333                   setupRight = 0;
11334                }
11335                if (lines == 0)
11336                   return;
11337             }
11338             if (setupLeft && eLeft->lines > 0) {
11339                const SWvertex *vLower = eLeft->v0;
11340                const GLfixed fsy = eLeft->fsy;
11341                const GLfixed fsx = eLeft->fsx;
11342                const GLfixed fx = (((fsx) + (1 << 11) - 1) & (~((1 << 11) - 1)));
11343                const GLfixed adjx = (GLfixed) (fx - eLeft->fx0);
11344                const GLfixed adjy = (GLfixed) eLeft->adjy;
11345                GLint idxOuter;
11346                GLfloat dxOuter;
11347                GLfixed fdxOuter;
11348                fError = fx - fsx - (1 << 11);
11349                fxLeftEdge = fsx - 1;
11350                fdxLeftEdge = eLeft->fdxdy;
11351                fdxOuter = ((fdxLeftEdge - 1) & (~((1 << 11) - 1)));
11352                fdError = fdxOuter - fdxLeftEdge + (1 << 11);
11353                idxOuter = ((fdxOuter) >> 11);
11354                dxOuter = (GLfloat) idxOuter;
11355                span.y = ((fsy) >> 11);
11356                (void) dxOuter;
11357                (void) adjx;
11358                (void) adjy;
11359                (void) vLower;
11360                {
11361                   GLfloat z0 = vLower->attrib[FRAG_ATTRIB_WPOS][2];
11362                   if (depthBits <= 16) {
11363                      GLfloat tmp = (z0 * ((float) (1 << 11))
11364                                     + span.attrStepX[FRAG_ATTRIB_WPOS][2] * adjx
11365                                     + span.attrStepY[FRAG_ATTRIB_WPOS][2] * adjy) + (1 << (11 -1));
11366                      if (tmp < 0xffffffff / 2)
11367                         zLeft = (GLfixed) tmp;
11368                      else
11369                         zLeft = 0xffffffff / 2;
11370                      fdzOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))))
11371                                                                                                  ;
11372                   }
11373                   else {
11374                      zLeft = (GLuint) (z0 + span.attrStepX[FRAG_ATTRIB_WPOS][2] * ((adjx) * (1.0F / ((float) (1 << 11))))
11375                                           + span.attrStepY[FRAG_ATTRIB_WPOS][2] * ((adjy) * (1.0F / ((float) (1 << 11)))));
11376                      fdzOuter = (GLint) (span.attrStepY[FRAG_ATTRIB_WPOS][2] +
11377                                          dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]);
11378                   }
11379                   zRow = (GLushort *)
11380                     zrb->GetPointer(ctx, zrb, ((fxLeftEdge) >> 11), span.y);
11381                   dZRowOuter = (ctx->DrawBuffer->Width + idxOuter) * sizeof(GLushort);
11382                }
11383                {
11384                   GLfloat s0, t0;
11385                   s0 = vLower->attrib[FRAG_ATTRIB_TEX0][0] * twidth;
11386                   sLeft = (GLfixed)(s0 * ((float) (1 << 11)) + span.attrStepX[FRAG_ATTRIB_TEX0][0] * adjx
11387                                  + span.attrStepY[FRAG_ATTRIB_TEX0][0] * adjy) + (1 << (11 -1));
11388                   dsOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_TEX0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_TEX0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_TEX0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) - 0.5F))))
11389                                                                                                ;
11390                   t0 = vLower->attrib[FRAG_ATTRIB_TEX0][1] * theight;
11391                   tLeft = (GLfixed)(t0 * ((float) (1 << 11)) + span.attrStepX[FRAG_ATTRIB_TEX0][1] * adjx
11392                                  + span.attrStepY[FRAG_ATTRIB_TEX0][1] * adjy) + (1 << (11 -1));
11393                   dtOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_TEX0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_TEX0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_TEX0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) - 0.5F))))
11394                                                                                                ;
11395                }
11396             }
11397             if (setupRight && eRight->lines>0) {
11398                fxRightEdge = eRight->fsx - 1;
11399                fdxRightEdge = eRight->fdxdy;
11400             }
11401             if (lines==0) {
11402                continue;
11403             }
11404             dZRowInner = dZRowOuter + sizeof(GLushort);
11405             fdzInner = fdzOuter + span.zStep;
11406             dsInner = dsOuter + span.intTexStep[0];
11407             dtInner = dtOuter + span.intTexStep[1];
11408             while (lines > 0) {
11409                const GLint right = ((fxRightEdge) >> 11);
11410                span.x = ((fxLeftEdge) >> 11);
11411                if (right <= span.x)
11412                   span.end = 0;
11413                else
11414                   span.end = right - span.x;
11415                span.z = zLeft;
11416                span.intTex[0] = sLeft;
11417                span.intTex[1] = tLeft;
11418                if (span.end > 0 && span.y >= 0) {
11419                   const GLint len = span.end - 1;
11420                   (void) len;
11421                   {
11422                      GLuint i; GLubyte rgb[16384][3]; span.intTex[0] -= (1 << (11 -1)); span.intTex[1] -= (1 << (11 -1)); for (i = 0; i < span.end; i++) { const GLuint z = ((span.z) >> fixedToDepthShift); if (z < zRow[i]) { GLint s = ((span.intTex[0]) >> 11) & smask; GLint t = ((span.intTex[1]) >> 11) & tmask; GLint pos = (t << twidth_log2) + s; pos = pos + pos + pos; rgb[i][0] = texture[pos+2]; rgb[i][1] = texture[pos+1]; rgb[i][2] = texture[pos+0]; zRow[i] = z; span.array->mask[i] = 1; } else { span.array->mask[i] = 0; } span.intTex[0] += span.intTexStep[0]; span.intTex[1] += span.intTexStep[1]; span.z += span.zStep; } rb->PutRowRGB(ctx, rb, span.end, span.x, span.y, rgb, span.array->mask);;
11423                   }
11424                }
11425                span.y++;
11426                lines--;
11427                fxLeftEdge += fdxLeftEdge;
11428                fxRightEdge += fdxRightEdge;
11429                fError += fdError;
11430                if (fError >= 0) {
11431                   fError -= (1 << 11);
11432                   zRow = (GLushort *) ((GLubyte *) zRow + dZRowOuter);
11433                   zLeft += fdzOuter;
11434                   sLeft += dsOuter;
11435                   tLeft += dtOuter;
11436                }
11437                else {
11438                   zRow = (GLushort *) ((GLubyte *) zRow + dZRowInner);
11439                   zLeft += fdzInner;
11440                   sLeft += dsInner;
11441                   tLeft += dtInner;
11442                }
11443             }
11444          }
11445       }
11446    }
11447 }
11448 struct affine_info
11449 {
11450    GLenum filter;
11451    GLenum format;
11452    GLenum envmode;
11453    GLint smask, tmask;
11454    GLint twidth_log2;
11455    const GLchan *texture;
11456    GLfixed er, eg, eb, ea;
11457    GLint tbytesline, tsize;
11458 };
11459 static __inline__ GLint
11460 ilerp(GLint t, GLint a, GLint b)
11461 {
11462    return a + ((t * (b - a)) >> 11);
11463 }
11464 static __inline__ GLint
11465 ilerp_2d(GLint ia, GLint ib, GLint v00, GLint v10, GLint v01, GLint v11)
11466 {
11467    const GLint temp0 = ilerp(ia, v00, v10);
11468    const GLint temp1 = ilerp(ia, v01, v11);
11469    return ilerp(ib, temp0, temp1);
11470 }
11471 static __inline__ void
11472 affine_span(struct gl_context *ctx, SWspan *span,
11473             struct affine_info *info)
11474 {
11475    GLchan sample[4];
11476    const GLuint texEnableSave = ctx->Texture._EnabledCoordUnits;
11477    GLuint i;
11478    GLchan *dest = span->array->rgba[0];
11479    ctx->Texture._EnabledCoordUnits = 0x0;
11480    span->intTex[0] -= (1 << (11 -1));
11481    span->intTex[1] -= (1 << (11 -1));
11482    switch (info->filter) {
11483    case 0x2600:
11484       switch (info->format) {
11485       case MESA_FORMAT_RGB888:
11486          switch (info->envmode) {
11487          case 0x2100:
11488             for (i = 0; i < span->end; i++) { GLint s = ((span->intTex[0]) >> 11) & info->smask; GLint t = ((span->intTex[1]) >> 11) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; sample[0] = tex00[2]; sample[1] = tex00[1]; sample[2] = tex00[0]; sample[3] = 255;;dest[0] = span->red * (sample[0] + 1u) >> (11 + 8); dest[1] = span->green * (sample[1] + 1u) >> (11 + 8); dest[2] = span->blue * (sample[2] + 1u) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1u) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11489             break;
11490          case 0x2101:
11491          case 0x1E01:
11492             for (i = 0; i < span->end; i++) { GLint s = ((span->intTex[0]) >> 11) & info->smask; GLint t = ((span->intTex[1]) >> 11) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; sample[0] = tex00[2]; sample[1] = tex00[1]; sample[2] = tex00[0]; sample[3] = 255;; dest[0] = sample[0]; dest[1] = sample[1]; dest[2] = sample[2]; dest[3] = ((span->alpha) >> 11);; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11493             break;
11494          case 0x0BE2:
11495             for (i = 0; i < span->end; i++) { GLint s = ((span->intTex[0]) >> 11) & info->smask; GLint t = ((span->intTex[1]) >> 11) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; sample[0] = tex00[2]; sample[1] = tex00[1]; sample[2] = tex00[0]; sample[3] = 255;;dest[0] = ((255 - sample[0]) * span->red + (sample[0] + 1) * info->er) >> (11 + 8); dest[1] = ((255 - sample[1]) * span->green + (sample[1] + 1) * info->eg) >> (11 + 8); dest[2] = ((255 - sample[2]) * span->blue + (sample[2] + 1) * info->eb) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11496             break;
11497          case 0x0104:
11498             for (i = 0; i < span->end; i++) { GLint s = ((span->intTex[0]) >> 11) & info->smask; GLint t = ((span->intTex[1]) >> 11) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; sample[0] = tex00[2]; sample[1] = tex00[1]; sample[2] = tex00[0]; sample[3] = 255;;{ GLint rSum = ((span->red) >> 11) + (GLint) sample[0]; GLint gSum = ((span->green) >> 11) + (GLint) sample[1]; GLint bSum = ((span->blue) >> 11) + (GLint) sample[2]; dest[0] = ( (rSum)<(255) ? (rSum) : (255) ); dest[1] = ( (gSum)<(255) ? (gSum) : (255) ); dest[2] = ( (bSum)<(255) ? (bSum) : (255) ); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); }; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11499             break;
11500          default:
11501             _mesa_problem(ctx, "bad tex env mode in SPAN_LINEAR");
11502             return;
11503          }
11504          break;
11505       case MESA_FORMAT_RGBA8888:
11506          switch(info->envmode) {
11507          case 0x2100:
11508             for (i = 0; i < span->end; i++) { GLint s = ((span->intTex[0]) >> 11) & info->smask; GLint t = ((span->intTex[1]) >> 11) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; sample[0] = tex00[3]; sample[1] = tex00[2]; sample[2] = tex00[1]; sample[3] = tex00[0];;dest[0] = span->red * (sample[0] + 1u) >> (11 + 8); dest[1] = span->green * (sample[1] + 1u) >> (11 + 8); dest[2] = span->blue * (sample[2] + 1u) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1u) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11509             break;
11510          case 0x2101:
11511             for (i = 0; i < span->end; i++) { GLint s = ((span->intTex[0]) >> 11) & info->smask; GLint t = ((span->intTex[1]) >> 11) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; sample[0] = tex00[3]; sample[1] = tex00[2]; sample[2] = tex00[1]; sample[3] = tex00[0];;dest[0] = ((255 - sample[3]) * span->red + ((sample[3] + 1) * sample[0] << 11)) >> (11 + 8); dest[1] = ((255 - sample[3]) * span->green + ((sample[3] + 1) * sample[1] << 11)) >> (11 + 8); dest[2] = ((255 - sample[3]) * span->blue + ((sample[3] + 1) * sample[2] << 11)) >> (11 + 8); dest[3] = ((span->alpha) >> 11); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11512             break;
11513          case 0x0BE2:
11514             for (i = 0; i < span->end; i++) { GLint s = ((span->intTex[0]) >> 11) & info->smask; GLint t = ((span->intTex[1]) >> 11) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; sample[0] = tex00[3]; sample[1] = tex00[2]; sample[2] = tex00[1]; sample[3] = tex00[0];;dest[0] = ((255 - sample[0]) * span->red + (sample[0] + 1) * info->er) >> (11 + 8); dest[1] = ((255 - sample[1]) * span->green + (sample[1] + 1) * info->eg) >> (11 + 8); dest[2] = ((255 - sample[2]) * span->blue + (sample[2] + 1) * info->eb) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11515             break;
11516          case 0x0104:
11517             for (i = 0; i < span->end; i++) { GLint s = ((span->intTex[0]) >> 11) & info->smask; GLint t = ((span->intTex[1]) >> 11) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; sample[0] = tex00[3]; sample[1] = tex00[2]; sample[2] = tex00[1]; sample[3] = tex00[0];;{ GLint rSum = ((span->red) >> 11) + (GLint) sample[0]; GLint gSum = ((span->green) >> 11) + (GLint) sample[1]; GLint bSum = ((span->blue) >> 11) + (GLint) sample[2]; dest[0] = ( (rSum)<(255) ? (rSum) : (255) ); dest[1] = ( (gSum)<(255) ? (gSum) : (255) ); dest[2] = ( (bSum)<(255) ? (bSum) : (255) ); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); }; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11518             break;
11519          case 0x1E01:
11520             for (i = 0; i < span->end; i++) { GLint s = ((span->intTex[0]) >> 11) & info->smask; GLint t = ((span->intTex[1]) >> 11) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; dest[0] = tex00[3]; dest[1] = tex00[2]; dest[2] = tex00[1]; dest[3] = tex00[0]; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11521             break;
11522          default:
11523             _mesa_problem(ctx, "bad tex env mode (2) in SPAN_LINEAR");
11524             return;
11525          }
11526          break;
11527       }
11528       break;
11529    case 0x2601:
11530       span->intTex[0] -= (1 << (11 -1));
11531       span->intTex[1] -= (1 << (11 -1));
11532       switch (info->format) {
11533       case MESA_FORMAT_RGB888:
11534          switch (info->envmode) {
11535          case 0x2100:
11536             for (i = 0; i < span->end; i++) { const GLint s = ((span->intTex[0]) >> 11) & info->smask; const GLint t = ((span->intTex[1]) >> 11) & info->tmask; const GLfixed sf = span->intTex[0] & ((1 << 11) - 1); const GLfixed tf = span->intTex[1] & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 3; const GLchan *tex11 = tex10 + 3; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[1] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[2] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]); sample[3] = 255;;dest[0] = span->red * (sample[0] + 1u) >> (11 + 8); dest[1] = span->green * (sample[1] + 1u) >> (11 + 8); dest[2] = span->blue * (sample[2] + 1u) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1u) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11537             break;
11538          case 0x2101:
11539          case 0x1E01:
11540             for (i = 0; i < span->end; i++) { const GLint s = ((span->intTex[0]) >> 11) & info->smask; const GLint t = ((span->intTex[1]) >> 11) & info->tmask; const GLfixed sf = span->intTex[0] & ((1 << 11) - 1); const GLfixed tf = span->intTex[1] & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 3; const GLchan *tex11 = tex10 + 3; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[1] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[2] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]); sample[3] = 255;;do { (dest)[0] = (sample)[0]; (dest)[1] = (sample)[1]; (dest)[2] = (sample)[2]; (dest)[3] = (sample)[3]; } while (0); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11541             break;
11542          case 0x0BE2:
11543             for (i = 0; i < span->end; i++) { const GLint s = ((span->intTex[0]) >> 11) & info->smask; const GLint t = ((span->intTex[1]) >> 11) & info->tmask; const GLfixed sf = span->intTex[0] & ((1 << 11) - 1); const GLfixed tf = span->intTex[1] & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 3; const GLchan *tex11 = tex10 + 3; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[1] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[2] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]); sample[3] = 255;;dest[0] = ((255 - sample[0]) * span->red + (sample[0] + 1) * info->er) >> (11 + 8); dest[1] = ((255 - sample[1]) * span->green + (sample[1] + 1) * info->eg) >> (11 + 8); dest[2] = ((255 - sample[2]) * span->blue + (sample[2] + 1) * info->eb) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11544             break;
11545          case 0x0104:
11546             for (i = 0; i < span->end; i++) { const GLint s = ((span->intTex[0]) >> 11) & info->smask; const GLint t = ((span->intTex[1]) >> 11) & info->tmask; const GLfixed sf = span->intTex[0] & ((1 << 11) - 1); const GLfixed tf = span->intTex[1] & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 3; const GLchan *tex11 = tex10 + 3; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[1] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[2] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]); sample[3] = 255;;{ GLint rSum = ((span->red) >> 11) + (GLint) sample[0]; GLint gSum = ((span->green) >> 11) + (GLint) sample[1]; GLint bSum = ((span->blue) >> 11) + (GLint) sample[2]; dest[0] = ( (rSum)<(255) ? (rSum) : (255) ); dest[1] = ( (gSum)<(255) ? (gSum) : (255) ); dest[2] = ( (bSum)<(255) ? (bSum) : (255) ); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); }; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11547             break;
11548          default:
11549             _mesa_problem(ctx, "bad tex env mode (3) in SPAN_LINEAR");
11550             return;
11551          }
11552          break;
11553       case MESA_FORMAT_RGBA8888:
11554          switch (info->envmode) {
11555          case 0x2100:
11556             for (i = 0; i < span->end; i++) { const GLint s = ((span->intTex[0]) >> 11) & info->smask; const GLint t = ((span->intTex[1]) >> 11) & info->tmask; const GLfixed sf = span->intTex[0] & ((1 << 11) - 1); const GLfixed tf = span->intTex[1] & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 4; const GLchan *tex11 = tex10 + 4; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[3], tex01[3], tex10[3], tex11[3]); sample[1] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[2] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[3] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]);dest[0] = span->red * (sample[0] + 1u) >> (11 + 8); dest[1] = span->green * (sample[1] + 1u) >> (11 + 8); dest[2] = span->blue * (sample[2] + 1u) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1u) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11557             break;
11558          case 0x2101:
11559             for (i = 0; i < span->end; i++) { const GLint s = ((span->intTex[0]) >> 11) & info->smask; const GLint t = ((span->intTex[1]) >> 11) & info->tmask; const GLfixed sf = span->intTex[0] & ((1 << 11) - 1); const GLfixed tf = span->intTex[1] & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 4; const GLchan *tex11 = tex10 + 4; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[3], tex01[3], tex10[3], tex11[3]); sample[1] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[2] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[3] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]);dest[0] = ((255 - sample[3]) * span->red + ((sample[3] + 1) * sample[0] << 11)) >> (11 + 8); dest[1] = ((255 - sample[3]) * span->green + ((sample[3] + 1) * sample[1] << 11)) >> (11 + 8); dest[2] = ((255 - sample[3]) * span->blue + ((sample[3] + 1) * sample[2] << 11)) >> (11 + 8); dest[3] = ((span->alpha) >> 11); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11560             break;
11561          case 0x0BE2:
11562             for (i = 0; i < span->end; i++) { const GLint s = ((span->intTex[0]) >> 11) & info->smask; const GLint t = ((span->intTex[1]) >> 11) & info->tmask; const GLfixed sf = span->intTex[0] & ((1 << 11) - 1); const GLfixed tf = span->intTex[1] & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 4; const GLchan *tex11 = tex10 + 4; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[3], tex01[3], tex10[3], tex11[3]); sample[1] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[2] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[3] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]);dest[0] = ((255 - sample[0]) * span->red + (sample[0] + 1) * info->er) >> (11 + 8); dest[1] = ((255 - sample[1]) * span->green + (sample[1] + 1) * info->eg) >> (11 + 8); dest[2] = ((255 - sample[2]) * span->blue + (sample[2] + 1) * info->eb) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11563             break;
11564          case 0x0104:
11565             for (i = 0; i < span->end; i++) { const GLint s = ((span->intTex[0]) >> 11) & info->smask; const GLint t = ((span->intTex[1]) >> 11) & info->tmask; const GLfixed sf = span->intTex[0] & ((1 << 11) - 1); const GLfixed tf = span->intTex[1] & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 4; const GLchan *tex11 = tex10 + 4; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[3], tex01[3], tex10[3], tex11[3]); sample[1] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[2] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[3] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]);{ GLint rSum = ((span->red) >> 11) + (GLint) sample[0]; GLint gSum = ((span->green) >> 11) + (GLint) sample[1]; GLint bSum = ((span->blue) >> 11) + (GLint) sample[2]; dest[0] = ( (rSum)<(255) ? (rSum) : (255) ); dest[1] = ( (gSum)<(255) ? (gSum) : (255) ); dest[2] = ( (bSum)<(255) ? (bSum) : (255) ); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); }; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11566             break;
11567          case 0x1E01:
11568             for (i = 0; i < span->end; i++) { const GLint s = ((span->intTex[0]) >> 11) & info->smask; const GLint t = ((span->intTex[1]) >> 11) & info->tmask; const GLfixed sf = span->intTex[0] & ((1 << 11) - 1); const GLfixed tf = span->intTex[1] & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 4; const GLchan *tex11 = tex10 + 4; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[3], tex01[3], tex10[3], tex11[3]); sample[1] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[2] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[3] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]);do { (dest)[0] = (sample)[0]; (dest)[1] = (sample)[1]; (dest)[2] = (sample)[2]; (dest)[3] = (sample)[3]; } while (0); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; span->intTex[0] += span->intTexStep[0]; span->intTex[1] += span->intTexStep[1]; dest += 4; };
11569             break;
11570          default:
11571             _mesa_problem(ctx, "bad tex env mode (4) in SPAN_LINEAR");
11572             return;
11573          }
11574          break;
11575       }
11576       break;
11577    }
11578    span->interpMask &= ~0x01;
11579    ;
11580    _swrast_write_rgba_span(ctx, span);
11581    ctx->Texture._EnabledCoordUnits = texEnableSave;
11582 }
11583 static void affine_textured_triangle(struct gl_context *ctx, const SWvertex *v0,
11584                                  const SWvertex *v1,
11585                                  const SWvertex *v2 )
11586 {
11587    typedef struct {
11588       const SWvertex *v0, *v1;
11589       GLfloat dx;
11590       GLfloat dy;
11591       GLfloat dxdy;
11592       GLfixed fdxdy;
11593       GLfloat adjy;
11594       GLfixed fsx;
11595       GLfixed fsy;
11596       GLfixed fx0;
11597       GLint lines;
11598    } EdgeT;
11599    const SWcontext *swrast = SWRAST_CONTEXT(ctx);
11600    const GLint depthBits = ctx->DrawBuffer->Visual.depthBits;
11601    const GLint fixedToDepthShift = depthBits <= 16 ? 11 : 0;
11602    const GLfloat maxDepth = ctx->DrawBuffer->_DepthMaxF;
11603    EdgeT eMaj, eTop, eBot;
11604    GLfloat oneOverArea;
11605    const SWvertex *vMin, *vMid, *vMax;
11606    GLfloat bf = SWRAST_CONTEXT(ctx)->_BackfaceSign;
11607    const GLint snapMask = ~(((1 << 11) / (1 << 4)) - 1);
11608    GLfixed vMin_fx, vMin_fy, vMid_fx, vMid_fy, vMax_fx, vMax_fy;
11609    SWspan span;
11610    (void) swrast;
11611    do { (span).primitive = (0x0009); (span).interpMask = 0x0; (span).arrayMask = 0x0; (span).arrayAttribs = 0x0; (span).end = 0; (span).leftClip = 0; (span).facing = 0; (span).array = SWRAST_CONTEXT(ctx)->SpanArrays; } while (0);
11612    span.y = 0;
11613    (void) fixedToDepthShift;
11614    {
11615       const GLfixed fy0 = (((int) ((((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11616       const GLfixed fy1 = (((int) ((((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11617       const GLfixed fy2 = (((int) ((((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11618       if (fy0 <= fy1) {
11619          if (fy1 <= fy2) {
11620             vMin = v0; vMid = v1; vMax = v2;
11621             vMin_fy = fy0; vMid_fy = fy1; vMax_fy = fy2;
11622          }
11623          else if (fy2 <= fy0) {
11624             vMin = v2; vMid = v0; vMax = v1;
11625             vMin_fy = fy2; vMid_fy = fy0; vMax_fy = fy1;
11626          }
11627          else {
11628             vMin = v0; vMid = v2; vMax = v1;
11629             vMin_fy = fy0; vMid_fy = fy2; vMax_fy = fy1;
11630             bf = -bf;
11631          }
11632       }
11633       else {
11634          if (fy0 <= fy2) {
11635             vMin = v1; vMid = v0; vMax = v2;
11636             vMin_fy = fy1; vMid_fy = fy0; vMax_fy = fy2;
11637             bf = -bf;
11638          }
11639          else if (fy2 <= fy1) {
11640             vMin = v2; vMid = v1; vMax = v0;
11641             vMin_fy = fy2; vMid_fy = fy1; vMax_fy = fy0;
11642             bf = -bf;
11643          }
11644          else {
11645             vMin = v1; vMid = v2; vMax = v0;
11646             vMin_fy = fy1; vMid_fy = fy2; vMax_fy = fy0;
11647          }
11648       }
11649       vMin_fx = (((int) ((((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11650       vMid_fx = (((int) ((((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11651       vMax_fx = (((int) ((((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
11652    }
11653    eMaj.v0 = vMin; eMaj.v1 = vMax;
11654    eTop.v0 = vMid; eTop.v1 = vMax;
11655    eBot.v0 = vMin; eBot.v1 = vMid;
11656    eMaj.dx = ((vMax_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
11657    eMaj.dy = ((vMax_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
11658    eTop.dx = ((vMax_fx - vMid_fx) * (1.0F / ((float) (1 << 11))));
11659    eTop.dy = ((vMax_fy - vMid_fy) * (1.0F / ((float) (1 << 11))));
11660    eBot.dx = ((vMid_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
11661    eBot.dy = ((vMid_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
11662    {
11663       const GLfloat area = eMaj.dx * eBot.dy - eBot.dx * eMaj.dy;
11664       if (IS_INF_OR_NAN(area) || area == 0.0F)
11665          return;
11666       if (area * bf * swrast->_BackfaceCullSign < 0.0)
11667          return;
11668       oneOverArea = 1.0F / area;
11669       span.facing = oneOverArea * bf > 0.0F;
11670    }
11671    {
11672       eMaj.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
11673       eMaj.lines = (((((vMax_fy - eMaj.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
11674       if (eMaj.lines > 0) {
11675          eMaj.dxdy = eMaj.dx / eMaj.dy;
11676          eMaj.fdxdy = (((int) ((((eMaj.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eMaj.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eMaj.dxdy) * ((float) (1 << 11))) - 0.5F))));
11677          eMaj.adjy = (GLfloat) (eMaj.fsy - vMin_fy);
11678          eMaj.fx0 = vMin_fx;
11679          eMaj.fsx = eMaj.fx0 + (GLfixed) (eMaj.adjy * eMaj.dxdy);
11680       }
11681       else {
11682          return;
11683       }
11684       eTop.fsy = (((vMid_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
11685       eTop.lines = (((((vMax_fy - eTop.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
11686       if (eTop.lines > 0) {
11687          eTop.dxdy = eTop.dx / eTop.dy;
11688          eTop.fdxdy = (((int) ((((eTop.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eTop.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eTop.dxdy) * ((float) (1 << 11))) - 0.5F))));
11689          eTop.adjy = (GLfloat) (eTop.fsy - vMid_fy);
11690          eTop.fx0 = vMid_fx;
11691          eTop.fsx = eTop.fx0 + (GLfixed) (eTop.adjy * eTop.dxdy);
11692       }
11693       eBot.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
11694       eBot.lines = (((((vMid_fy - eBot.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
11695       if (eBot.lines > 0) {
11696          eBot.dxdy = eBot.dx / eBot.dy;
11697          eBot.fdxdy = (((int) ((((eBot.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eBot.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eBot.dxdy) * ((float) (1 << 11))) - 0.5F))));
11698          eBot.adjy = (GLfloat) (eBot.fsy - vMin_fy);
11699          eBot.fx0 = vMin_fx;
11700          eBot.fsx = eBot.fx0 + (GLfixed) (eBot.adjy * eBot.dxdy);
11701       }
11702    }
11703    {
11704       GLint scan_from_left_to_right;
11705       struct affine_info info; struct gl_texture_unit *unit = ctx->Texture.Unit+0; const struct gl_texture_object *obj = ctx->Texture.Unit[0].CurrentTex[TEXTURE_2D_INDEX]; const struct gl_texture_image *texImg = obj->Image[0][obj->BaseLevel]; const GLfloat twidth = (GLfloat) texImg->Width; const GLfloat theight = (GLfloat) texImg->Height; info.texture = (const GLchan *) texImg->Data; info.twidth_log2 = texImg->WidthLog2; info.smask = texImg->Width - 1; info.tmask = texImg->Height - 1; info.format = texImg->TexFormat; info.filter = obj->Sampler.MinFilter; info.envmode = unit->EnvMode; info.er = 0; info.eg = 0; info.eb = 0; span.arrayMask |= 0x01; if (info.envmode == 0x0BE2) { info.er = (((int) ((((unit->EnvColor[0] * 255.0F) * ((float) (1 << 11))) >= 0.0F) ? (((unit->EnvColor[0] * 255.0F) * ((float) (1 << 11))) + 0.5F) : (((unit->EnvColor[0] * 255.0F) * ((float) (1 << 11))) - 0.5F)))); info.eg = (((int) ((((unit->EnvColor[1] * 255.0F) * ((float) (1 << 11))) >= 0.0F) ? (((unit->EnvColor[1] * 255.0F) * ((float) (1 << 11))) + 0.5F) : (((unit->EnvColor[1] * 255.0F) * ((float) (1 << 11))) - 0.5F)))); info.eb = (((int) ((((unit->EnvColor[2] * 255.0F) * ((float) (1 << 11))) >= 0.0F) ? (((unit->EnvColor[2] * 255.0F) * ((float) (1 << 11))) + 0.5F) : (((unit->EnvColor[2] * 255.0F) * ((float) (1 << 11))) - 0.5F)))); info.ea = (((int) ((((unit->EnvColor[3] * 255.0F) * ((float) (1 << 11))) >= 0.0F) ? (((unit->EnvColor[3] * 255.0F) * ((float) (1 << 11))) + 0.5F) : (((unit->EnvColor[3] * 255.0F) * ((float) (1 << 11))) - 0.5F)))); } if (!info.texture) { return; } switch (info.format) { case MESA_FORMAT_RGB888: info.tbytesline = texImg->Width * 3; break; case MESA_FORMAT_RGBA8888: info.tbytesline = texImg->Width * 4; break; default: _mesa_problem(((void *)0), "Bad texture format in affine_texture_triangle"); return; } info.tsize = texImg->Height * info.tbytesline;
11706       scan_from_left_to_right = (oneOverArea < 0.0F);
11707       span.interpMask |= 0x02;
11708       {
11709          GLfloat eMaj_dz = vMax->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
11710          GLfloat eBot_dz = vMid->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
11711          span.attrStepX[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj_dz * eBot.dy - eMaj.dy * eBot_dz);
11712          if (span.attrStepX[FRAG_ATTRIB_WPOS][2] > maxDepth ||
11713              span.attrStepX[FRAG_ATTRIB_WPOS][2] < -maxDepth) {
11714             span.attrStepX[FRAG_ATTRIB_WPOS][2] = 0.0;
11715             span.attrStepY[FRAG_ATTRIB_WPOS][2] = 0.0;
11716          }
11717          else {
11718             span.attrStepY[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj.dx * eBot_dz - eMaj_dz * eBot.dx);
11719          }
11720          if (depthBits <= 16)
11721             span.zStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))));
11722          else
11723             span.zStep = (GLint) span.attrStepX[FRAG_ATTRIB_WPOS][2];
11724       }
11725       span.interpMask |= 0x01;
11726       if (ctx->Light.ShadeModel == 0x1D01) {
11727          GLfloat eMaj_dr = (GLfloat) (vMax->color[0] - vMin->color[0]);
11728          GLfloat eBot_dr = (GLfloat) (vMid->color[0] - vMin->color[0]);
11729          GLfloat eMaj_dg = (GLfloat) (vMax->color[1] - vMin->color[1]);
11730          GLfloat eBot_dg = (GLfloat) (vMid->color[1] - vMin->color[1]);
11731          GLfloat eMaj_db = (GLfloat) (vMax->color[2] - vMin->color[2]);
11732          GLfloat eBot_db = (GLfloat) (vMid->color[2] - vMin->color[2]);
11733          GLfloat eMaj_da = (GLfloat) (vMax->color[3] - vMin->color[3]);
11734          GLfloat eBot_da = (GLfloat) (vMid->color[3] - vMin->color[3]);
11735          span.attrStepX[FRAG_ATTRIB_COL0][0] = oneOverArea * (eMaj_dr * eBot.dy - eMaj.dy * eBot_dr);
11736          span.attrStepY[FRAG_ATTRIB_COL0][0] = oneOverArea * (eMaj.dx * eBot_dr - eMaj_dr * eBot.dx);
11737          span.attrStepX[FRAG_ATTRIB_COL0][1] = oneOverArea * (eMaj_dg * eBot.dy - eMaj.dy * eBot_dg);
11738          span.attrStepY[FRAG_ATTRIB_COL0][1] = oneOverArea * (eMaj.dx * eBot_dg - eMaj_dg * eBot.dx);
11739          span.attrStepX[FRAG_ATTRIB_COL0][2] = oneOverArea * (eMaj_db * eBot.dy - eMaj.dy * eBot_db);
11740          span.attrStepY[FRAG_ATTRIB_COL0][2] = oneOverArea * (eMaj.dx * eBot_db - eMaj_db * eBot.dx);
11741          span.redStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) - 0.5F))));
11742          span.greenStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) - 0.5F))));
11743          span.blueStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) - 0.5F))));
11744          span.attrStepX[FRAG_ATTRIB_COL0][3] = oneOverArea * (eMaj_da * eBot.dy - eMaj.dy * eBot_da);
11745          span.attrStepY[FRAG_ATTRIB_COL0][3] = oneOverArea * (eMaj.dx * eBot_da - eMaj_da * eBot.dx);
11746          span.alphaStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) - 0.5F))));
11747       }
11748       else {
11749          ;
11750          span.interpMask |= 0x04;
11751          span.attrStepX[FRAG_ATTRIB_COL0][0] = span.attrStepY[FRAG_ATTRIB_COL0][0] = 0.0F;
11752          span.attrStepX[FRAG_ATTRIB_COL0][1] = span.attrStepY[FRAG_ATTRIB_COL0][1] = 0.0F;
11753          span.attrStepX[FRAG_ATTRIB_COL0][2] = span.attrStepY[FRAG_ATTRIB_COL0][2] = 0.0F;
11754   span.redStep = 0;
11755   span.greenStep = 0;
11756   span.blueStep = 0;
11757          span.attrStepX[FRAG_ATTRIB_COL0][3] = span.attrStepY[FRAG_ATTRIB_COL0][3] = 0.0F;
11758   span.alphaStep = 0;
11759       }
11760       {
11761          GLfloat eMaj_ds = (vMax->attrib[FRAG_ATTRIB_TEX0][0] - vMin->attrib[FRAG_ATTRIB_TEX0][0]) * twidth;
11762          GLfloat eBot_ds = (vMid->attrib[FRAG_ATTRIB_TEX0][0] - vMin->attrib[FRAG_ATTRIB_TEX0][0]) * twidth;
11763          GLfloat eMaj_dt = (vMax->attrib[FRAG_ATTRIB_TEX0][1] - vMin->attrib[FRAG_ATTRIB_TEX0][1]) * theight;
11764          GLfloat eBot_dt = (vMid->attrib[FRAG_ATTRIB_TEX0][1] - vMin->attrib[FRAG_ATTRIB_TEX0][1]) * theight;
11765          span.attrStepX[FRAG_ATTRIB_TEX0][0] = oneOverArea * (eMaj_ds * eBot.dy - eMaj.dy * eBot_ds);
11766          span.attrStepY[FRAG_ATTRIB_TEX0][0] = oneOverArea * (eMaj.dx * eBot_ds - eMaj_ds * eBot.dx);
11767          span.attrStepX[FRAG_ATTRIB_TEX0][1] = oneOverArea * (eMaj_dt * eBot.dy - eMaj.dy * eBot_dt);
11768          span.attrStepY[FRAG_ATTRIB_TEX0][1] = oneOverArea * (eMaj.dx * eBot_dt - eMaj_dt * eBot.dx);
11769          span.intTexStep[0] = (((int) ((((span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) - 0.5F))));
11770          span.intTexStep[1] = (((int) ((((span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) - 0.5F))));
11771       }
11772       {
11773          GLint subTriangle;
11774          GLfixed fxLeftEdge = 0, fxRightEdge = 0;
11775          GLfixed fdxLeftEdge = 0, fdxRightEdge = 0;
11776          GLfixed fError = 0, fdError = 0;
11777          GLuint zLeft = 0;
11778          GLfixed fdzOuter = 0, fdzInner;
11779          GLint rLeft = 0, fdrOuter = 0, fdrInner;
11780          GLint gLeft = 0, fdgOuter = 0, fdgInner;
11781          GLint bLeft = 0, fdbOuter = 0, fdbInner;
11782          GLint aLeft = 0, fdaOuter = 0, fdaInner;
11783          GLfixed sLeft=0, dsOuter=0, dsInner;
11784          GLfixed tLeft=0, dtOuter=0, dtInner;
11785          for (subTriangle=0; subTriangle<=1; subTriangle++) {
11786             EdgeT *eLeft, *eRight;
11787             int setupLeft, setupRight;
11788             int lines;
11789             if (subTriangle==0) {
11790                if (scan_from_left_to_right) {
11791                   eLeft = &eMaj;
11792                   eRight = &eBot;
11793                   lines = eRight->lines;
11794                   setupLeft = 1;
11795                   setupRight = 1;
11796                }
11797                else {
11798                   eLeft = &eBot;
11799                   eRight = &eMaj;
11800                   lines = eLeft->lines;
11801                   setupLeft = 1;
11802                   setupRight = 1;
11803                }
11804             }
11805             else {
11806                if (scan_from_left_to_right) {
11807                   eLeft = &eMaj;
11808                   eRight = &eTop;
11809                   lines = eRight->lines;
11810                   setupLeft = 0;
11811                   setupRight = 1;
11812                }
11813                else {
11814                   eLeft = &eTop;
11815                   eRight = &eMaj;
11816                   lines = eLeft->lines;
11817                   setupLeft = 1;
11818                   setupRight = 0;
11819                }
11820                if (lines == 0)
11821                   return;
11822             }
11823             if (setupLeft && eLeft->lines > 0) {
11824                const SWvertex *vLower = eLeft->v0;
11825                const GLfixed fsy = eLeft->fsy;
11826                const GLfixed fsx = eLeft->fsx;
11827                const GLfixed fx = (((fsx) + (1 << 11) - 1) & (~((1 << 11) - 1)));
11828                const GLfixed adjx = (GLfixed) (fx - eLeft->fx0);
11829                const GLfixed adjy = (GLfixed) eLeft->adjy;
11830                GLint idxOuter;
11831                GLfloat dxOuter;
11832                GLfixed fdxOuter;
11833                fError = fx - fsx - (1 << 11);
11834                fxLeftEdge = fsx - 1;
11835                fdxLeftEdge = eLeft->fdxdy;
11836                fdxOuter = ((fdxLeftEdge - 1) & (~((1 << 11) - 1)));
11837                fdError = fdxOuter - fdxLeftEdge + (1 << 11);
11838                idxOuter = ((fdxOuter) >> 11);
11839                dxOuter = (GLfloat) idxOuter;
11840                span.y = ((fsy) >> 11);
11841                (void) dxOuter;
11842                (void) adjx;
11843                (void) adjy;
11844                (void) vLower;
11845                {
11846                   GLfloat z0 = vLower->attrib[FRAG_ATTRIB_WPOS][2];
11847                   if (depthBits <= 16) {
11848                      GLfloat tmp = (z0 * ((float) (1 << 11))
11849                                     + span.attrStepX[FRAG_ATTRIB_WPOS][2] * adjx
11850                                     + span.attrStepY[FRAG_ATTRIB_WPOS][2] * adjy) + (1 << (11 -1));
11851                      if (tmp < 0xffffffff / 2)
11852                         zLeft = (GLfixed) tmp;
11853                      else
11854                         zLeft = 0xffffffff / 2;
11855                      fdzOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))))
11856                                                                                                  ;
11857                   }
11858                   else {
11859                      zLeft = (GLuint) (z0 + span.attrStepX[FRAG_ATTRIB_WPOS][2] * ((adjx) * (1.0F / ((float) (1 << 11))))
11860                                           + span.attrStepY[FRAG_ATTRIB_WPOS][2] * ((adjy) * (1.0F / ((float) (1 << 11)))));
11861                      fdzOuter = (GLint) (span.attrStepY[FRAG_ATTRIB_WPOS][2] +
11862                                          dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]);
11863                   }
11864                }
11865                if (ctx->Light.ShadeModel == 0x1D01) {
11866                   rLeft = (GLint)(((vLower->color[0]) << 11)
11867                                   + span.attrStepX[FRAG_ATTRIB_COL0][0] * adjx
11868                                   + span.attrStepY[FRAG_ATTRIB_COL0][0] * adjy) + (1 << (11 -1));
11869                   gLeft = (GLint)(((vLower->color[1]) << 11)
11870                                   + span.attrStepX[FRAG_ATTRIB_COL0][1] * adjx
11871                                   + span.attrStepY[FRAG_ATTRIB_COL0][1] * adjy) + (1 << (11 -1));
11872                   bLeft = (GLint)(((vLower->color[2]) << 11)
11873                                   + span.attrStepX[FRAG_ATTRIB_COL0][2] * adjx
11874                                   + span.attrStepY[FRAG_ATTRIB_COL0][2] * adjy) + (1 << (11 -1));
11875                   fdrOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) - 0.5F))))
11876                                                                                                 ;
11877                   fdgOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) - 0.5F))))
11878                                                                                                 ;
11879                   fdbOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) - 0.5F))))
11880                                                                                                 ;
11881                   aLeft = (GLint)(((vLower->color[3]) << 11)
11882                                   + span.attrStepX[FRAG_ATTRIB_COL0][3] * adjx
11883                                   + span.attrStepY[FRAG_ATTRIB_COL0][3] * adjy) + (1 << (11 -1));
11884                   fdaOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) - 0.5F))))
11885                                                                                                 ;
11886                }
11887                else {
11888                   ;
11889                   rLeft = ((v2->color[0]) << 11);
11890                   gLeft = ((v2->color[1]) << 11);
11891                   bLeft = ((v2->color[2]) << 11);
11892                   fdrOuter = fdgOuter = fdbOuter = 0;
11893                   aLeft = ((v2->color[3]) << 11);
11894                   fdaOuter = 0;
11895                }
11896                {
11897                   GLfloat s0, t0;
11898                   s0 = vLower->attrib[FRAG_ATTRIB_TEX0][0] * twidth;
11899                   sLeft = (GLfixed)(s0 * ((float) (1 << 11)) + span.attrStepX[FRAG_ATTRIB_TEX0][0] * adjx
11900                                  + span.attrStepY[FRAG_ATTRIB_TEX0][0] * adjy) + (1 << (11 -1));
11901                   dsOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_TEX0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_TEX0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_TEX0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][0]) * ((float) (1 << 11))) - 0.5F))))
11902                                                                                                ;
11903                   t0 = vLower->attrib[FRAG_ATTRIB_TEX0][1] * theight;
11904                   tLeft = (GLfixed)(t0 * ((float) (1 << 11)) + span.attrStepX[FRAG_ATTRIB_TEX0][1] * adjx
11905                                  + span.attrStepY[FRAG_ATTRIB_TEX0][1] * adjy) + (1 << (11 -1));
11906                   dtOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_TEX0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_TEX0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_TEX0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_TEX0][1]) * ((float) (1 << 11))) - 0.5F))))
11907                                                                                                ;
11908                }
11909             }
11910             if (setupRight && eRight->lines>0) {
11911                fxRightEdge = eRight->fsx - 1;
11912                fdxRightEdge = eRight->fdxdy;
11913             }
11914             if (lines==0) {
11915                continue;
11916             }
11917             fdzInner = fdzOuter + span.zStep;
11918             fdrInner = fdrOuter + span.redStep;
11919             fdgInner = fdgOuter + span.greenStep;
11920             fdbInner = fdbOuter + span.blueStep;
11921             fdaInner = fdaOuter + span.alphaStep;
11922             dsInner = dsOuter + span.intTexStep[0];
11923             dtInner = dtOuter + span.intTexStep[1];
11924             while (lines > 0) {
11925                const GLint right = ((fxRightEdge) >> 11);
11926                span.x = ((fxLeftEdge) >> 11);
11927                if (right <= span.x)
11928                   span.end = 0;
11929                else
11930                   span.end = right - span.x;
11931                span.z = zLeft;
11932                span.red = rLeft;
11933                span.green = gLeft;
11934                span.blue = bLeft;
11935                span.alpha = aLeft;
11936                span.intTex[0] = sLeft;
11937                span.intTex[1] = tLeft;
11938                if (span.end > 0 && span.y >= 0) {
11939                   const GLint len = span.end - 1;
11940                   (void) len;
11941                   do { GLfixed endVal = span.red + (len) * span.redStep; if (endVal < 0) { span.red -= endVal; } if (span.red < 0) { span.red = 0; } } while (0);
11942                   do { GLfixed endVal = span.green + (len) * span.greenStep; if (endVal < 0) { span.green -= endVal; } if (span.green < 0) { span.green = 0; } } while (0);
11943                   do { GLfixed endVal = span.blue + (len) * span.blueStep; if (endVal < 0) { span.blue -= endVal; } if (span.blue < 0) { span.blue = 0; } } while (0);
11944                   do { GLfixed endVal = span.alpha + (len) * span.alphaStep; if (endVal < 0) { span.alpha -= endVal; } if (span.alpha < 0) { span.alpha = 0; } } while (0);
11945                   {
11946                      affine_span(ctx, &span, &info);;
11947                   }
11948                }
11949                span.y++;
11950                lines--;
11951                fxLeftEdge += fdxLeftEdge;
11952                fxRightEdge += fdxRightEdge;
11953                fError += fdError;
11954                if (fError >= 0) {
11955                   fError -= (1 << 11);
11956                   zLeft += fdzOuter;
11957                   rLeft += fdrOuter;
11958                   gLeft += fdgOuter;
11959                   bLeft += fdbOuter;
11960                   aLeft += fdaOuter;
11961                   sLeft += dsOuter;
11962                   tLeft += dtOuter;
11963                }
11964                else {
11965                   zLeft += fdzInner;
11966                   rLeft += fdrInner;
11967                   gLeft += fdgInner;
11968                   bLeft += fdbInner;
11969                   aLeft += fdaInner;
11970                   sLeft += dsInner;
11971                   tLeft += dtInner;
11972                }
11973             }
11974          }
11975       }
11976    }
11977 }
11978 struct persp_info
11979 {
11980    GLenum filter;
11981    GLenum format;
11982    GLenum envmode;
11983    GLint smask, tmask;
11984    GLint twidth_log2;
11985    const GLchan *texture;
11986    GLfixed er, eg, eb, ea;
11987    GLint tbytesline, tsize;
11988 };
11989 static __inline__ void
11990 fast_persp_span(struct gl_context *ctx, SWspan *span,
11991   struct persp_info *info)
11992 {
11993    GLchan sample[4];
11994    GLuint i;
11995    GLfloat tex_coord[3], tex_step[3];
11996    GLchan *dest = span->array->rgba[0];
11997    const GLuint texEnableSave = ctx->Texture._EnabledCoordUnits;
11998    ctx->Texture._EnabledCoordUnits = 0;
11999    tex_coord[0] = span->attrStart[FRAG_ATTRIB_TEX0][0] * (info->smask + 1);
12000    tex_step[0] = span->attrStepX[FRAG_ATTRIB_TEX0][0] * (info->smask + 1);
12001    tex_coord[1] = span->attrStart[FRAG_ATTRIB_TEX0][1] * (info->tmask + 1);
12002    tex_step[1] = span->attrStepX[FRAG_ATTRIB_TEX0][1] * (info->tmask + 1);
12003    tex_coord[2] = span->attrStart[FRAG_ATTRIB_TEX0][3];
12004    tex_step[2] = span->attrStepX[FRAG_ATTRIB_TEX0][3];
12005    switch (info->filter) {
12006    case 0x2600:
12007       switch (info->format) {
12008       case MESA_FORMAT_RGB888:
12009          switch (info->envmode) {
12010          case 0x2100:
12011             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); GLint s = ifloor(s_tmp) & info->smask; GLint t = ifloor(t_tmp) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; sample[0] = tex00[2]; sample[1] = tex00[1]; sample[2] = tex00[0]; sample[3] = 255;;dest[0] = span->red * (sample[0] + 1u) >> (11 + 8); dest[1] = span->green * (sample[1] + 1u) >> (11 + 8); dest[2] = span->blue * (sample[2] + 1u) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1u) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12012             break;
12013          case 0x2101:
12014          case 0x1E01:
12015             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); GLint s = ifloor(s_tmp) & info->smask; GLint t = ifloor(t_tmp) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; sample[0] = tex00[2]; sample[1] = tex00[1]; sample[2] = tex00[0]; sample[3] = 255;; dest[0] = sample[0]; dest[1] = sample[1]; dest[2] = sample[2]; dest[3] = ((span->alpha) >> 11);; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12016             break;
12017          case 0x0BE2:
12018             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); GLint s = ifloor(s_tmp) & info->smask; GLint t = ifloor(t_tmp) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; sample[0] = tex00[2]; sample[1] = tex00[1]; sample[2] = tex00[0]; sample[3] = 255;;dest[0] = ((255 - sample[0]) * span->red + (sample[0] + 1) * info->er) >> (11 + 8); dest[1] = ((255 - sample[1]) * span->green + (sample[1] + 1) * info->eg) >> (11 + 8); dest[2] = ((255 - sample[2]) * span->blue + (sample[2] + 1) * info->eb) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12019             break;
12020          case 0x0104:
12021             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); GLint s = ifloor(s_tmp) & info->smask; GLint t = ifloor(t_tmp) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; sample[0] = tex00[2]; sample[1] = tex00[1]; sample[2] = tex00[0]; sample[3] = 255;;{ GLint rSum = ((span->red) >> 11) + (GLint) sample[0]; GLint gSum = ((span->green) >> 11) + (GLint) sample[1]; GLint bSum = ((span->blue) >> 11) + (GLint) sample[2]; dest[0] = ( (rSum)<(255) ? (rSum) : (255) ); dest[1] = ( (gSum)<(255) ? (gSum) : (255) ); dest[2] = ( (bSum)<(255) ? (bSum) : (255) ); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); }; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12022             break;
12023          default:
12024             _mesa_problem(ctx, "bad tex env mode (5) in SPAN_LINEAR");
12025             return;
12026          }
12027          break;
12028       case MESA_FORMAT_RGBA8888:
12029          switch(info->envmode) {
12030          case 0x2100:
12031             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); GLint s = ifloor(s_tmp) & info->smask; GLint t = ifloor(t_tmp) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; sample[0] = tex00[3]; sample[1] = tex00[2]; sample[2] = tex00[1]; sample[3] = tex00[0];;dest[0] = span->red * (sample[0] + 1u) >> (11 + 8); dest[1] = span->green * (sample[1] + 1u) >> (11 + 8); dest[2] = span->blue * (sample[2] + 1u) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1u) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12032             break;
12033          case 0x2101:
12034             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); GLint s = ifloor(s_tmp) & info->smask; GLint t = ifloor(t_tmp) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; sample[0] = tex00[3]; sample[1] = tex00[2]; sample[2] = tex00[1]; sample[3] = tex00[0];;dest[0] = ((255 - sample[3]) * span->red + ((sample[3] + 1) * sample[0] << 11)) >> (11 + 8); dest[1] = ((255 - sample[3]) * span->green + ((sample[3] + 1) * sample[1] << 11)) >> (11 + 8); dest[2] = ((255 - sample[3]) * span->blue + ((sample[3] + 1) * sample[2] << 11)) >> (11 + 8); dest[3] = ((span->alpha) >> 11); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12035             break;
12036          case 0x0BE2:
12037             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); GLint s = ifloor(s_tmp) & info->smask; GLint t = ifloor(t_tmp) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; sample[0] = tex00[3]; sample[1] = tex00[2]; sample[2] = tex00[1]; sample[3] = tex00[0];;dest[0] = ((255 - sample[0]) * span->red + (sample[0] + 1) * info->er) >> (11 + 8); dest[1] = ((255 - sample[1]) * span->green + (sample[1] + 1) * info->eg) >> (11 + 8); dest[2] = ((255 - sample[2]) * span->blue + (sample[2] + 1) * info->eb) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12038             break;
12039          case 0x0104:
12040             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); GLint s = ifloor(s_tmp) & info->smask; GLint t = ifloor(t_tmp) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; sample[0] = tex00[3]; sample[1] = tex00[2]; sample[2] = tex00[1]; sample[3] = tex00[0];;{ GLint rSum = ((span->red) >> 11) + (GLint) sample[0]; GLint gSum = ((span->green) >> 11) + (GLint) sample[1]; GLint bSum = ((span->blue) >> 11) + (GLint) sample[2]; dest[0] = ( (rSum)<(255) ? (rSum) : (255) ); dest[1] = ( (gSum)<(255) ? (gSum) : (255) ); dest[2] = ( (bSum)<(255) ? (bSum) : (255) ); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); }; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12041             break;
12042          case 0x1E01:
12043             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); GLint s = ifloor(s_tmp) & info->smask; GLint t = ifloor(t_tmp) & info->tmask; GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; dest[0] = tex00[3]; dest[1] = tex00[2]; dest[2] = tex00[1]; dest[3] = tex00[0]; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12044             break;
12045          default:
12046             _mesa_problem(ctx, "bad tex env mode (6) in SPAN_LINEAR");
12047             return;
12048          }
12049          break;
12050       }
12051       break;
12052    case 0x2601:
12053       switch (info->format) {
12054       case MESA_FORMAT_RGB888:
12055          switch (info->envmode) {
12056          case 0x2100:
12057             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; const GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); const GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); const GLfixed s_fix = (((int) ((((s_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((s_tmp) * ((float) (1 << 11))) + 0.5F) : (((s_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLfixed t_fix = (((int) ((((t_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((t_tmp) * ((float) (1 << 11))) + 0.5F) : (((t_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLint s = ((((s_fix) & (~((1 << 11) - 1)))) >> 11) & info->smask; const GLint t = ((((t_fix) & (~((1 << 11) - 1)))) >> 11) & info->tmask; const GLfixed sf = s_fix & ((1 << 11) - 1); const GLfixed tf = t_fix & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 3; const GLchan *tex11 = tex10 + 3; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[1] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[2] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]); sample[3] = 255;;dest[0] = span->red * (sample[0] + 1u) >> (11 + 8); dest[1] = span->green * (sample[1] + 1u) >> (11 + 8); dest[2] = span->blue * (sample[2] + 1u) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1u) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12058             break;
12059          case 0x2101:
12060          case 0x1E01:
12061             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; const GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); const GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); const GLfixed s_fix = (((int) ((((s_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((s_tmp) * ((float) (1 << 11))) + 0.5F) : (((s_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLfixed t_fix = (((int) ((((t_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((t_tmp) * ((float) (1 << 11))) + 0.5F) : (((t_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLint s = ((((s_fix) & (~((1 << 11) - 1)))) >> 11) & info->smask; const GLint t = ((((t_fix) & (~((1 << 11) - 1)))) >> 11) & info->tmask; const GLfixed sf = s_fix & ((1 << 11) - 1); const GLfixed tf = t_fix & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 3; const GLchan *tex11 = tex10 + 3; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[1] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[2] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]); sample[3] = 255;;do { (dest)[0] = (sample)[0]; (dest)[1] = (sample)[1]; (dest)[2] = (sample)[2]; (dest)[3] = (sample)[3]; } while (0); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12062             break;
12063          case 0x0BE2:
12064             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; const GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); const GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); const GLfixed s_fix = (((int) ((((s_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((s_tmp) * ((float) (1 << 11))) + 0.5F) : (((s_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLfixed t_fix = (((int) ((((t_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((t_tmp) * ((float) (1 << 11))) + 0.5F) : (((t_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLint s = ((((s_fix) & (~((1 << 11) - 1)))) >> 11) & info->smask; const GLint t = ((((t_fix) & (~((1 << 11) - 1)))) >> 11) & info->tmask; const GLfixed sf = s_fix & ((1 << 11) - 1); const GLfixed tf = t_fix & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 3; const GLchan *tex11 = tex10 + 3; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[1] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[2] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]); sample[3] = 255;;dest[0] = ((255 - sample[0]) * span->red + (sample[0] + 1) * info->er) >> (11 + 8); dest[1] = ((255 - sample[1]) * span->green + (sample[1] + 1) * info->eg) >> (11 + 8); dest[2] = ((255 - sample[2]) * span->blue + (sample[2] + 1) * info->eb) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12065             break;
12066          case 0x0104:
12067             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; const GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); const GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); const GLfixed s_fix = (((int) ((((s_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((s_tmp) * ((float) (1 << 11))) + 0.5F) : (((s_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLfixed t_fix = (((int) ((((t_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((t_tmp) * ((float) (1 << 11))) + 0.5F) : (((t_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLint s = ((((s_fix) & (~((1 << 11) - 1)))) >> 11) & info->smask; const GLint t = ((((t_fix) & (~((1 << 11) - 1)))) >> 11) & info->tmask; const GLfixed sf = s_fix & ((1 << 11) - 1); const GLfixed tf = t_fix & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 3 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 3; const GLchan *tex11 = tex10 + 3; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[1] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[2] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]); sample[3] = 255;;{ GLint rSum = ((span->red) >> 11) + (GLint) sample[0]; GLint gSum = ((span->green) >> 11) + (GLint) sample[1]; GLint bSum = ((span->blue) >> 11) + (GLint) sample[2]; dest[0] = ( (rSum)<(255) ? (rSum) : (255) ); dest[1] = ( (gSum)<(255) ? (gSum) : (255) ); dest[2] = ( (bSum)<(255) ? (bSum) : (255) ); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); }; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12068             break;
12069          default:
12070             _mesa_problem(ctx, "bad tex env mode (7) in SPAN_LINEAR");
12071             return;
12072          }
12073          break;
12074       case MESA_FORMAT_RGBA8888:
12075          switch (info->envmode) {
12076          case 0x2100:
12077             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; const GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); const GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); const GLfixed s_fix = (((int) ((((s_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((s_tmp) * ((float) (1 << 11))) + 0.5F) : (((s_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLfixed t_fix = (((int) ((((t_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((t_tmp) * ((float) (1 << 11))) + 0.5F) : (((t_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLint s = ((((s_fix) & (~((1 << 11) - 1)))) >> 11) & info->smask; const GLint t = ((((t_fix) & (~((1 << 11) - 1)))) >> 11) & info->tmask; const GLfixed sf = s_fix & ((1 << 11) - 1); const GLfixed tf = t_fix & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 4; const GLchan *tex11 = tex10 + 4; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[3], tex01[3], tex10[3], tex11[3]); sample[1] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[2] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[3] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]);dest[0] = span->red * (sample[0] + 1u) >> (11 + 8); dest[1] = span->green * (sample[1] + 1u) >> (11 + 8); dest[2] = span->blue * (sample[2] + 1u) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1u) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12078             break;
12079          case 0x2101:
12080             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; const GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); const GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); const GLfixed s_fix = (((int) ((((s_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((s_tmp) * ((float) (1 << 11))) + 0.5F) : (((s_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLfixed t_fix = (((int) ((((t_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((t_tmp) * ((float) (1 << 11))) + 0.5F) : (((t_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLint s = ((((s_fix) & (~((1 << 11) - 1)))) >> 11) & info->smask; const GLint t = ((((t_fix) & (~((1 << 11) - 1)))) >> 11) & info->tmask; const GLfixed sf = s_fix & ((1 << 11) - 1); const GLfixed tf = t_fix & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 4; const GLchan *tex11 = tex10 + 4; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[3], tex01[3], tex10[3], tex11[3]); sample[1] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[2] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[3] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]);dest[0] = ((255 - sample[3]) * span->red + ((sample[3] + 1) * sample[0] << 11)) >> (11 + 8); dest[1] = ((255 - sample[3]) * span->green + ((sample[3] + 1) * sample[1] << 11)) >> (11 + 8); dest[2] = ((255 - sample[3]) * span->blue + ((sample[3] + 1) * sample[2] << 11)) >> (11 + 8); dest[3] = ((span->alpha) >> 11); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12081             break;
12082          case 0x0BE2:
12083             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; const GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); const GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); const GLfixed s_fix = (((int) ((((s_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((s_tmp) * ((float) (1 << 11))) + 0.5F) : (((s_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLfixed t_fix = (((int) ((((t_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((t_tmp) * ((float) (1 << 11))) + 0.5F) : (((t_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLint s = ((((s_fix) & (~((1 << 11) - 1)))) >> 11) & info->smask; const GLint t = ((((t_fix) & (~((1 << 11) - 1)))) >> 11) & info->tmask; const GLfixed sf = s_fix & ((1 << 11) - 1); const GLfixed tf = t_fix & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 4; const GLchan *tex11 = tex10 + 4; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[3], tex01[3], tex10[3], tex11[3]); sample[1] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[2] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[3] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]);dest[0] = ((255 - sample[0]) * span->red + (sample[0] + 1) * info->er) >> (11 + 8); dest[1] = ((255 - sample[1]) * span->green + (sample[1] + 1) * info->eg) >> (11 + 8); dest[2] = ((255 - sample[2]) * span->blue + (sample[2] + 1) * info->eb) >> (11 + 8); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12084             break;
12085          case 0x0104:
12086             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; const GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); const GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); const GLfixed s_fix = (((int) ((((s_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((s_tmp) * ((float) (1 << 11))) + 0.5F) : (((s_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLfixed t_fix = (((int) ((((t_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((t_tmp) * ((float) (1 << 11))) + 0.5F) : (((t_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLint s = ((((s_fix) & (~((1 << 11) - 1)))) >> 11) & info->smask; const GLint t = ((((t_fix) & (~((1 << 11) - 1)))) >> 11) & info->tmask; const GLfixed sf = s_fix & ((1 << 11) - 1); const GLfixed tf = t_fix & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 4; const GLchan *tex11 = tex10 + 4; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[3], tex01[3], tex10[3], tex11[3]); sample[1] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[2] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[3] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]);{ GLint rSum = ((span->red) >> 11) + (GLint) sample[0]; GLint gSum = ((span->green) >> 11) + (GLint) sample[1]; GLint bSum = ((span->blue) >> 11) + (GLint) sample[2]; dest[0] = ( (rSum)<(255) ? (rSum) : (255) ); dest[1] = ( (gSum)<(255) ? (gSum) : (255) ); dest[2] = ( (bSum)<(255) ? (bSum) : (255) ); dest[3] = span->alpha * (sample[3] + 1) >> (11 + 8); }; span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12087             break;
12088          case 0x1E01:
12089             for (i = 0; i < span->end; i++) { GLdouble invQ = tex_coord[2] ? (1.0 / tex_coord[2]) : 1.0; const GLfloat s_tmp = (GLfloat) (tex_coord[0] * invQ); const GLfloat t_tmp = (GLfloat) (tex_coord[1] * invQ); const GLfixed s_fix = (((int) ((((s_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((s_tmp) * ((float) (1 << 11))) + 0.5F) : (((s_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLfixed t_fix = (((int) ((((t_tmp) * ((float) (1 << 11))) >= 0.0F) ? (((t_tmp) * ((float) (1 << 11))) + 0.5F) : (((t_tmp) * ((float) (1 << 11))) - 0.5F)))) - (1 << (11 -1)); const GLint s = ((((s_fix) & (~((1 << 11) - 1)))) >> 11) & info->smask; const GLint t = ((((t_fix) & (~((1 << 11) - 1)))) >> 11) & info->tmask; const GLfixed sf = s_fix & ((1 << 11) - 1); const GLfixed tf = t_fix & ((1 << 11) - 1); const GLint pos = (t << info->twidth_log2) + s; const GLchan *tex00 = info->texture + 4 * pos; const GLchan *tex10 = tex00 + info->tbytesline; const GLchan *tex01 = tex00 + 4; const GLchan *tex11 = tex10 + 4; if (t == info->tmask) { tex10 -= info->tsize; tex11 -= info->tsize; } if (s == info->smask) { tex01 -= info->tbytesline; tex11 -= info->tbytesline; } sample[0] = ilerp_2d(sf, tf, tex00[3], tex01[3], tex10[3], tex11[3]); sample[1] = ilerp_2d(sf, tf, tex00[2], tex01[2], tex10[2], tex11[2]); sample[2] = ilerp_2d(sf, tf, tex00[1], tex01[1], tex10[1], tex11[1]); sample[3] = ilerp_2d(sf, tf, tex00[0], tex01[0], tex10[0], tex11[0]);do { (dest)[0] = (sample)[0]; (dest)[1] = (sample)[1]; (dest)[2] = (sample)[2]; (dest)[3] = (sample)[3]; } while (0); span->red += span->redStep; span->green += span->greenStep; span->blue += span->blueStep; span->alpha += span->alphaStep; tex_coord[0] += tex_step[0]; tex_coord[1] += tex_step[1]; tex_coord[2] += tex_step[2]; dest += 4; };
12090             break;
12091          default:
12092             _mesa_problem(ctx, "bad tex env mode (8) in SPAN_LINEAR");
12093             return;
12094          }
12095          break;
12096       }
12097       break;
12098    }
12099    ;
12100    _swrast_write_rgba_span(ctx, span);
12101    ctx->Texture._EnabledCoordUnits = texEnableSave;
12102 }
12103 static void persp_textured_triangle(struct gl_context *ctx, const SWvertex *v0,
12104                                  const SWvertex *v1,
12105                                  const SWvertex *v2 )
12106 {
12107    typedef struct {
12108       const SWvertex *v0, *v1;
12109       GLfloat dx;
12110       GLfloat dy;
12111       GLfloat dxdy;
12112       GLfixed fdxdy;
12113       GLfloat adjy;
12114       GLfixed fsx;
12115       GLfixed fsy;
12116       GLfixed fx0;
12117       GLint lines;
12118    } EdgeT;
12119    const SWcontext *swrast = SWRAST_CONTEXT(ctx);
12120    const GLint depthBits = ctx->DrawBuffer->Visual.depthBits;
12121    const GLint fixedToDepthShift = depthBits <= 16 ? 11 : 0;
12122    const GLfloat maxDepth = ctx->DrawBuffer->_DepthMaxF;
12123    EdgeT eMaj, eTop, eBot;
12124    GLfloat oneOverArea;
12125    const SWvertex *vMin, *vMid, *vMax;
12126    GLfloat bf = SWRAST_CONTEXT(ctx)->_BackfaceSign;
12127    const GLint snapMask = ~(((1 << 11) / (1 << 4)) - 1);
12128    GLfixed vMin_fx, vMin_fy, vMid_fx, vMid_fy, vMax_fx, vMax_fy;
12129    SWspan span;
12130    (void) swrast;
12131    do { (span).primitive = (0x0009); (span).interpMask = 0x0; (span).arrayMask = 0x0; (span).arrayAttribs = 0x0; (span).end = 0; (span).leftClip = 0; (span).facing = 0; (span).array = SWRAST_CONTEXT(ctx)->SpanArrays; } while (0);
12132    span.y = 0;
12133    (void) fixedToDepthShift;
12134    {
12135       const GLfixed fy0 = (((int) ((((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12136       const GLfixed fy1 = (((int) ((((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12137       const GLfixed fy2 = (((int) ((((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12138       if (fy0 <= fy1) {
12139          if (fy1 <= fy2) {
12140             vMin = v0; vMid = v1; vMax = v2;
12141             vMin_fy = fy0; vMid_fy = fy1; vMax_fy = fy2;
12142          }
12143          else if (fy2 <= fy0) {
12144             vMin = v2; vMid = v0; vMax = v1;
12145             vMin_fy = fy2; vMid_fy = fy0; vMax_fy = fy1;
12146          }
12147          else {
12148             vMin = v0; vMid = v2; vMax = v1;
12149             vMin_fy = fy0; vMid_fy = fy2; vMax_fy = fy1;
12150             bf = -bf;
12151          }
12152       }
12153       else {
12154          if (fy0 <= fy2) {
12155             vMin = v1; vMid = v0; vMax = v2;
12156             vMin_fy = fy1; vMid_fy = fy0; vMax_fy = fy2;
12157             bf = -bf;
12158          }
12159          else if (fy2 <= fy1) {
12160             vMin = v2; vMid = v1; vMax = v0;
12161             vMin_fy = fy2; vMid_fy = fy1; vMax_fy = fy0;
12162             bf = -bf;
12163          }
12164          else {
12165             vMin = v1; vMid = v2; vMax = v0;
12166             vMin_fy = fy1; vMid_fy = fy2; vMax_fy = fy0;
12167          }
12168       }
12169       vMin_fx = (((int) ((((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12170       vMid_fx = (((int) ((((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12171       vMax_fx = (((int) ((((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12172    }
12173    eMaj.v0 = vMin; eMaj.v1 = vMax;
12174    eTop.v0 = vMid; eTop.v1 = vMax;
12175    eBot.v0 = vMin; eBot.v1 = vMid;
12176    eMaj.dx = ((vMax_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
12177    eMaj.dy = ((vMax_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
12178    eTop.dx = ((vMax_fx - vMid_fx) * (1.0F / ((float) (1 << 11))));
12179    eTop.dy = ((vMax_fy - vMid_fy) * (1.0F / ((float) (1 << 11))));
12180    eBot.dx = ((vMid_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
12181    eBot.dy = ((vMid_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
12182    {
12183       const GLfloat area = eMaj.dx * eBot.dy - eBot.dx * eMaj.dy;
12184       if (IS_INF_OR_NAN(area) || area == 0.0F)
12185          return;
12186       if (area * bf * swrast->_BackfaceCullSign < 0.0)
12187          return;
12188       oneOverArea = 1.0F / area;
12189       span.facing = oneOverArea * bf > 0.0F;
12190    }
12191    {
12192       eMaj.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
12193       eMaj.lines = (((((vMax_fy - eMaj.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
12194       if (eMaj.lines > 0) {
12195          eMaj.dxdy = eMaj.dx / eMaj.dy;
12196          eMaj.fdxdy = (((int) ((((eMaj.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eMaj.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eMaj.dxdy) * ((float) (1 << 11))) - 0.5F))));
12197          eMaj.adjy = (GLfloat) (eMaj.fsy - vMin_fy);
12198          eMaj.fx0 = vMin_fx;
12199          eMaj.fsx = eMaj.fx0 + (GLfixed) (eMaj.adjy * eMaj.dxdy);
12200       }
12201       else {
12202          return;
12203       }
12204       eTop.fsy = (((vMid_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
12205       eTop.lines = (((((vMax_fy - eTop.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
12206       if (eTop.lines > 0) {
12207          eTop.dxdy = eTop.dx / eTop.dy;
12208          eTop.fdxdy = (((int) ((((eTop.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eTop.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eTop.dxdy) * ((float) (1 << 11))) - 0.5F))));
12209          eTop.adjy = (GLfloat) (eTop.fsy - vMid_fy);
12210          eTop.fx0 = vMid_fx;
12211          eTop.fsx = eTop.fx0 + (GLfixed) (eTop.adjy * eTop.dxdy);
12212       }
12213       eBot.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
12214       eBot.lines = (((((vMid_fy - eBot.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
12215       if (eBot.lines > 0) {
12216          eBot.dxdy = eBot.dx / eBot.dy;
12217          eBot.fdxdy = (((int) ((((eBot.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eBot.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eBot.dxdy) * ((float) (1 << 11))) - 0.5F))));
12218          eBot.adjy = (GLfloat) (eBot.fsy - vMin_fy);
12219          eBot.fx0 = vMin_fx;
12220          eBot.fsx = eBot.fx0 + (GLfixed) (eBot.adjy * eBot.dxdy);
12221       }
12222    }
12223    {
12224       GLint scan_from_left_to_right;
12225       struct persp_info info; const struct gl_texture_unit *unit = ctx->Texture.Unit+0; const struct gl_texture_object *obj = ctx->Texture.Unit[0].CurrentTex[TEXTURE_2D_INDEX]; const struct gl_texture_image *texImg = obj->Image[0][obj->BaseLevel]; info.texture = (const GLchan *) texImg->Data; info.twidth_log2 = texImg->WidthLog2; info.smask = texImg->Width - 1; info.tmask = texImg->Height - 1; info.format = texImg->TexFormat; info.filter = obj->Sampler.MinFilter; info.envmode = unit->EnvMode; info.er = 0; info.eg = 0; info.eb = 0; if (info.envmode == 0x0BE2) { info.er = (((int) ((((unit->EnvColor[0] * 255.0F) * ((float) (1 << 11))) >= 0.0F) ? (((unit->EnvColor[0] * 255.0F) * ((float) (1 << 11))) + 0.5F) : (((unit->EnvColor[0] * 255.0F) * ((float) (1 << 11))) - 0.5F)))); info.eg = (((int) ((((unit->EnvColor[1] * 255.0F) * ((float) (1 << 11))) >= 0.0F) ? (((unit->EnvColor[1] * 255.0F) * ((float) (1 << 11))) + 0.5F) : (((unit->EnvColor[1] * 255.0F) * ((float) (1 << 11))) - 0.5F)))); info.eb = (((int) ((((unit->EnvColor[2] * 255.0F) * ((float) (1 << 11))) >= 0.0F) ? (((unit->EnvColor[2] * 255.0F) * ((float) (1 << 11))) + 0.5F) : (((unit->EnvColor[2] * 255.0F) * ((float) (1 << 11))) - 0.5F)))); info.ea = (((int) ((((unit->EnvColor[3] * 255.0F) * ((float) (1 << 11))) >= 0.0F) ? (((unit->EnvColor[3] * 255.0F) * ((float) (1 << 11))) + 0.5F) : (((unit->EnvColor[3] * 255.0F) * ((float) (1 << 11))) - 0.5F)))); } if (!info.texture) { return; } switch (info.format) { case MESA_FORMAT_RGB888: info.tbytesline = texImg->Width * 3; break; case MESA_FORMAT_RGBA8888: info.tbytesline = texImg->Width * 4; break; default: _mesa_problem(((void *)0), "Bad texture format in persp_textured_triangle"); return; } info.tsize = texImg->Height * info.tbytesline;
12226       scan_from_left_to_right = (oneOverArea < 0.0F);
12227       span.interpMask |= 0x02;
12228       {
12229          GLfloat eMaj_dz = vMax->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
12230          GLfloat eBot_dz = vMid->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
12231          span.attrStepX[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj_dz * eBot.dy - eMaj.dy * eBot_dz);
12232          if (span.attrStepX[FRAG_ATTRIB_WPOS][2] > maxDepth ||
12233              span.attrStepX[FRAG_ATTRIB_WPOS][2] < -maxDepth) {
12234             span.attrStepX[FRAG_ATTRIB_WPOS][2] = 0.0;
12235             span.attrStepY[FRAG_ATTRIB_WPOS][2] = 0.0;
12236          }
12237          else {
12238             span.attrStepY[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj.dx * eBot_dz - eMaj_dz * eBot.dx);
12239          }
12240          if (depthBits <= 16)
12241             span.zStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))));
12242          else
12243             span.zStep = (GLint) span.attrStepX[FRAG_ATTRIB_WPOS][2];
12244       }
12245       span.interpMask |= 0x01;
12246       if (ctx->Light.ShadeModel == 0x1D01) {
12247          GLfloat eMaj_dr = (GLfloat) (vMax->color[0] - vMin->color[0]);
12248          GLfloat eBot_dr = (GLfloat) (vMid->color[0] - vMin->color[0]);
12249          GLfloat eMaj_dg = (GLfloat) (vMax->color[1] - vMin->color[1]);
12250          GLfloat eBot_dg = (GLfloat) (vMid->color[1] - vMin->color[1]);
12251          GLfloat eMaj_db = (GLfloat) (vMax->color[2] - vMin->color[2]);
12252          GLfloat eBot_db = (GLfloat) (vMid->color[2] - vMin->color[2]);
12253          GLfloat eMaj_da = (GLfloat) (vMax->color[3] - vMin->color[3]);
12254          GLfloat eBot_da = (GLfloat) (vMid->color[3] - vMin->color[3]);
12255          span.attrStepX[FRAG_ATTRIB_COL0][0] = oneOverArea * (eMaj_dr * eBot.dy - eMaj.dy * eBot_dr);
12256          span.attrStepY[FRAG_ATTRIB_COL0][0] = oneOverArea * (eMaj.dx * eBot_dr - eMaj_dr * eBot.dx);
12257          span.attrStepX[FRAG_ATTRIB_COL0][1] = oneOverArea * (eMaj_dg * eBot.dy - eMaj.dy * eBot_dg);
12258          span.attrStepY[FRAG_ATTRIB_COL0][1] = oneOverArea * (eMaj.dx * eBot_dg - eMaj_dg * eBot.dx);
12259          span.attrStepX[FRAG_ATTRIB_COL0][2] = oneOverArea * (eMaj_db * eBot.dy - eMaj.dy * eBot_db);
12260          span.attrStepY[FRAG_ATTRIB_COL0][2] = oneOverArea * (eMaj.dx * eBot_db - eMaj_db * eBot.dx);
12261          span.redStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) - 0.5F))));
12262          span.greenStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) - 0.5F))));
12263          span.blueStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) - 0.5F))));
12264          span.attrStepX[FRAG_ATTRIB_COL0][3] = oneOverArea * (eMaj_da * eBot.dy - eMaj.dy * eBot_da);
12265          span.attrStepY[FRAG_ATTRIB_COL0][3] = oneOverArea * (eMaj.dx * eBot_da - eMaj_da * eBot.dx);
12266          span.alphaStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) - 0.5F))));
12267       }
12268       else {
12269          ;
12270          span.interpMask |= 0x04;
12271          span.attrStepX[FRAG_ATTRIB_COL0][0] = span.attrStepY[FRAG_ATTRIB_COL0][0] = 0.0F;
12272          span.attrStepX[FRAG_ATTRIB_COL0][1] = span.attrStepY[FRAG_ATTRIB_COL0][1] = 0.0F;
12273          span.attrStepX[FRAG_ATTRIB_COL0][2] = span.attrStepY[FRAG_ATTRIB_COL0][2] = 0.0F;
12274   span.redStep = 0;
12275   span.greenStep = 0;
12276   span.blueStep = 0;
12277          span.attrStepX[FRAG_ATTRIB_COL0][3] = span.attrStepY[FRAG_ATTRIB_COL0][3] = 0.0F;
12278   span.alphaStep = 0;
12279       }
12280       {
12281          const GLfloat wMax = vMax->attrib[FRAG_ATTRIB_WPOS][3];
12282          const GLfloat wMin = vMin->attrib[FRAG_ATTRIB_WPOS][3];
12283          const GLfloat wMid = vMid->attrib[FRAG_ATTRIB_WPOS][3];
12284          {
12285             const GLfloat eMaj_dw = wMax - wMin;
12286             const GLfloat eBot_dw = wMid - wMin;
12287             span.attrStepX[FRAG_ATTRIB_WPOS][3] = oneOverArea * (eMaj_dw * eBot.dy - eMaj.dy * eBot_dw);
12288             span.attrStepY[FRAG_ATTRIB_WPOS][3] = oneOverArea * (eMaj.dx * eBot_dw - eMaj_dw * eBot.dx);
12289          }
12290          { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12291             if (swrast->_InterpMode[attr] == 0x1D00) {
12292                do { span.attrStepX[attr][0] = 0.0; span.attrStepX[attr][1] = 0.0; span.attrStepX[attr][2] = 0.0; span.attrStepX[attr][3] = 0.0; } while(0);
12293                do { span.attrStepY[attr][0] = 0.0; span.attrStepY[attr][1] = 0.0; span.attrStepY[attr][2] = 0.0; span.attrStepY[attr][3] = 0.0; } while(0);
12294             }
12295             else {
12296                GLuint c;
12297                for (c = 0; c < 4; c++) {
12298                   GLfloat eMaj_da = vMax->attrib[attr][c] * wMax - vMin->attrib[attr][c] * wMin;
12299                   GLfloat eBot_da = vMid->attrib[attr][c] * wMid - vMin->attrib[attr][c] * wMin;
12300                   span.attrStepX[attr][c] = oneOverArea * (eMaj_da * eBot.dy - eMaj.dy * eBot_da);
12301                   span.attrStepY[attr][c] = oneOverArea * (eMaj.dx * eBot_da - eMaj_da * eBot.dx);
12302                }
12303             }
12304          } }
12305       }
12306       {
12307          GLint subTriangle;
12308          GLfixed fxLeftEdge = 0, fxRightEdge = 0;
12309          GLfixed fdxLeftEdge = 0, fdxRightEdge = 0;
12310          GLfixed fError = 0, fdError = 0;
12311          GLuint zLeft = 0;
12312          GLfixed fdzOuter = 0, fdzInner;
12313          GLint rLeft = 0, fdrOuter = 0, fdrInner;
12314          GLint gLeft = 0, fdgOuter = 0, fdgInner;
12315          GLint bLeft = 0, fdbOuter = 0, fdbInner;
12316          GLint aLeft = 0, fdaOuter = 0, fdaInner;
12317          GLfloat wLeft = 0, dwOuter = 0, dwInner;
12318          GLfloat attrLeft[FRAG_ATTRIB_MAX][4];
12319          GLfloat daOuter[FRAG_ATTRIB_MAX][4], daInner[FRAG_ATTRIB_MAX][4];
12320          for (subTriangle=0; subTriangle<=1; subTriangle++) {
12321             EdgeT *eLeft, *eRight;
12322             int setupLeft, setupRight;
12323             int lines;
12324             if (subTriangle==0) {
12325                if (scan_from_left_to_right) {
12326                   eLeft = &eMaj;
12327                   eRight = &eBot;
12328                   lines = eRight->lines;
12329                   setupLeft = 1;
12330                   setupRight = 1;
12331                }
12332                else {
12333                   eLeft = &eBot;
12334                   eRight = &eMaj;
12335                   lines = eLeft->lines;
12336                   setupLeft = 1;
12337                   setupRight = 1;
12338                }
12339             }
12340             else {
12341                if (scan_from_left_to_right) {
12342                   eLeft = &eMaj;
12343                   eRight = &eTop;
12344                   lines = eRight->lines;
12345                   setupLeft = 0;
12346                   setupRight = 1;
12347                }
12348                else {
12349                   eLeft = &eTop;
12350                   eRight = &eMaj;
12351                   lines = eLeft->lines;
12352                   setupLeft = 1;
12353                   setupRight = 0;
12354                }
12355                if (lines == 0)
12356                   return;
12357             }
12358             if (setupLeft && eLeft->lines > 0) {
12359                const SWvertex *vLower = eLeft->v0;
12360                const GLfixed fsy = eLeft->fsy;
12361                const GLfixed fsx = eLeft->fsx;
12362                const GLfixed fx = (((fsx) + (1 << 11) - 1) & (~((1 << 11) - 1)));
12363                const GLfixed adjx = (GLfixed) (fx - eLeft->fx0);
12364                const GLfixed adjy = (GLfixed) eLeft->adjy;
12365                GLint idxOuter;
12366                GLfloat dxOuter;
12367                GLfixed fdxOuter;
12368                fError = fx - fsx - (1 << 11);
12369                fxLeftEdge = fsx - 1;
12370                fdxLeftEdge = eLeft->fdxdy;
12371                fdxOuter = ((fdxLeftEdge - 1) & (~((1 << 11) - 1)));
12372                fdError = fdxOuter - fdxLeftEdge + (1 << 11);
12373                idxOuter = ((fdxOuter) >> 11);
12374                dxOuter = (GLfloat) idxOuter;
12375                span.y = ((fsy) >> 11);
12376                (void) dxOuter;
12377                (void) adjx;
12378                (void) adjy;
12379                (void) vLower;
12380                {
12381                   GLfloat z0 = vLower->attrib[FRAG_ATTRIB_WPOS][2];
12382                   if (depthBits <= 16) {
12383                      GLfloat tmp = (z0 * ((float) (1 << 11))
12384                                     + span.attrStepX[FRAG_ATTRIB_WPOS][2] * adjx
12385                                     + span.attrStepY[FRAG_ATTRIB_WPOS][2] * adjy) + (1 << (11 -1));
12386                      if (tmp < 0xffffffff / 2)
12387                         zLeft = (GLfixed) tmp;
12388                      else
12389                         zLeft = 0xffffffff / 2;
12390                      fdzOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))))
12391                                                                                                  ;
12392                   }
12393                   else {
12394                      zLeft = (GLuint) (z0 + span.attrStepX[FRAG_ATTRIB_WPOS][2] * ((adjx) * (1.0F / ((float) (1 << 11))))
12395                                           + span.attrStepY[FRAG_ATTRIB_WPOS][2] * ((adjy) * (1.0F / ((float) (1 << 11)))));
12396                      fdzOuter = (GLint) (span.attrStepY[FRAG_ATTRIB_WPOS][2] +
12397                                          dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]);
12398                   }
12399                }
12400                if (ctx->Light.ShadeModel == 0x1D01) {
12401                   rLeft = (GLint)(((vLower->color[0]) << 11)
12402                                   + span.attrStepX[FRAG_ATTRIB_COL0][0] * adjx
12403                                   + span.attrStepY[FRAG_ATTRIB_COL0][0] * adjy) + (1 << (11 -1));
12404                   gLeft = (GLint)(((vLower->color[1]) << 11)
12405                                   + span.attrStepX[FRAG_ATTRIB_COL0][1] * adjx
12406                                   + span.attrStepY[FRAG_ATTRIB_COL0][1] * adjy) + (1 << (11 -1));
12407                   bLeft = (GLint)(((vLower->color[2]) << 11)
12408                                   + span.attrStepX[FRAG_ATTRIB_COL0][2] * adjx
12409                                   + span.attrStepY[FRAG_ATTRIB_COL0][2] * adjy) + (1 << (11 -1));
12410                   fdrOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) - 0.5F))))
12411                                                                                                 ;
12412                   fdgOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) - 0.5F))))
12413                                                                                                 ;
12414                   fdbOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) - 0.5F))))
12415                                                                                                 ;
12416                   aLeft = (GLint)(((vLower->color[3]) << 11)
12417                                   + span.attrStepX[FRAG_ATTRIB_COL0][3] * adjx
12418                                   + span.attrStepY[FRAG_ATTRIB_COL0][3] * adjy) + (1 << (11 -1));
12419                   fdaOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) - 0.5F))))
12420                                                                                                 ;
12421                }
12422                else {
12423                   ;
12424                   rLeft = ((v2->color[0]) << 11);
12425                   gLeft = ((v2->color[1]) << 11);
12426                   bLeft = ((v2->color[2]) << 11);
12427                   fdrOuter = fdgOuter = fdbOuter = 0;
12428                   aLeft = ((v2->color[3]) << 11);
12429                   fdaOuter = 0;
12430                }
12431                {
12432                   const GLuint attr = FRAG_ATTRIB_WPOS;
12433                   wLeft = vLower->attrib[FRAG_ATTRIB_WPOS][3]
12434                         + (span.attrStepX[attr][3] * adjx
12435                            + span.attrStepY[attr][3] * adjy) * (1.0F/((float) (1 << 11)));
12436                   dwOuter = span.attrStepY[attr][3] + dxOuter * span.attrStepX[attr][3];
12437                }
12438                { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12439                   const GLfloat invW = vLower->attrib[FRAG_ATTRIB_WPOS][3];
12440                   if (swrast->_InterpMode[attr] == 0x1D00) {
12441                      GLuint c;
12442                      for (c = 0; c < 4; c++) {
12443                         attrLeft[attr][c] = v2->attrib[attr][c] * invW;
12444                         daOuter[attr][c] = 0.0;
12445                      }
12446                   }
12447                   else {
12448                      GLuint c;
12449                      for (c = 0; c < 4; c++) {
12450                         const GLfloat a = vLower->attrib[attr][c] * invW;
12451                         attrLeft[attr][c] = a + ( span.attrStepX[attr][c] * adjx
12452                                                  + span.attrStepY[attr][c] * adjy) * (1.0F/((float) (1 << 11)));
12453                         daOuter[attr][c] = span.attrStepY[attr][c] + dxOuter * span.attrStepX[attr][c];
12454                      }
12455                   }
12456                } }
12457             }
12458             if (setupRight && eRight->lines>0) {
12459                fxRightEdge = eRight->fsx - 1;
12460                fdxRightEdge = eRight->fdxdy;
12461             }
12462             if (lines==0) {
12463                continue;
12464             }
12465             fdzInner = fdzOuter + span.zStep;
12466             fdrInner = fdrOuter + span.redStep;
12467             fdgInner = fdgOuter + span.greenStep;
12468             fdbInner = fdbOuter + span.blueStep;
12469             fdaInner = fdaOuter + span.alphaStep;
12470             dwInner = dwOuter + span.attrStepX[FRAG_ATTRIB_WPOS][3];
12471             { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12472                GLuint c;
12473                for (c = 0; c < 4; c++) {
12474                   daInner[attr][c] = daOuter[attr][c] + span.attrStepX[attr][c];
12475                }
12476             } }
12477             while (lines > 0) {
12478                const GLint right = ((fxRightEdge) >> 11);
12479                span.x = ((fxLeftEdge) >> 11);
12480                if (right <= span.x)
12481                   span.end = 0;
12482                else
12483                   span.end = right - span.x;
12484                span.z = zLeft;
12485                span.red = rLeft;
12486                span.green = gLeft;
12487                span.blue = bLeft;
12488                span.alpha = aLeft;
12489                span.attrStart[FRAG_ATTRIB_WPOS][3] = wLeft;
12490                { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12491                   GLuint c;
12492                   for (c = 0; c < 4; c++) {
12493                      span.attrStart[attr][c] = attrLeft[attr][c];
12494                   }
12495                } }
12496                if (span.end > 0 && span.y >= 0) {
12497                   const GLint len = span.end - 1;
12498                   (void) len;
12499                   do { GLfixed endVal = span.red + (len) * span.redStep; if (endVal < 0) { span.red -= endVal; } if (span.red < 0) { span.red = 0; } } while (0);
12500                   do { GLfixed endVal = span.green + (len) * span.greenStep; if (endVal < 0) { span.green -= endVal; } if (span.green < 0) { span.green = 0; } } while (0);
12501                   do { GLfixed endVal = span.blue + (len) * span.blueStep; if (endVal < 0) { span.blue -= endVal; } if (span.blue < 0) { span.blue = 0; } } while (0);
12502                   do { GLfixed endVal = span.alpha + (len) * span.alphaStep; if (endVal < 0) { span.alpha -= endVal; } if (span.alpha < 0) { span.alpha = 0; } } while (0);
12503                   {
12504                      span.interpMask &= ~0x01; span.arrayMask |= 0x01; fast_persp_span(ctx, &span, &info);;
12505                   }
12506                }
12507                span.y++;
12508                lines--;
12509                fxLeftEdge += fdxLeftEdge;
12510                fxRightEdge += fdxRightEdge;
12511                fError += fdError;
12512                if (fError >= 0) {
12513                   fError -= (1 << 11);
12514                   zLeft += fdzOuter;
12515                   rLeft += fdrOuter;
12516                   gLeft += fdgOuter;
12517                   bLeft += fdbOuter;
12518                   aLeft += fdaOuter;
12519                   wLeft += dwOuter;
12520                   { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12521                      GLuint c;
12522                      for (c = 0; c < 4; c++) {
12523                         attrLeft[attr][c] += daOuter[attr][c];
12524                      }
12525                   } }
12526                }
12527                else {
12528                   zLeft += fdzInner;
12529                   rLeft += fdrInner;
12530                   gLeft += fdgInner;
12531                   bLeft += fdbInner;
12532                   aLeft += fdaInner;
12533                   wLeft += dwInner;
12534                   { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12535                      GLuint c;
12536                      for (c = 0; c < 4; c++) {
12537                         attrLeft[attr][c] += daInner[attr][c];
12538                      }
12539                   } }
12540                }
12541             }
12542          }
12543       }
12544    }
12545 }
12546 static void general_triangle(struct gl_context *ctx, const SWvertex *v0,
12547                                  const SWvertex *v1,
12548                                  const SWvertex *v2 )
12549 {
12550    typedef struct {
12551       const SWvertex *v0, *v1;
12552       GLfloat dx;
12553       GLfloat dy;
12554       GLfloat dxdy;
12555       GLfixed fdxdy;
12556       GLfloat adjy;
12557       GLfixed fsx;
12558       GLfixed fsy;
12559       GLfixed fx0;
12560       GLint lines;
12561    } EdgeT;
12562    const SWcontext *swrast = SWRAST_CONTEXT(ctx);
12563    const GLint depthBits = ctx->DrawBuffer->Visual.depthBits;
12564    const GLint fixedToDepthShift = depthBits <= 16 ? 11 : 0;
12565    const GLfloat maxDepth = ctx->DrawBuffer->_DepthMaxF;
12566    EdgeT eMaj, eTop, eBot;
12567    GLfloat oneOverArea;
12568    const SWvertex *vMin, *vMid, *vMax;
12569    GLfloat bf = SWRAST_CONTEXT(ctx)->_BackfaceSign;
12570    const GLint snapMask = ~(((1 << 11) / (1 << 4)) - 1);
12571    GLfixed vMin_fx, vMin_fy, vMid_fx, vMid_fy, vMax_fx, vMax_fy;
12572    SWspan span;
12573    (void) swrast;
12574    do { (span).primitive = (0x0009); (span).interpMask = 0x0; (span).arrayMask = 0x0; (span).arrayAttribs = 0x0; (span).end = 0; (span).leftClip = 0; (span).facing = 0; (span).array = SWRAST_CONTEXT(ctx)->SpanArrays; } while (0);
12575    span.y = 0;
12576    (void) fixedToDepthShift;
12577    {
12578       const GLfixed fy0 = (((int) ((((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12579       const GLfixed fy1 = (((int) ((((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12580       const GLfixed fy2 = (((int) ((((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12581       if (fy0 <= fy1) {
12582          if (fy1 <= fy2) {
12583             vMin = v0; vMid = v1; vMax = v2;
12584             vMin_fy = fy0; vMid_fy = fy1; vMax_fy = fy2;
12585          }
12586          else if (fy2 <= fy0) {
12587             vMin = v2; vMid = v0; vMax = v1;
12588             vMin_fy = fy2; vMid_fy = fy0; vMax_fy = fy1;
12589          }
12590          else {
12591             vMin = v0; vMid = v2; vMax = v1;
12592             vMin_fy = fy0; vMid_fy = fy2; vMax_fy = fy1;
12593             bf = -bf;
12594          }
12595       }
12596       else {
12597          if (fy0 <= fy2) {
12598             vMin = v1; vMid = v0; vMax = v2;
12599             vMin_fy = fy1; vMid_fy = fy0; vMax_fy = fy2;
12600             bf = -bf;
12601          }
12602          else if (fy2 <= fy1) {
12603             vMin = v2; vMid = v1; vMax = v0;
12604             vMin_fy = fy2; vMid_fy = fy1; vMax_fy = fy0;
12605             bf = -bf;
12606          }
12607          else {
12608             vMin = v1; vMid = v2; vMax = v0;
12609             vMin_fy = fy1; vMid_fy = fy2; vMax_fy = fy0;
12610          }
12611       }
12612       vMin_fx = (((int) ((((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12613       vMid_fx = (((int) ((((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12614       vMax_fx = (((int) ((((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
12615    }
12616    eMaj.v0 = vMin; eMaj.v1 = vMax;
12617    eTop.v0 = vMid; eTop.v1 = vMax;
12618    eBot.v0 = vMin; eBot.v1 = vMid;
12619    eMaj.dx = ((vMax_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
12620    eMaj.dy = ((vMax_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
12621    eTop.dx = ((vMax_fx - vMid_fx) * (1.0F / ((float) (1 << 11))));
12622    eTop.dy = ((vMax_fy - vMid_fy) * (1.0F / ((float) (1 << 11))));
12623    eBot.dx = ((vMid_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
12624    eBot.dy = ((vMid_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
12625    {
12626       const GLfloat area = eMaj.dx * eBot.dy - eBot.dx * eMaj.dy;
12627       if (IS_INF_OR_NAN(area) || area == 0.0F)
12628          return;
12629       if (area * bf * swrast->_BackfaceCullSign < 0.0)
12630          return;
12631       oneOverArea = 1.0F / area;
12632       span.facing = oneOverArea * bf > 0.0F;
12633    }
12634    {
12635       eMaj.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
12636       eMaj.lines = (((((vMax_fy - eMaj.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
12637       if (eMaj.lines > 0) {
12638          eMaj.dxdy = eMaj.dx / eMaj.dy;
12639          eMaj.fdxdy = (((int) ((((eMaj.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eMaj.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eMaj.dxdy) * ((float) (1 << 11))) - 0.5F))));
12640          eMaj.adjy = (GLfloat) (eMaj.fsy - vMin_fy);
12641          eMaj.fx0 = vMin_fx;
12642          eMaj.fsx = eMaj.fx0 + (GLfixed) (eMaj.adjy * eMaj.dxdy);
12643       }
12644       else {
12645          return;
12646       }
12647       eTop.fsy = (((vMid_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
12648       eTop.lines = (((((vMax_fy - eTop.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
12649       if (eTop.lines > 0) {
12650          eTop.dxdy = eTop.dx / eTop.dy;
12651          eTop.fdxdy = (((int) ((((eTop.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eTop.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eTop.dxdy) * ((float) (1 << 11))) - 0.5F))));
12652          eTop.adjy = (GLfloat) (eTop.fsy - vMid_fy);
12653          eTop.fx0 = vMid_fx;
12654          eTop.fsx = eTop.fx0 + (GLfixed) (eTop.adjy * eTop.dxdy);
12655       }
12656       eBot.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
12657       eBot.lines = (((((vMid_fy - eBot.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
12658       if (eBot.lines > 0) {
12659          eBot.dxdy = eBot.dx / eBot.dy;
12660          eBot.fdxdy = (((int) ((((eBot.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eBot.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eBot.dxdy) * ((float) (1 << 11))) - 0.5F))));
12661          eBot.adjy = (GLfloat) (eBot.fsy - vMin_fy);
12662          eBot.fx0 = vMin_fx;
12663          eBot.fsx = eBot.fx0 + (GLfixed) (eBot.adjy * eBot.dxdy);
12664       }
12665    }
12666    {
12667       GLint scan_from_left_to_right;
12668       scan_from_left_to_right = (oneOverArea < 0.0F);
12669       span.interpMask |= 0x02;
12670       {
12671          GLfloat eMaj_dz = vMax->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
12672          GLfloat eBot_dz = vMid->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
12673          span.attrStepX[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj_dz * eBot.dy - eMaj.dy * eBot_dz);
12674          if (span.attrStepX[FRAG_ATTRIB_WPOS][2] > maxDepth ||
12675              span.attrStepX[FRAG_ATTRIB_WPOS][2] < -maxDepth) {
12676             span.attrStepX[FRAG_ATTRIB_WPOS][2] = 0.0;
12677             span.attrStepY[FRAG_ATTRIB_WPOS][2] = 0.0;
12678          }
12679          else {
12680             span.attrStepY[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj.dx * eBot_dz - eMaj_dz * eBot.dx);
12681          }
12682          if (depthBits <= 16)
12683             span.zStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))));
12684          else
12685             span.zStep = (GLint) span.attrStepX[FRAG_ATTRIB_WPOS][2];
12686       }
12687       span.interpMask |= 0x01;
12688       if (ctx->Light.ShadeModel == 0x1D01) {
12689          GLfloat eMaj_dr = (GLfloat) (vMax->color[0] - vMin->color[0]);
12690          GLfloat eBot_dr = (GLfloat) (vMid->color[0] - vMin->color[0]);
12691          GLfloat eMaj_dg = (GLfloat) (vMax->color[1] - vMin->color[1]);
12692          GLfloat eBot_dg = (GLfloat) (vMid->color[1] - vMin->color[1]);
12693          GLfloat eMaj_db = (GLfloat) (vMax->color[2] - vMin->color[2]);
12694          GLfloat eBot_db = (GLfloat) (vMid->color[2] - vMin->color[2]);
12695          GLfloat eMaj_da = (GLfloat) (vMax->color[3] - vMin->color[3]);
12696          GLfloat eBot_da = (GLfloat) (vMid->color[3] - vMin->color[3]);
12697          span.attrStepX[FRAG_ATTRIB_COL0][0] = oneOverArea * (eMaj_dr * eBot.dy - eMaj.dy * eBot_dr);
12698          span.attrStepY[FRAG_ATTRIB_COL0][0] = oneOverArea * (eMaj.dx * eBot_dr - eMaj_dr * eBot.dx);
12699          span.attrStepX[FRAG_ATTRIB_COL0][1] = oneOverArea * (eMaj_dg * eBot.dy - eMaj.dy * eBot_dg);
12700          span.attrStepY[FRAG_ATTRIB_COL0][1] = oneOverArea * (eMaj.dx * eBot_dg - eMaj_dg * eBot.dx);
12701          span.attrStepX[FRAG_ATTRIB_COL0][2] = oneOverArea * (eMaj_db * eBot.dy - eMaj.dy * eBot_db);
12702          span.attrStepY[FRAG_ATTRIB_COL0][2] = oneOverArea * (eMaj.dx * eBot_db - eMaj_db * eBot.dx);
12703          span.redStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) - 0.5F))));
12704          span.greenStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) - 0.5F))));
12705          span.blueStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) - 0.5F))));
12706          span.attrStepX[FRAG_ATTRIB_COL0][3] = oneOverArea * (eMaj_da * eBot.dy - eMaj.dy * eBot_da);
12707          span.attrStepY[FRAG_ATTRIB_COL0][3] = oneOverArea * (eMaj.dx * eBot_da - eMaj_da * eBot.dx);
12708          span.alphaStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) - 0.5F))));
12709       }
12710       else {
12711          ;
12712          span.interpMask |= 0x04;
12713          span.attrStepX[FRAG_ATTRIB_COL0][0] = span.attrStepY[FRAG_ATTRIB_COL0][0] = 0.0F;
12714          span.attrStepX[FRAG_ATTRIB_COL0][1] = span.attrStepY[FRAG_ATTRIB_COL0][1] = 0.0F;
12715          span.attrStepX[FRAG_ATTRIB_COL0][2] = span.attrStepY[FRAG_ATTRIB_COL0][2] = 0.0F;
12716   span.redStep = 0;
12717   span.greenStep = 0;
12718   span.blueStep = 0;
12719          span.attrStepX[FRAG_ATTRIB_COL0][3] = span.attrStepY[FRAG_ATTRIB_COL0][3] = 0.0F;
12720   span.alphaStep = 0;
12721       }
12722       {
12723          const GLfloat wMax = vMax->attrib[FRAG_ATTRIB_WPOS][3];
12724          const GLfloat wMin = vMin->attrib[FRAG_ATTRIB_WPOS][3];
12725          const GLfloat wMid = vMid->attrib[FRAG_ATTRIB_WPOS][3];
12726          {
12727             const GLfloat eMaj_dw = wMax - wMin;
12728             const GLfloat eBot_dw = wMid - wMin;
12729             span.attrStepX[FRAG_ATTRIB_WPOS][3] = oneOverArea * (eMaj_dw * eBot.dy - eMaj.dy * eBot_dw);
12730             span.attrStepY[FRAG_ATTRIB_WPOS][3] = oneOverArea * (eMaj.dx * eBot_dw - eMaj_dw * eBot.dx);
12731          }
12732          { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12733             if (swrast->_InterpMode[attr] == 0x1D00) {
12734                do { span.attrStepX[attr][0] = 0.0; span.attrStepX[attr][1] = 0.0; span.attrStepX[attr][2] = 0.0; span.attrStepX[attr][3] = 0.0; } while(0);
12735                do { span.attrStepY[attr][0] = 0.0; span.attrStepY[attr][1] = 0.0; span.attrStepY[attr][2] = 0.0; span.attrStepY[attr][3] = 0.0; } while(0);
12736             }
12737             else {
12738                GLuint c;
12739                for (c = 0; c < 4; c++) {
12740                   GLfloat eMaj_da = vMax->attrib[attr][c] * wMax - vMin->attrib[attr][c] * wMin;
12741                   GLfloat eBot_da = vMid->attrib[attr][c] * wMid - vMin->attrib[attr][c] * wMin;
12742                   span.attrStepX[attr][c] = oneOverArea * (eMaj_da * eBot.dy - eMaj.dy * eBot_da);
12743                   span.attrStepY[attr][c] = oneOverArea * (eMaj.dx * eBot_da - eMaj_da * eBot.dx);
12744                }
12745             }
12746          } }
12747       }
12748       {
12749          GLint subTriangle;
12750          GLfixed fxLeftEdge = 0, fxRightEdge = 0;
12751          GLfixed fdxLeftEdge = 0, fdxRightEdge = 0;
12752          GLfixed fError = 0, fdError = 0;
12753          GLuint zLeft = 0;
12754          GLfixed fdzOuter = 0, fdzInner;
12755          GLint rLeft = 0, fdrOuter = 0, fdrInner;
12756          GLint gLeft = 0, fdgOuter = 0, fdgInner;
12757          GLint bLeft = 0, fdbOuter = 0, fdbInner;
12758          GLint aLeft = 0, fdaOuter = 0, fdaInner;
12759          GLfloat wLeft = 0, dwOuter = 0, dwInner;
12760          GLfloat attrLeft[FRAG_ATTRIB_MAX][4];
12761          GLfloat daOuter[FRAG_ATTRIB_MAX][4], daInner[FRAG_ATTRIB_MAX][4];
12762          for (subTriangle=0; subTriangle<=1; subTriangle++) {
12763             EdgeT *eLeft, *eRight;
12764             int setupLeft, setupRight;
12765             int lines;
12766             if (subTriangle==0) {
12767                if (scan_from_left_to_right) {
12768                   eLeft = &eMaj;
12769                   eRight = &eBot;
12770                   lines = eRight->lines;
12771                   setupLeft = 1;
12772                   setupRight = 1;
12773                }
12774                else {
12775                   eLeft = &eBot;
12776                   eRight = &eMaj;
12777                   lines = eLeft->lines;
12778                   setupLeft = 1;
12779                   setupRight = 1;
12780                }
12781             }
12782             else {
12783                if (scan_from_left_to_right) {
12784                   eLeft = &eMaj;
12785                   eRight = &eTop;
12786                   lines = eRight->lines;
12787                   setupLeft = 0;
12788                   setupRight = 1;
12789                }
12790                else {
12791                   eLeft = &eTop;
12792                   eRight = &eMaj;
12793                   lines = eLeft->lines;
12794                   setupLeft = 1;
12795                   setupRight = 0;
12796                }
12797                if (lines == 0)
12798                   return;
12799             }
12800             if (setupLeft && eLeft->lines > 0) {
12801                const SWvertex *vLower = eLeft->v0;
12802                const GLfixed fsy = eLeft->fsy;
12803                const GLfixed fsx = eLeft->fsx;
12804                const GLfixed fx = (((fsx) + (1 << 11) - 1) & (~((1 << 11) - 1)));
12805                const GLfixed adjx = (GLfixed) (fx - eLeft->fx0);
12806                const GLfixed adjy = (GLfixed) eLeft->adjy;
12807                GLint idxOuter;
12808                GLfloat dxOuter;
12809                GLfixed fdxOuter;
12810                fError = fx - fsx - (1 << 11);
12811                fxLeftEdge = fsx - 1;
12812                fdxLeftEdge = eLeft->fdxdy;
12813                fdxOuter = ((fdxLeftEdge - 1) & (~((1 << 11) - 1)));
12814                fdError = fdxOuter - fdxLeftEdge + (1 << 11);
12815                idxOuter = ((fdxOuter) >> 11);
12816                dxOuter = (GLfloat) idxOuter;
12817                span.y = ((fsy) >> 11);
12818                (void) dxOuter;
12819                (void) adjx;
12820                (void) adjy;
12821                (void) vLower;
12822                {
12823                   GLfloat z0 = vLower->attrib[FRAG_ATTRIB_WPOS][2];
12824                   if (depthBits <= 16) {
12825                      GLfloat tmp = (z0 * ((float) (1 << 11))
12826                                     + span.attrStepX[FRAG_ATTRIB_WPOS][2] * adjx
12827                                     + span.attrStepY[FRAG_ATTRIB_WPOS][2] * adjy) + (1 << (11 -1));
12828                      if (tmp < 0xffffffff / 2)
12829                         zLeft = (GLfixed) tmp;
12830                      else
12831                         zLeft = 0xffffffff / 2;
12832                      fdzOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))))
12833                                                                                                  ;
12834                   }
12835                   else {
12836                      zLeft = (GLuint) (z0 + span.attrStepX[FRAG_ATTRIB_WPOS][2] * ((adjx) * (1.0F / ((float) (1 << 11))))
12837                                           + span.attrStepY[FRAG_ATTRIB_WPOS][2] * ((adjy) * (1.0F / ((float) (1 << 11)))));
12838                      fdzOuter = (GLint) (span.attrStepY[FRAG_ATTRIB_WPOS][2] +
12839                                          dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]);
12840                   }
12841                }
12842                if (ctx->Light.ShadeModel == 0x1D01) {
12843                   rLeft = (GLint)(((vLower->color[0]) << 11)
12844                                   + span.attrStepX[FRAG_ATTRIB_COL0][0] * adjx
12845                                   + span.attrStepY[FRAG_ATTRIB_COL0][0] * adjy) + (1 << (11 -1));
12846                   gLeft = (GLint)(((vLower->color[1]) << 11)
12847                                   + span.attrStepX[FRAG_ATTRIB_COL0][1] * adjx
12848                                   + span.attrStepY[FRAG_ATTRIB_COL0][1] * adjy) + (1 << (11 -1));
12849                   bLeft = (GLint)(((vLower->color[2]) << 11)
12850                                   + span.attrStepX[FRAG_ATTRIB_COL0][2] * adjx
12851                                   + span.attrStepY[FRAG_ATTRIB_COL0][2] * adjy) + (1 << (11 -1));
12852                   fdrOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][0] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][0]) * ((float) (1 << 11))) - 0.5F))))
12853                                                                                                 ;
12854                   fdgOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][1] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][1]) * ((float) (1 << 11))) - 0.5F))))
12855                                                                                                 ;
12856                   fdbOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][2]) * ((float) (1 << 11))) - 0.5F))))
12857                                                                                                 ;
12858                   aLeft = (GLint)(((vLower->color[3]) << 11)
12859                                   + span.attrStepX[FRAG_ATTRIB_COL0][3] * adjx
12860                                   + span.attrStepY[FRAG_ATTRIB_COL0][3] * adjy) + (1 << (11 -1));
12861                   fdaOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_COL0][3] + dxOuter * span.attrStepX[FRAG_ATTRIB_COL0][3]) * ((float) (1 << 11))) - 0.5F))))
12862                                                                                                 ;
12863                }
12864                else {
12865                   ;
12866                   rLeft = ((v2->color[0]) << 11);
12867                   gLeft = ((v2->color[1]) << 11);
12868                   bLeft = ((v2->color[2]) << 11);
12869                   fdrOuter = fdgOuter = fdbOuter = 0;
12870                   aLeft = ((v2->color[3]) << 11);
12871                   fdaOuter = 0;
12872                }
12873                {
12874                   const GLuint attr = FRAG_ATTRIB_WPOS;
12875                   wLeft = vLower->attrib[FRAG_ATTRIB_WPOS][3]
12876                         + (span.attrStepX[attr][3] * adjx
12877                            + span.attrStepY[attr][3] * adjy) * (1.0F/((float) (1 << 11)));
12878                   dwOuter = span.attrStepY[attr][3] + dxOuter * span.attrStepX[attr][3];
12879                }
12880                { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12881                   const GLfloat invW = vLower->attrib[FRAG_ATTRIB_WPOS][3];
12882                   if (swrast->_InterpMode[attr] == 0x1D00) {
12883                      GLuint c;
12884                      for (c = 0; c < 4; c++) {
12885                         attrLeft[attr][c] = v2->attrib[attr][c] * invW;
12886                         daOuter[attr][c] = 0.0;
12887                      }
12888                   }
12889                   else {
12890                      GLuint c;
12891                      for (c = 0; c < 4; c++) {
12892                         const GLfloat a = vLower->attrib[attr][c] * invW;
12893                         attrLeft[attr][c] = a + ( span.attrStepX[attr][c] * adjx
12894                                                  + span.attrStepY[attr][c] * adjy) * (1.0F/((float) (1 << 11)));
12895                         daOuter[attr][c] = span.attrStepY[attr][c] + dxOuter * span.attrStepX[attr][c];
12896                      }
12897                   }
12898                } }
12899             }
12900             if (setupRight && eRight->lines>0) {
12901                fxRightEdge = eRight->fsx - 1;
12902                fdxRightEdge = eRight->fdxdy;
12903             }
12904             if (lines==0) {
12905                continue;
12906             }
12907             fdzInner = fdzOuter + span.zStep;
12908             fdrInner = fdrOuter + span.redStep;
12909             fdgInner = fdgOuter + span.greenStep;
12910             fdbInner = fdbOuter + span.blueStep;
12911             fdaInner = fdaOuter + span.alphaStep;
12912             dwInner = dwOuter + span.attrStepX[FRAG_ATTRIB_WPOS][3];
12913             { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12914                GLuint c;
12915                for (c = 0; c < 4; c++) {
12916                   daInner[attr][c] = daOuter[attr][c] + span.attrStepX[attr][c];
12917                }
12918             } }
12919             while (lines > 0) {
12920                const GLint right = ((fxRightEdge) >> 11);
12921                span.x = ((fxLeftEdge) >> 11);
12922                if (right <= span.x)
12923                   span.end = 0;
12924                else
12925                   span.end = right - span.x;
12926                span.z = zLeft;
12927                span.red = rLeft;
12928                span.green = gLeft;
12929                span.blue = bLeft;
12930                span.alpha = aLeft;
12931                span.attrStart[FRAG_ATTRIB_WPOS][3] = wLeft;
12932                { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12933                   GLuint c;
12934                   for (c = 0; c < 4; c++) {
12935                      span.attrStart[attr][c] = attrLeft[attr][c];
12936                   }
12937                } }
12938                if (span.end > 0 && span.y >= 0) {
12939                   const GLint len = span.end - 1;
12940                   (void) len;
12941                   do { GLfixed endVal = span.red + (len) * span.redStep; if (endVal < 0) { span.red -= endVal; } if (span.red < 0) { span.red = 0; } } while (0);
12942                   do { GLfixed endVal = span.green + (len) * span.greenStep; if (endVal < 0) { span.green -= endVal; } if (span.green < 0) { span.green = 0; } } while (0);
12943                   do { GLfixed endVal = span.blue + (len) * span.blueStep; if (endVal < 0) { span.blue -= endVal; } if (span.blue < 0) { span.blue = 0; } } while (0);
12944                   do { GLfixed endVal = span.alpha + (len) * span.alphaStep; if (endVal < 0) { span.alpha -= endVal; } if (span.alpha < 0) { span.alpha = 0; } } while (0);
12945                   {
12946                      _swrast_write_rgba_span(ctx, &span);;
12947                   }
12948                }
12949                span.y++;
12950                lines--;
12951                fxLeftEdge += fdxLeftEdge;
12952                fxRightEdge += fdxRightEdge;
12953                fError += fdError;
12954                if (fError >= 0) {
12955                   fError -= (1 << 11);
12956                   zLeft += fdzOuter;
12957                   rLeft += fdrOuter;
12958                   gLeft += fdgOuter;
12959                   bLeft += fdbOuter;
12960                   aLeft += fdaOuter;
12961                   wLeft += dwOuter;
12962                   { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12963                      GLuint c;
12964                      for (c = 0; c < 4; c++) {
12965                         attrLeft[attr][c] += daOuter[attr][c];
12966                      }
12967                   } }
12968                }
12969                else {
12970                   zLeft += fdzInner;
12971                   rLeft += fdrInner;
12972                   gLeft += fdgInner;
12973                   bLeft += fdbInner;
12974                   aLeft += fdaInner;
12975                   wLeft += dwInner;
12976                   { GLuint a; for (a = 0; a < swrast->_NumActiveAttribs; a++) { const GLuint attr = swrast->_ActiveAttribs[a];
12977                      GLuint c;
12978                      for (c = 0; c < 4; c++) {
12979                         attrLeft[attr][c] += daInner[attr][c];
12980                      }
12981                   } }
12982                }
12983             }
12984          }
12985       }
12986    }
12987 }
12988 static void occlusion_zless_triangle(struct gl_context *ctx, const SWvertex *v0,
12989                                  const SWvertex *v1,
12990                                  const SWvertex *v2 )
12991 {
12992    typedef struct {
12993       const SWvertex *v0, *v1;
12994       GLfloat dx;
12995       GLfloat dy;
12996       GLfloat dxdy;
12997       GLfixed fdxdy;
12998       GLfloat adjy;
12999       GLfixed fsx;
13000       GLfixed fsy;
13001       GLfixed fx0;
13002       GLint lines;
13003    } EdgeT;
13004    const SWcontext *swrast = SWRAST_CONTEXT(ctx);
13005    const GLint depthBits = ctx->DrawBuffer->Visual.depthBits;
13006    const GLint fixedToDepthShift = depthBits <= 16 ? 11 : 0;
13007    const GLfloat maxDepth = ctx->DrawBuffer->_DepthMaxF;
13008    EdgeT eMaj, eTop, eBot;
13009    GLfloat oneOverArea;
13010    const SWvertex *vMin, *vMid, *vMax;
13011    GLfloat bf = SWRAST_CONTEXT(ctx)->_BackfaceSign;
13012    const GLint snapMask = ~(((1 << 11) / (1 << 4)) - 1);
13013    GLfixed vMin_fx, vMin_fy, vMid_fx, vMid_fy, vMax_fx, vMax_fy;
13014    SWspan span;
13015    (void) swrast;
13016    do { (span).primitive = (0x0009); (span).interpMask = 0x0; (span).arrayMask = 0x0; (span).arrayAttribs = 0x0; (span).end = 0; (span).leftClip = 0; (span).facing = 0; (span).array = SWRAST_CONTEXT(ctx)->SpanArrays; } while (0);
13017    span.y = 0;
13018    (void) fixedToDepthShift;
13019    {
13020       const GLfixed fy0 = (((int) ((((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v0->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
13021       const GLfixed fy1 = (((int) ((((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v1->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
13022       const GLfixed fy2 = (((int) ((((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) + 0.5F) : (((v2->attrib[FRAG_ATTRIB_WPOS][1] - 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
13023       if (fy0 <= fy1) {
13024          if (fy1 <= fy2) {
13025             vMin = v0; vMid = v1; vMax = v2;
13026             vMin_fy = fy0; vMid_fy = fy1; vMax_fy = fy2;
13027          }
13028          else if (fy2 <= fy0) {
13029             vMin = v2; vMid = v0; vMax = v1;
13030             vMin_fy = fy2; vMid_fy = fy0; vMax_fy = fy1;
13031          }
13032          else {
13033             vMin = v0; vMid = v2; vMax = v1;
13034             vMin_fy = fy0; vMid_fy = fy2; vMax_fy = fy1;
13035             bf = -bf;
13036          }
13037       }
13038       else {
13039          if (fy0 <= fy2) {
13040             vMin = v1; vMid = v0; vMax = v2;
13041             vMin_fy = fy1; vMid_fy = fy0; vMax_fy = fy2;
13042             bf = -bf;
13043          }
13044          else if (fy2 <= fy1) {
13045             vMin = v2; vMid = v1; vMax = v0;
13046             vMin_fy = fy2; vMid_fy = fy1; vMax_fy = fy0;
13047             bf = -bf;
13048          }
13049          else {
13050             vMin = v1; vMid = v2; vMax = v0;
13051             vMin_fy = fy1; vMid_fy = fy2; vMax_fy = fy0;
13052          }
13053       }
13054       vMin_fx = (((int) ((((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMin->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
13055       vMid_fx = (((int) ((((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMid->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
13056       vMax_fx = (((int) ((((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) >= 0.0F) ? (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) + 0.5F) : (((vMax->attrib[FRAG_ATTRIB_WPOS][0] + 0.5F) * ((float) (1 << 11))) - 0.5F)))) & snapMask;
13057    }
13058    eMaj.v0 = vMin; eMaj.v1 = vMax;
13059    eTop.v0 = vMid; eTop.v1 = vMax;
13060    eBot.v0 = vMin; eBot.v1 = vMid;
13061    eMaj.dx = ((vMax_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
13062    eMaj.dy = ((vMax_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
13063    eTop.dx = ((vMax_fx - vMid_fx) * (1.0F / ((float) (1 << 11))));
13064    eTop.dy = ((vMax_fy - vMid_fy) * (1.0F / ((float) (1 << 11))));
13065    eBot.dx = ((vMid_fx - vMin_fx) * (1.0F / ((float) (1 << 11))));
13066    eBot.dy = ((vMid_fy - vMin_fy) * (1.0F / ((float) (1 << 11))));
13067    {
13068       const GLfloat area = eMaj.dx * eBot.dy - eBot.dx * eMaj.dy;
13069       if (IS_INF_OR_NAN(area) || area == 0.0F)
13070          return;
13071       if (area * bf * swrast->_BackfaceCullSign < 0.0)
13072          return;
13073       oneOverArea = 1.0F / area;
13074       span.facing = oneOverArea * bf > 0.0F;
13075    }
13076    {
13077       eMaj.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
13078       eMaj.lines = (((((vMax_fy - eMaj.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
13079       if (eMaj.lines > 0) {
13080          eMaj.dxdy = eMaj.dx / eMaj.dy;
13081          eMaj.fdxdy = (((int) ((((eMaj.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eMaj.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eMaj.dxdy) * ((float) (1 << 11))) - 0.5F))));
13082          eMaj.adjy = (GLfloat) (eMaj.fsy - vMin_fy);
13083          eMaj.fx0 = vMin_fx;
13084          eMaj.fsx = eMaj.fx0 + (GLfixed) (eMaj.adjy * eMaj.dxdy);
13085       }
13086       else {
13087          return;
13088       }
13089       eTop.fsy = (((vMid_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
13090       eTop.lines = (((((vMax_fy - eTop.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
13091       if (eTop.lines > 0) {
13092          eTop.dxdy = eTop.dx / eTop.dy;
13093          eTop.fdxdy = (((int) ((((eTop.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eTop.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eTop.dxdy) * ((float) (1 << 11))) - 0.5F))));
13094          eTop.adjy = (GLfloat) (eTop.fsy - vMid_fy);
13095          eTop.fx0 = vMid_fx;
13096          eTop.fsx = eTop.fx0 + (GLfixed) (eTop.adjy * eTop.dxdy);
13097       }
13098       eBot.fsy = (((vMin_fy) + (1 << 11) - 1) & (~((1 << 11) - 1)));
13099       eBot.lines = (((((vMid_fy - eBot.fsy) + (1 << 11) - 1) & (~((1 << 11) - 1)))) >> 11);
13100       if (eBot.lines > 0) {
13101          eBot.dxdy = eBot.dx / eBot.dy;
13102          eBot.fdxdy = (((int) ((((eBot.dxdy) * ((float) (1 << 11))) >= 0.0F) ? (((eBot.dxdy) * ((float) (1 << 11))) + 0.5F) : (((eBot.dxdy) * ((float) (1 << 11))) - 0.5F))));
13103          eBot.adjy = (GLfloat) (eBot.fsy - vMin_fy);
13104          eBot.fx0 = vMin_fx;
13105          eBot.fsx = eBot.fx0 + (GLfixed) (eBot.adjy * eBot.dxdy);
13106       }
13107    }
13108    {
13109       GLint scan_from_left_to_right;
13110       struct gl_renderbuffer *rb = ctx->DrawBuffer->_DepthBuffer; struct gl_query_object *q = ctx->Query.CurrentOcclusionObject; ; ; ; if (!q) { return; }
13111       scan_from_left_to_right = (oneOverArea < 0.0F);
13112       span.interpMask |= 0x02;
13113       {
13114          GLfloat eMaj_dz = vMax->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
13115          GLfloat eBot_dz = vMid->attrib[FRAG_ATTRIB_WPOS][2] - vMin->attrib[FRAG_ATTRIB_WPOS][2];
13116          span.attrStepX[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj_dz * eBot.dy - eMaj.dy * eBot_dz);
13117          if (span.attrStepX[FRAG_ATTRIB_WPOS][2] > maxDepth ||
13118              span.attrStepX[FRAG_ATTRIB_WPOS][2] < -maxDepth) {
13119             span.attrStepX[FRAG_ATTRIB_WPOS][2] = 0.0;
13120             span.attrStepY[FRAG_ATTRIB_WPOS][2] = 0.0;
13121          }
13122          else {
13123             span.attrStepY[FRAG_ATTRIB_WPOS][2] = oneOverArea * (eMaj.dx * eBot_dz - eMaj_dz * eBot.dx);
13124          }
13125          if (depthBits <= 16)
13126             span.zStep = (((int) ((((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))));
13127          else
13128             span.zStep = (GLint) span.attrStepX[FRAG_ATTRIB_WPOS][2];
13129       }
13130       {
13131          GLint subTriangle;
13132          GLfixed fxLeftEdge = 0, fxRightEdge = 0;
13133          GLfixed fdxLeftEdge = 0, fdxRightEdge = 0;
13134          GLfixed fError = 0, fdError = 0;
13135          GLuint zLeft = 0;
13136          GLfixed fdzOuter = 0, fdzInner;
13137          for (subTriangle=0; subTriangle<=1; subTriangle++) {
13138             EdgeT *eLeft, *eRight;
13139             int setupLeft, setupRight;
13140             int lines;
13141             if (subTriangle==0) {
13142                if (scan_from_left_to_right) {
13143                   eLeft = &eMaj;
13144                   eRight = &eBot;
13145                   lines = eRight->lines;
13146                   setupLeft = 1;
13147                   setupRight = 1;
13148                }
13149                else {
13150                   eLeft = &eBot;
13151                   eRight = &eMaj;
13152                   lines = eLeft->lines;
13153                   setupLeft = 1;
13154                   setupRight = 1;
13155                }
13156             }
13157             else {
13158                if (scan_from_left_to_right) {
13159                   eLeft = &eMaj;
13160                   eRight = &eTop;
13161                   lines = eRight->lines;
13162                   setupLeft = 0;
13163                   setupRight = 1;
13164                }
13165                else {
13166                   eLeft = &eTop;
13167                   eRight = &eMaj;
13168                   lines = eLeft->lines;
13169                   setupLeft = 1;
13170                   setupRight = 0;
13171                }
13172                if (lines == 0)
13173                   return;
13174             }
13175             if (setupLeft && eLeft->lines > 0) {
13176                const SWvertex *vLower = eLeft->v0;
13177                const GLfixed fsy = eLeft->fsy;
13178                const GLfixed fsx = eLeft->fsx;
13179                const GLfixed fx = (((fsx) + (1 << 11) - 1) & (~((1 << 11) - 1)));
13180                const GLfixed adjx = (GLfixed) (fx - eLeft->fx0);
13181                const GLfixed adjy = (GLfixed) eLeft->adjy;
13182                GLint idxOuter;
13183                GLfloat dxOuter;
13184                GLfixed fdxOuter;
13185                fError = fx - fsx - (1 << 11);
13186                fxLeftEdge = fsx - 1;
13187                fdxLeftEdge = eLeft->fdxdy;
13188                fdxOuter = ((fdxLeftEdge - 1) & (~((1 << 11) - 1)));
13189                fdError = fdxOuter - fdxLeftEdge + (1 << 11);
13190                idxOuter = ((fdxOuter) >> 11);
13191                dxOuter = (GLfloat) idxOuter;
13192                span.y = ((fsy) >> 11);
13193                (void) dxOuter;
13194                (void) adjx;
13195                (void) adjy;
13196                (void) vLower;
13197                {
13198                   GLfloat z0 = vLower->attrib[FRAG_ATTRIB_WPOS][2];
13199                   if (depthBits <= 16) {
13200                      GLfloat tmp = (z0 * ((float) (1 << 11))
13201                                     + span.attrStepX[FRAG_ATTRIB_WPOS][2] * adjx
13202                                     + span.attrStepY[FRAG_ATTRIB_WPOS][2] * adjy) + (1 << (11 -1));
13203                      if (tmp < 0xffffffff / 2)
13204                         zLeft = (GLfixed) tmp;
13205                      else
13206                         zLeft = 0xffffffff / 2;
13207                      fdzOuter = (((int) ((((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) >= 0.0F) ? (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) + 0.5F) : (((span.attrStepY[FRAG_ATTRIB_WPOS][2] + dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]) * ((float) (1 << 11))) - 0.5F))))
13208                                                                                                  ;
13209                   }
13210                   else {
13211                      zLeft = (GLuint) (z0 + span.attrStepX[FRAG_ATTRIB_WPOS][2] * ((adjx) * (1.0F / ((float) (1 << 11))))
13212                                           + span.attrStepY[FRAG_ATTRIB_WPOS][2] * ((adjy) * (1.0F / ((float) (1 << 11)))));
13213                      fdzOuter = (GLint) (span.attrStepY[FRAG_ATTRIB_WPOS][2] +
13214                                          dxOuter * span.attrStepX[FRAG_ATTRIB_WPOS][2]);
13215                   }
13216                }
13217             }
13218             if (setupRight && eRight->lines>0) {
13219                fxRightEdge = eRight->fsx - 1;
13220                fdxRightEdge = eRight->fdxdy;
13221             }
13222             if (lines==0) {
13223                continue;
13224             }
13225             fdzInner = fdzOuter + span.zStep;
13226             while (lines > 0) {
13227                const GLint right = ((fxRightEdge) >> 11);
13228                span.x = ((fxLeftEdge) >> 11);
13229                if (right <= span.x)
13230                   span.end = 0;
13231                else
13232                   span.end = right - span.x;
13233                span.z = zLeft;
13234                if (span.end > 0 && span.y >= 0) {
13235                   const GLint len = span.end - 1;
13236                   (void) len;
13237                   {
13238                      if (rb->Format == MESA_FORMAT_Z16) { GLuint i; const GLushort *zRow = (const GLushort *) rb->GetPointer(ctx, rb, span.x, span.y); for (i = 0; i < span.end; i++) { GLuint z = ((span.z) >> fixedToDepthShift); if (z < zRow[i]) { q->Result++; } span.z += span.zStep; } } else { GLuint i; const GLuint *zRow = (const GLuint *) rb->GetPointer(ctx, rb, span.x, span.y); for (i = 0; i < span.end; i++) { if ((GLuint)span.z < zRow[i]) { q->Result++; } span.z += span.zStep; } };
13239                   }
13240                }
13241                span.y++;
13242                lines--;
13243                fxLeftEdge += fdxLeftEdge;
13244                fxRightEdge += fdxRightEdge;
13245                fError += fdError;
13246                if (fError >= 0) {
13247                   fError -= (1 << 11);
13248                   zLeft += fdzOuter;
13249                }
13250                else {
13251                   zLeft += fdzInner;
13252                }
13253             }
13254          }
13255       }
13256    }
13257 }
13258 static void
13259 nodraw_triangle( struct gl_context *ctx,
13260                  const SWvertex *v0,
13261                  const SWvertex *v1,
13262                  const SWvertex *v2 )
13263 {
13264    (void) (ctx && v0 && v1 && v2);
13265 }
13266 void
13267 _swrast_add_spec_terms_triangle(struct gl_context *ctx, const SWvertex *v0,
13268                                 const SWvertex *v1, const SWvertex *v2)
13269 {
13270    SWvertex *ncv0 = (SWvertex *)v0;
13271    SWvertex *ncv1 = (SWvertex *)v1;
13272    SWvertex *ncv2 = (SWvertex *)v2;
13273    GLfloat rSum, gSum, bSum;
13274    GLchan cSave[3][4];
13275    do { (cSave[0])[0] = (ncv0->color)[0]; (cSave[0])[1] = (ncv0->color)[1]; (cSave[0])[2] = (ncv0->color)[2]; (cSave[0])[3] = (ncv0->color)[3]; } while (0);
13276    do { (cSave[1])[0] = (ncv1->color)[0]; (cSave[1])[1] = (ncv1->color)[1]; (cSave[1])[2] = (ncv1->color)[2]; (cSave[1])[3] = (ncv1->color)[3]; } while (0);
13277    do { (cSave[2])[0] = (ncv2->color)[0]; (cSave[2])[1] = (ncv2->color)[1]; (cSave[2])[2] = (ncv2->color)[2]; (cSave[2])[3] = (ncv2->color)[3]; } while (0);
13278    rSum = _mesa_ubyte_to_float_color_tab[(unsigned int)(ncv0->color[0])] + ncv0->attrib[FRAG_ATTRIB_COL1][0];
13279    gSum = _mesa_ubyte_to_float_color_tab[(unsigned int)(ncv0->color[1])] + ncv0->attrib[FRAG_ATTRIB_COL1][1];
13280    bSum = _mesa_ubyte_to_float_color_tab[(unsigned int)(ncv0->color[2])] + ncv0->attrib[FRAG_ATTRIB_COL1][2];
13281    do { fi_type __tmp; __tmp.f = (rSum); if (__tmp.i < 0) ncv0->color[0] = (GLubyte) 0; else if (__tmp.i >= 0x3f7f0000) ncv0->color[0] = (GLubyte) 255; else { __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; ncv0->color[0] = (GLubyte) __tmp.i; } } while (0);
13282    do { fi_type __tmp; __tmp.f = (gSum); if (__tmp.i < 0) ncv0->color[1] = (GLubyte) 0; else if (__tmp.i >= 0x3f7f0000) ncv0->color[1] = (GLubyte) 255; else { __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; ncv0->color[1] = (GLubyte) __tmp.i; } } while (0);
13283    do { fi_type __tmp; __tmp.f = (bSum); if (__tmp.i < 0) ncv0->color[2] = (GLubyte) 0; else if (__tmp.i >= 0x3f7f0000) ncv0->color[2] = (GLubyte) 255; else { __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; ncv0->color[2] = (GLubyte) __tmp.i; } } while (0);
13284    rSum = _mesa_ubyte_to_float_color_tab[(unsigned int)(ncv1->color[0])] + ncv1->attrib[FRAG_ATTRIB_COL1][0];
13285    gSum = _mesa_ubyte_to_float_color_tab[(unsigned int)(ncv1->color[1])] + ncv1->attrib[FRAG_ATTRIB_COL1][1];
13286    bSum = _mesa_ubyte_to_float_color_tab[(unsigned int)(ncv1->color[2])] + ncv1->attrib[FRAG_ATTRIB_COL1][2];
13287    do { fi_type __tmp; __tmp.f = (rSum); if (__tmp.i < 0) ncv1->color[0] = (GLubyte) 0; else if (__tmp.i >= 0x3f7f0000) ncv1->color[0] = (GLubyte) 255; else { __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; ncv1->color[0] = (GLubyte) __tmp.i; } } while (0);
13288    do { fi_type __tmp; __tmp.f = (gSum); if (__tmp.i < 0) ncv1->color[1] = (GLubyte) 0; else if (__tmp.i >= 0x3f7f0000) ncv1->color[1] = (GLubyte) 255; else { __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; ncv1->color[1] = (GLubyte) __tmp.i; } } while (0);
13289    do { fi_type __tmp; __tmp.f = (bSum); if (__tmp.i < 0) ncv1->color[2] = (GLubyte) 0; else if (__tmp.i >= 0x3f7f0000) ncv1->color[2] = (GLubyte) 255; else { __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; ncv1->color[2] = (GLubyte) __tmp.i; } } while (0);
13290    rSum = _mesa_ubyte_to_float_color_tab[(unsigned int)(ncv2->color[0])] + ncv2->attrib[FRAG_ATTRIB_COL1][0];
13291    gSum = _mesa_ubyte_to_float_color_tab[(unsigned int)(ncv2->color[1])] + ncv2->attrib[FRAG_ATTRIB_COL1][1];
13292    bSum = _mesa_ubyte_to_float_color_tab[(unsigned int)(ncv2->color[2])] + ncv2->attrib[FRAG_ATTRIB_COL1][2];
13293    do { fi_type __tmp; __tmp.f = (rSum); if (__tmp.i < 0) ncv2->color[0] = (GLubyte) 0; else if (__tmp.i >= 0x3f7f0000) ncv2->color[0] = (GLubyte) 255; else { __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; ncv2->color[0] = (GLubyte) __tmp.i; } } while (0);
13294    do { fi_type __tmp; __tmp.f = (gSum); if (__tmp.i < 0) ncv2->color[1] = (GLubyte) 0; else if (__tmp.i >= 0x3f7f0000) ncv2->color[1] = (GLubyte) 255; else { __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; ncv2->color[1] = (GLubyte) __tmp.i; } } while (0);
13295    do { fi_type __tmp; __tmp.f = (bSum); if (__tmp.i < 0) ncv2->color[2] = (GLubyte) 0; else if (__tmp.i >= 0x3f7f0000) ncv2->color[2] = (GLubyte) 255; else { __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; ncv2->color[2] = (GLubyte) __tmp.i; } } while (0);
13296    SWRAST_CONTEXT(ctx)->SpecTriangle( ctx, ncv0, ncv1, ncv2 );
13297    do { (ncv0->color)[0] = (cSave[0])[0]; (ncv0->color)[1] = (cSave[0])[1]; (ncv0->color)[2] = (cSave[0])[2]; (ncv0->color)[3] = (cSave[0])[3]; } while (0);
13298    do { (ncv1->color)[0] = (cSave[1])[0]; (ncv1->color)[1] = (cSave[1])[1]; (ncv1->color)[2] = (cSave[1])[2]; (ncv1->color)[3] = (cSave[1])[3]; } while (0);
13299    do { (ncv2->color)[0] = (cSave[2])[0]; (ncv2->color)[1] = (cSave[2])[1]; (ncv2->color)[2] = (cSave[2])[2]; (ncv2->color)[3] = (cSave[2])[3]; } while (0);
13300 }
13301 void
13302 _swrast_choose_triangle( struct gl_context *ctx )
13303 {
13304    SWcontext *swrast = SWRAST_CONTEXT(ctx);
13305    if (ctx->Polygon.CullFlag &&
13306        ctx->Polygon.CullFaceMode == 0x0408) {
13307       swrast->Triangle = nodraw_triangle;;
13308       return;
13309    }
13310    if (ctx->RenderMode==0x1C00) {
13311       if (ctx->Polygon.SmoothFlag) {
13312          _swrast_set_aa_triangle_function(ctx);
13313          ;
13314          return;
13315       }
13316       if (ctx->Query.CurrentOcclusionObject &&
13317           ctx->Depth.Test &&
13318           ctx->Depth.Mask == 0x0 &&
13319           ctx->Depth.Func == 0x0201 &&
13320           !ctx->Stencil._Enabled) {
13321          if (ctx->Color.ColorMask[0][0] == 0 &&
13322       ctx->Color.ColorMask[0][1] == 0 &&
13323       ctx->Color.ColorMask[0][2] == 0 &&
13324       ctx->Color.ColorMask[0][3] == 0) {
13325             swrast->Triangle = occlusion_zless_triangle;;
13326             return;
13327          }
13328       }
13329       if (ctx->Texture._EnabledCoordUnits ||
13330           ctx->FragmentProgram._Current ||
13331           ctx->ATIFragmentShader._Enabled ||
13332           _mesa_need_secondary_color(ctx) ||
13333           swrast->_FogEnabled) {
13334          const struct gl_texture_object *texObj2D;
13335          const struct gl_texture_image *texImg;
13336          GLenum minFilter, magFilter, envMode;
13337          gl_format format;
13338          texObj2D = ctx->Texture.Unit[0].CurrentTex[TEXTURE_2D_INDEX];
13339          texImg = texObj2D ? texObj2D->Image[0][texObj2D->BaseLevel] : ((void *)0);
13340          format = texImg ? texImg->TexFormat : MESA_FORMAT_NONE;
13341          minFilter = texObj2D ? texObj2D->Sampler.MinFilter : 0x0;
13342          magFilter = texObj2D ? texObj2D->Sampler.MagFilter : 0x0;
13343          envMode = ctx->Texture.Unit[0].EnvMode;
13344          if (ctx->Texture._EnabledCoordUnits == 0x1
13345              && !ctx->FragmentProgram._Current
13346              && !ctx->ATIFragmentShader._Enabled
13347              && ctx->Texture._EnabledUnits == 0x1
13348              && ctx->Texture.Unit[0]._ReallyEnabled == (1 << TEXTURE_2D_INDEX)
13349              && texObj2D->Sampler.WrapS == 0x2901
13350              && texObj2D->Sampler.WrapT == 0x2901
13351              && texObj2D->_Swizzle == (((0)<<0) | ((1)<<3) | ((2)<<6) | ((3)<<9))
13352              && texImg->_IsPowerOfTwo
13353              && texImg->Border == 0
13354              && texImg->Width == texImg->RowStride
13355              && (format == MESA_FORMAT_RGB888 || format == MESA_FORMAT_RGBA8888)
13356              && minFilter == magFilter
13357              && ctx->Light.Model.ColorControl == 0x81F9
13358              && !swrast->_FogEnabled
13359              && ctx->Texture.Unit[0].EnvMode != 0x8570
13360              && ctx->Texture.Unit[0].EnvMode != 0x8503) {
13361      if (ctx->Hint.PerspectiveCorrection==0x1101) {
13362         if (minFilter == 0x2600
13363      && format == MESA_FORMAT_RGB888
13364      && (envMode == 0x1E01 || envMode == 0x2101)
13365      && ((swrast->_RasterMask == (0x004 | 0x1000)
13366    && ctx->Depth.Func == 0x0201
13367    && ctx->Depth.Mask == 0x1)
13368          || swrast->_RasterMask == 0x1000)
13369      && ctx->Polygon.StippleFlag == 0x0
13370                    && ctx->DrawBuffer->Visual.depthBits <= 16) {
13371     if (swrast->_RasterMask == (0x004 | 0x1000)) {
13372        swrast->Triangle = simple_z_textured_triangle;;
13373     }
13374     else {
13375        swrast->Triangle = simple_textured_triangle;;
13376     }
13377         }
13378         else {
13379                   if (format == MESA_FORMAT_RGBA8888 && !_mesa_little_endian()) {
13380                      swrast->Triangle = general_triangle;;
13381                   }
13382                   else {
13383                      swrast->Triangle = affine_textured_triangle;;
13384                  }
13385         }
13386      }
13387      else {
13388                swrast->Triangle = persp_textured_triangle;;
13389      }
13390   }
13391          else {
13392             swrast->Triangle = general_triangle;;
13393          }
13394       }
13395       else {
13396          ;
13397          ;
13398   if (ctx->Light.ShadeModel==0x1D01) {
13399                swrast->Triangle = smooth_rgba_triangle;;
13400   }
13401   else {
13402             swrast->Triangle = flat_rgba_triangle;;
13403   }
13404       }
13405    }
13406    else if (ctx->RenderMode==0x1C01) {
13407       swrast->Triangle = _swrast_feedback_triangle;;
13408    }
13409    else {
13410       swrast->Triangle = _swrast_select_triangle;;
13411    }
13412 }