]> git.wh0rd.org - 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 }