]> git.wh0rd.org - ICEs.git/blame - 394889/s_triangle.i.1
more
[ICEs.git] / 394889 / s_triangle.i.1
CommitLineData
bd3239d2
MF
1typedef unsigned int GLenum;
2typedef unsigned char GLboolean;
3typedef unsigned int GLbitfield;
4typedef void GLvoid;
5typedef signed char GLbyte;
6typedef short GLshort;
7typedef int GLint;
8typedef unsigned char GLubyte;
9typedef unsigned short GLushort;
10typedef unsigned int GLuint;
11typedef int GLsizei;
12typedef float GLfloat;
13typedef float GLclampf;
14typedef double GLdouble;
15typedef 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 );
462typedef void ( * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
463typedef void ( * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
464typedef 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);
465typedef 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 );
540typedef void ( * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
541typedef 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 );
588typedef void ( * PFNGLACTIVETEXTUREPROC) (GLenum texture);
589typedef void ( * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
590typedef void ( * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
591typedef void ( * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
592typedef void ( * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
593typedef 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);
594typedef void ( * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
595typedef void ( * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
596typedef 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);
631typedef void ( * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
632typedef void ( * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
633typedef void ( * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
634typedef void ( * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
635typedef void ( * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
636typedef void ( * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
637typedef void ( * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
638typedef void ( * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
639typedef void ( * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
640typedef void ( * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
641typedef void ( * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
642typedef void ( * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
643typedef void ( * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
644typedef void ( * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
645typedef void ( * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
646typedef void ( * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
647typedef void ( * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
648typedef void ( * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
649typedef void ( * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
650typedef void ( * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
651typedef void ( * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
652typedef void ( * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
653typedef void ( * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
654typedef void ( * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
655typedef void ( * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
656typedef void ( * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
657typedef void ( * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
658typedef void ( * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
659typedef void ( * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
660typedef void ( * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
661typedef void ( * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
662typedef void ( * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
663typedef void ( * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
664typedef void ( * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
665typedef int ptrdiff_t;
666typedef unsigned int size_t;
667typedef long int wchar_t;
668typedef char GLchar;
669typedef ptrdiff_t GLintptr;
670typedef ptrdiff_t GLsizeiptr;
671typedef ptrdiff_t GLintptrARB;
672typedef ptrdiff_t GLsizeiptrARB;
673typedef char GLcharARB;
674typedef unsigned int GLhandleARB;
675typedef unsigned short GLhalfARB;
676typedef unsigned short GLhalfNV;
677typedef signed char int8_t;
678typedef short int int16_t;
679typedef int int32_t;
680__extension__
681typedef long long int int64_t;
682typedef unsigned char uint8_t;
683typedef unsigned short int uint16_t;
684typedef unsigned int uint32_t;
685__extension__
686typedef unsigned long long int uint64_t;
687typedef signed char int_least8_t;
688typedef short int int_least16_t;
689typedef int int_least32_t;
690__extension__
691typedef long long int int_least64_t;
692typedef unsigned char uint_least8_t;
693typedef unsigned short int uint_least16_t;
694typedef unsigned int uint_least32_t;
695__extension__
696typedef unsigned long long int uint_least64_t;
697typedef signed char int_fast8_t;
698typedef int int_fast16_t;
699typedef int int_fast32_t;
700__extension__
701typedef long long int int_fast64_t;
702typedef unsigned char uint_fast8_t;
703typedef unsigned int uint_fast16_t;
704typedef unsigned int uint_fast32_t;
705__extension__
706typedef unsigned long long int uint_fast64_t;
707typedef int intptr_t;
708typedef unsigned int uintptr_t;
709__extension__
710typedef long long int intmax_t;
711__extension__
712typedef unsigned long long int uintmax_t;
713typedef long int __gwchar_t;
714typedef struct
715 {
716 long long int quot;
717 long long int rem;
718 } imaxdiv_t;
719extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
720extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
721 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
722extern intmax_t strtoimax (__const char *__restrict __nptr,
723 char **__restrict __endptr, int __base) __attribute__ ((__nothrow__));
724extern uintmax_t strtoumax (__const char *__restrict __nptr,
725 char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__));
726extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
727 __gwchar_t **__restrict __endptr, int __base)
728 __attribute__ ((__nothrow__));
729extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
730 __gwchar_t ** __restrict __endptr, int __base)
731 __attribute__ ((__nothrow__));
732__extension__
733extern 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__));
737extern __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__
743extern 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__));
750extern __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__
756extern 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__));
761extern __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__
767extern 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__));
774extern __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}
779typedef int64_t GLint64EXT;
780typedef uint64_t GLuint64EXT;
781typedef int64_t GLint64;
782typedef uint64_t GLuint64;
783typedef struct __GLsync *GLsync;
784struct _cl_context;
785struct _cl_event;
786typedef void ( *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
787typedef void ( *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
788typedef 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);
821typedef void ( * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
822typedef void ( * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
823typedef void ( * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
824typedef void ( * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
825typedef void ( * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
826typedef void ( * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
827typedef void ( * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
828typedef void ( * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
829typedef void ( * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
830typedef void ( * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
831typedef void ( * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
832typedef void ( * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
833typedef void ( * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
834typedef void ( * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
835typedef void ( * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
836typedef void ( * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
837typedef void ( * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
838typedef void ( * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
839typedef void ( * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
840typedef void ( * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
841typedef void ( * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
842typedef void ( * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
843typedef void ( * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
844typedef void ( * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
845typedef void ( * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
846typedef void ( * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
847typedef void ( * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
848typedef void ( * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
849typedef void ( * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
850typedef void ( * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
851typedef void ( * PFNGLRESETHISTOGRAMPROC) (GLenum target);
852typedef 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);
890typedef void ( * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
891typedef void ( * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
892typedef void ( * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
893typedef void ( * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
894typedef void ( * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
895typedef void ( * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
896typedef void ( * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
897typedef void ( * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
898typedef void ( * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
899typedef void ( * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
900typedef void ( * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
901typedef void ( * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
902typedef void ( * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
903typedef void ( * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
904typedef void ( * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
905typedef void ( * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
906typedef void ( * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
907typedef void ( * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
908typedef void ( * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
909typedef void ( * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
910typedef void ( * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
911typedef void ( * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
912typedef void ( * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
913typedef void ( * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
914typedef void ( * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
915typedef void ( * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
916typedef void ( * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
917typedef void ( * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
918typedef void ( * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
919typedef void ( * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
920typedef void ( * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
921typedef void ( * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
922typedef void ( * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
923typedef void ( * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m);
924typedef void ( * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m);
925typedef void ( * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m);
926typedef 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);
934typedef void ( * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
935typedef void ( * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
936typedef void ( * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
937typedef void ( * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
938typedef void ( * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
939typedef void ( * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
940typedef 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);
979typedef void ( * PFNGLFOGCOORDFPROC) (GLfloat coord);
980typedef void ( * PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
981typedef void ( * PFNGLFOGCOORDDPROC) (GLdouble coord);
982typedef void ( * PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
983typedef void ( * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
984typedef void ( * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
985typedef void ( * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
986typedef void ( * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
987typedef void ( * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
988typedef void ( * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
989typedef void ( * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
990typedef void ( * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
991typedef void ( * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
992typedef void ( * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
993typedef void ( * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
994typedef void ( * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
995typedef void ( * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
996typedef void ( * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
997typedef void ( * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
998typedef void ( * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
999typedef void ( * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
1000typedef void ( * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1001typedef void ( * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
1002typedef void ( * PFNGLWINDOWPOS2DVPROC) (const GLdouble *v);
1003typedef void ( * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
1004typedef void ( * PFNGLWINDOWPOS2FVPROC) (const GLfloat *v);
1005typedef void ( * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
1006typedef void ( * PFNGLWINDOWPOS2IVPROC) (const GLint *v);
1007typedef void ( * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
1008typedef void ( * PFNGLWINDOWPOS2SVPROC) (const GLshort *v);
1009typedef void ( * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
1010typedef void ( * PFNGLWINDOWPOS3DVPROC) (const GLdouble *v);
1011typedef void ( * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
1012typedef void ( * PFNGLWINDOWPOS3FVPROC) (const GLfloat *v);
1013typedef void ( * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
1014typedef void ( * PFNGLWINDOWPOS3IVPROC) (const GLint *v);
1015typedef void ( * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
1016typedef 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);
1036typedef void ( * PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
1037typedef void ( * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
1038typedef GLboolean ( * PFNGLISQUERYPROC) (GLuint id);
1039typedef void ( * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
1040typedef void ( * PFNGLENDQUERYPROC) (GLenum target);
1041typedef void ( * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
1042typedef void ( * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params);
1043typedef void ( * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
1044typedef void ( * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
1045typedef void ( * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
1046typedef void ( * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
1047typedef GLboolean ( * PFNGLISBUFFERPROC) (GLuint buffer);
1048typedef void ( * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
1049typedef void ( * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
1050typedef void ( * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
1051typedef GLvoid* ( * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
1052typedef GLboolean ( * PFNGLUNMAPBUFFERPROC) (GLenum target);
1053typedef void ( * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
1054typedef 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);
1148typedef void ( * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
1149typedef void ( * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
1150typedef void ( * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
1151typedef void ( * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
1152typedef void ( * PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
1153typedef void ( * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
1154typedef void ( * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
1155typedef void ( * PFNGLCOMPILESHADERPROC) (GLuint shader);
1156typedef GLuint ( * PFNGLCREATEPROGRAMPROC) (void);
1157typedef GLuint ( * PFNGLCREATESHADERPROC) (GLenum type);
1158typedef void ( * PFNGLDELETEPROGRAMPROC) (GLuint program);
1159typedef void ( * PFNGLDELETESHADERPROC) (GLuint shader);
1160typedef void ( * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
1161typedef void ( * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
1162typedef void ( * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
1163typedef void ( * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
1164typedef void ( * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
1165typedef void ( * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
1166typedef GLint ( * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
1167typedef void ( * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
1168typedef void ( * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1169typedef void ( * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
1170typedef void ( * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
1171typedef void ( * PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
1172typedef GLint ( * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
1173typedef void ( * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
1174typedef void ( * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
1175typedef void ( * PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
1176typedef void ( * PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
1177typedef void ( * PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
1178typedef void ( * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
1179typedef GLboolean ( * PFNGLISPROGRAMPROC) (GLuint program);
1180typedef GLboolean ( * PFNGLISSHADERPROC) (GLuint shader);
1181typedef void ( * PFNGLLINKPROGRAMPROC) (GLuint program);
1182typedef void ( * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
1183typedef void ( * PFNGLUSEPROGRAMPROC) (GLuint program);
1184typedef void ( * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
1185typedef void ( * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
1186typedef void ( * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
1187typedef void ( * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
1188typedef void ( * PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
1189typedef void ( * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
1190typedef void ( * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
1191typedef void ( * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
1192typedef void ( * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
1193typedef void ( * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
1194typedef void ( * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
1195typedef void ( * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
1196typedef void ( * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
1197typedef void ( * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
1198typedef void ( * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
1199typedef void ( * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
1200typedef void ( * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1201typedef void ( * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1202typedef void ( * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1203typedef void ( * PFNGLVALIDATEPROGRAMPROC) (GLuint program);
1204typedef void ( * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
1205typedef void ( * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
1206typedef void ( * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
1207typedef void ( * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
1208typedef void ( * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
1209typedef void ( * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
1210typedef void ( * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
1211typedef void ( * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
1212typedef void ( * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
1213typedef void ( * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
1214typedef void ( * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
1215typedef void ( * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
1216typedef void ( * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
1217typedef void ( * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
1218typedef void ( * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
1219typedef void ( * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
1220typedef void ( * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
1221typedef void ( * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
1222typedef void ( * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
1223typedef void ( * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
1224typedef void ( * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
1225typedef void ( * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
1226typedef void ( * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
1227typedef void ( * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
1228typedef void ( * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
1229typedef void ( * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
1230typedef void ( * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1231typedef void ( * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
1232typedef void ( * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1233typedef void ( * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
1234typedef void ( * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
1235typedef void ( * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
1236typedef void ( * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
1237typedef void ( * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
1238typedef void ( * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
1239typedef void ( * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
1240typedef 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);
1247typedef void ( * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1248typedef void ( * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1249typedef void ( * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1250typedef void ( * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1251typedef void ( * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1252typedef 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);
1311typedef void ( * PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
1312typedef void ( * PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data);
1313typedef void ( * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
1314typedef void ( * PFNGLENABLEIPROC) (GLenum target, GLuint index);
1315typedef void ( * PFNGLDISABLEIPROC) (GLenum target, GLuint index);
1316typedef GLboolean ( * PFNGLISENABLEDIPROC) (GLenum target, GLuint index);
1317typedef void ( * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
1318typedef void ( * PFNGLENDTRANSFORMFEEDBACKPROC) (void);
1319typedef void ( * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
1320typedef void ( * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
1321typedef void ( * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
1322typedef void ( * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
1323typedef void ( * PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
1324typedef void ( * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
1325typedef void ( * PFNGLENDCONDITIONALRENDERPROC) (void);
1326typedef void ( * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1327typedef void ( * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params);
1328typedef void ( * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params);
1329typedef void ( * PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x);
1330typedef void ( * PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y);
1331typedef void ( * PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z);
1332typedef void ( * PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
1333typedef void ( * PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x);
1334typedef void ( * PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y);
1335typedef void ( * PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
1336typedef void ( * PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
1337typedef void ( * PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v);
1338typedef void ( * PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v);
1339typedef void ( * PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v);
1340typedef void ( * PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v);
1341typedef void ( * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v);
1342typedef void ( * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v);
1343typedef void ( * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v);
1344typedef void ( * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v);
1345typedef void ( * PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v);
1346typedef void ( * PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v);
1347typedef void ( * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v);
1348typedef void ( * PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v);
1349typedef void ( * PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params);
1350typedef void ( * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name);
1351typedef GLint ( * PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name);
1352typedef void ( * PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
1353typedef void ( * PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
1354typedef void ( * PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
1355typedef void ( * PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
1356typedef void ( * PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value);
1357typedef void ( * PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value);
1358typedef void ( * PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value);
1359typedef void ( * PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value);
1360typedef void ( * PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params);
1361typedef void ( * PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params);
1362typedef void ( * PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params);
1363typedef void ( * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params);
1364typedef void ( * PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value);
1365typedef void ( * PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value);
1366typedef void ( * PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value);
1367typedef void ( * PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
1368typedef 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);
1373typedef void ( * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1374typedef void ( * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
1375typedef void ( * PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer);
1376typedef 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);
1380typedef void ( * PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data);
1381typedef void ( * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params);
1382typedef void ( * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
1383__attribute__((visibility("default"))) void glVertexAttribDivisor (GLuint index, GLuint divisor);
1384typedef 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);
1390typedef void ( * PFNGLMINSAMPLESHADINGPROC) (GLclampf value);
1391typedef void ( * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode);
1392typedef void ( * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
1393typedef void ( * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst);
1394typedef 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);
1399typedef void ( * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
1400typedef void ( * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
1401typedef void ( * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
1402typedef void ( * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
1403__attribute__((visibility("default"))) void glSampleCoverageARB (GLclampf value, GLboolean invert);
1404typedef 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);
1412typedef void ( * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
1413typedef void ( * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
1414typedef void ( * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
1415typedef 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);
1416typedef void ( * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
1417typedef void ( * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
1418typedef 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);
1421typedef void ( * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
1422typedef 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);
1433typedef void ( * PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights);
1434typedef void ( * PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights);
1435typedef void ( * PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights);
1436typedef void ( * PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights);
1437typedef void ( * PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights);
1438typedef void ( * PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights);
1439typedef void ( * PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights);
1440typedef void ( * PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights);
1441typedef void ( * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
1442typedef 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);
1448typedef void ( * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index);
1449typedef void ( * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices);
1450typedef void ( * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices);
1451typedef void ( * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices);
1452typedef 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);
1469typedef void ( * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y);
1470typedef void ( * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v);
1471typedef void ( * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y);
1472typedef void ( * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v);
1473typedef void ( * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y);
1474typedef void ( * PFNGLWINDOWPOS2IVARBPROC) (const GLint *v);
1475typedef void ( * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y);
1476typedef void ( * PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v);
1477typedef void ( * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z);
1478typedef void ( * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v);
1479typedef void ( * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z);
1480typedef void ( * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v);
1481typedef void ( * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z);
1482typedef void ( * PFNGLWINDOWPOS3IVARBPROC) (const GLint *v);
1483typedef void ( * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z);
1484typedef 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);
1547typedef void ( * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
1548typedef void ( * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
1549typedef void ( * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
1550typedef void ( * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
1551typedef void ( * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
1552typedef void ( * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
1553typedef void ( * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
1554typedef void ( * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
1555typedef void ( * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
1556typedef void ( * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
1557typedef void ( * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
1558typedef void ( * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
1559typedef void ( * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
1560typedef void ( * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
1561typedef void ( * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
1562typedef void ( * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
1563typedef void ( * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
1564typedef void ( * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v);
1565typedef void ( * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v);
1566typedef void ( * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v);
1567typedef void ( * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v);
1568typedef void ( * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
1569typedef void ( * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v);
1570typedef void ( * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
1571typedef void ( * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
1572typedef void ( * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
1573typedef void ( * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1574typedef void ( * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
1575typedef void ( * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1576typedef void ( * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
1577typedef void ( * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
1578typedef void ( * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
1579typedef void ( * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v);
1580typedef void ( * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v);
1581typedef void ( * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v);
1582typedef void ( * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v);
1583typedef void ( * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
1584typedef void ( * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
1585typedef void ( * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
1586typedef void ( * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
1587typedef void ( * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
1588typedef void ( * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
1589typedef void ( * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
1590typedef void ( * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1591typedef void ( * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
1592typedef void ( * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1593typedef void ( * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
1594typedef void ( * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
1595typedef void ( * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
1596typedef void ( * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
1597typedef void ( * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
1598typedef void ( * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
1599typedef void ( * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
1600typedef void ( * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
1601typedef void ( * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
1602typedef void ( * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
1603typedef void ( * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string);
1604typedef void ( * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
1605typedef void ( * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
1606typedef void ( * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
1607typedef void ( * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
1608typedef 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);
1620typedef void ( * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
1621typedef void ( * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
1622typedef void ( * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
1623typedef GLboolean ( * PFNGLISBUFFERARBPROC) (GLuint buffer);
1624typedef void ( * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
1625typedef void ( * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
1626typedef void ( * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
1627typedef GLvoid* ( * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access);
1628typedef GLboolean ( * PFNGLUNMAPBUFFERARBPROC) (GLenum target);
1629typedef void ( * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
1630typedef 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);
1639typedef void ( * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids);
1640typedef void ( * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids);
1641typedef GLboolean ( * PFNGLISQUERYARBPROC) (GLuint id);
1642typedef void ( * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id);
1643typedef void ( * PFNGLENDQUERYARBPROC) (GLenum target);
1644typedef void ( * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params);
1645typedef void ( * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params);
1646typedef 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);
1686typedef void ( * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
1687typedef GLhandleARB ( * PFNGLGETHANDLEARBPROC) (GLenum pname);
1688typedef void ( * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj);
1689typedef GLhandleARB ( * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
1690typedef void ( * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length);
1691typedef void ( * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
1692typedef GLhandleARB ( * PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
1693typedef void ( * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj);
1694typedef void ( * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
1695typedef void ( * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
1696typedef void ( * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj);
1697typedef void ( * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
1698typedef void ( * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
1699typedef void ( * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
1700typedef void ( * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
1701typedef void ( * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
1702typedef void ( * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
1703typedef void ( * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
1704typedef void ( * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
1705typedef void ( * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
1706typedef void ( * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
1707typedef void ( * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
1708typedef void ( * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
1709typedef void ( * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value);
1710typedef void ( * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value);
1711typedef void ( * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value);
1712typedef void ( * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value);
1713typedef void ( * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1714typedef void ( * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1715typedef void ( * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
1716typedef void ( * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params);
1717typedef void ( * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params);
1718typedef void ( * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
1719typedef void ( * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
1720typedef GLint ( * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
1721typedef void ( * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
1722typedef void ( * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params);
1723typedef void ( * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params);
1724typedef 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);
1728typedef void ( * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name);
1729typedef void ( * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
1730typedef GLint ( * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
1731__attribute__((visibility("default"))) void glDrawBuffersARB (GLsizei n, const GLenum *bufs);
1732typedef void ( * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs);
1733__attribute__((visibility("default"))) void glClampColorARB (GLenum target, GLenum clamp);
1734typedef 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);
1737typedef void ( * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
1738typedef 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);
1759typedef GLboolean ( * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
1760typedef void ( * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
1761typedef void ( * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
1762typedef void ( * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
1763typedef void ( * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
1764typedef void ( * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
1765typedef GLboolean ( * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
1766typedef void ( * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
1767typedef void ( * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
1768typedef void ( * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
1769typedef GLenum ( * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
1770typedef void ( * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1771typedef void ( * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1772typedef void ( * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
1773typedef void ( * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
1774typedef void ( * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
1775typedef void ( * PFNGLGENERATEMIPMAPPROC) (GLenum target);
1776typedef void ( * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
1777typedef void ( * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
1778typedef 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);
1783typedef void ( * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value);
1784typedef void ( * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
1785typedef void ( * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
1786typedef void ( * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
1787__attribute__((visibility("default"))) void glVertexAttribDivisorARB (GLuint index, GLuint divisor);
1788typedef 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);
1791typedef GLvoid* ( * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
1792typedef void ( * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
1793__attribute__((visibility("default"))) void glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer);
1794typedef 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);
1799typedef void ( * PFNGLBINDVERTEXARRAYPROC) (GLuint array);
1800typedef void ( * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
1801typedef void ( * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
1802typedef 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);
1810typedef void ( * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices);
1811typedef void ( * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
1812typedef void ( * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
1813typedef GLuint ( * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
1814typedef void ( * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
1815typedef void ( * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
1816typedef void ( * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
1817__attribute__((visibility("default"))) void glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
1818typedef 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);
1823typedef void ( * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
1824typedef void ( * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
1825typedef void ( * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex);
1826typedef 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);
1828typedef 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);
1836typedef GLsync ( * PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags);
1837typedef GLboolean ( * PFNGLISSYNCPROC) (GLsync sync);
1838typedef void ( * PFNGLDELETESYNCPROC) (GLsync sync);
1839typedef GLenum ( * PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
1840typedef void ( * PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
1841typedef void ( * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params);
1842typedef 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);
1847typedef void ( * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
1848typedef void ( * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
1849typedef void ( * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val);
1850typedef 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);
1855typedef void ( * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode);
1856typedef void ( * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
1857typedef void ( * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst);
1858typedef void ( * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
1859__attribute__((visibility("default"))) void glMinSampleShadingARB (GLclampf value);
1860typedef 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);
1867typedef void ( * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
1868typedef void ( * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name);
1869typedef void ( * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* *path, const GLint *length);
1870typedef GLboolean ( * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name);
1871typedef void ( * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
1872typedef 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);
1875typedef void ( * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
1876typedef 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);
1891typedef void ( * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers);
1892typedef void ( * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers);
1893typedef GLboolean ( * PFNGLISSAMPLERPROC) (GLuint sampler);
1894typedef void ( * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
1895typedef void ( * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
1896typedef void ( * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
1897typedef void ( * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
1898typedef void ( * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param);
1899typedef void ( * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
1900typedef void ( * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param);
1901typedef void ( * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params);
1902typedef void ( * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params);
1903typedef void ( * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params);
1904typedef 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);
1908typedef void ( * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target);
1909typedef void ( * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params);
1910typedef 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);
1949typedef void ( * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value);
1950typedef void ( * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value);
1951typedef void ( * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value);
1952typedef void ( * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value);
1953typedef void ( * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value);
1954typedef void ( * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value);
1955typedef void ( * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords);
1956typedef void ( * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords);
1957typedef void ( * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords);
1958typedef void ( * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords);
1959typedef void ( * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords);
1960typedef void ( * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords);
1961typedef void ( * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords);
1962typedef void ( * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords);
1963typedef void ( * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords);
1964typedef void ( * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
1965typedef void ( * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords);
1966typedef void ( * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
1967typedef void ( * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords);
1968typedef void ( * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
1969typedef void ( * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords);
1970typedef void ( * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
1971typedef void ( * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords);
1972typedef void ( * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords);
1973typedef void ( * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color);
1974typedef void ( * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color);
1975typedef void ( * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color);
1976typedef void ( * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color);
1977typedef void ( * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color);
1978typedef void ( * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color);
1979typedef void ( * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1980typedef void ( * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1981typedef void ( * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1982typedef void ( * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1983typedef void ( * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1984typedef void ( * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
1985typedef void ( * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
1986typedef 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);
1989typedef void ( * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const GLvoid *indirect);
1990typedef 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);
2009typedef void ( * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x);
2010typedef void ( * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y);
2011typedef void ( * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z);
2012typedef void ( * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2013typedef void ( * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value);
2014typedef void ( * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value);
2015typedef void ( * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value);
2016typedef void ( * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value);
2017typedef void ( * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2018typedef void ( * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2019typedef void ( * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2020typedef void ( * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2021typedef void ( * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2022typedef void ( * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2023typedef void ( * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2024typedef void ( * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2025typedef void ( * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2026typedef 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);
2035typedef GLint ( * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name);
2036typedef GLuint ( * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name);
2037typedef void ( * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
2038typedef void ( * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
2039typedef void ( * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
2040typedef void ( * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices);
2041typedef void ( * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params);
2042typedef 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);
2045typedef void ( * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value);
2046typedef 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);
2054typedef void ( * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id);
2055typedef void ( * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids);
2056typedef void ( * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids);
2057typedef GLboolean ( * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id);
2058typedef void ( * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void);
2059typedef void ( * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void);
2060typedef 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);
2065typedef void ( * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream);
2066typedef void ( * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id);
2067typedef void ( * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index);
2068typedef 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);
2074typedef void ( * PFNGLRELEASESHADERCOMPILERPROC) (void);
2075typedef void ( * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length);
2076typedef void ( * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
2077typedef void ( * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f);
2078typedef 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);
2082typedef void ( * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
2083typedef void ( * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length);
2084typedef 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);
2145typedef void ( * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
2146typedef void ( * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program);
2147typedef GLuint ( * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar* *strings);
2148typedef void ( * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline);
2149typedef void ( * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines);
2150typedef void ( * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines);
2151typedef GLboolean ( * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline);
2152typedef void ( * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params);
2153typedef void ( * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0);
2154typedef void ( * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
2155typedef void ( * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0);
2156typedef void ( * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2157typedef void ( * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0);
2158typedef void ( * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2159typedef void ( * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0);
2160typedef void ( * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
2161typedef void ( * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1);
2162typedef void ( * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
2163typedef void ( * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
2164typedef void ( * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2165typedef void ( * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1);
2166typedef void ( * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2167typedef void ( * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
2168typedef void ( * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
2169typedef void ( * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
2170typedef void ( * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
2171typedef void ( * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
2172typedef void ( * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2173typedef void ( * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
2174typedef void ( * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2175typedef void ( * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
2176typedef void ( * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
2177typedef void ( * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
2178typedef void ( * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
2179typedef void ( * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
2180typedef void ( * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
2181typedef void ( * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
2182typedef void ( * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
2183typedef void ( * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
2184typedef void ( * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
2185typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2186typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2187typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2188typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2189typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2190typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2191typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2192typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2193typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2194typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2195typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2196typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
2197typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2198typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2199typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2200typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2201typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2202typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
2203typedef void ( * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline);
2204typedef 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);
2215typedef void ( * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x);
2216typedef void ( * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y);
2217typedef void ( * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
2218typedef void ( * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2219typedef void ( * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v);
2220typedef void ( * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v);
2221typedef void ( * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v);
2222typedef void ( * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v);
2223typedef void ( * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
2224typedef 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);
2235typedef void ( * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v);
2236typedef void ( * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
2237typedef void ( * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v);
2238typedef void ( * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v);
2239typedef void ( * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
2240typedef void ( * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v);
2241typedef void ( * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd *v);
2242typedef void ( * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f);
2243typedef void ( * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data);
2244typedef 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);
2246typedef 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);
2251typedef void ( * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
2252typedef void ( * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
2253typedef void ( * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const GLvoid *userParam);
2254typedef 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);
2275typedef GLenum ( * PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void);
2276typedef void ( * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
2277typedef void ( * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
2278typedef void ( * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
2279typedef void ( * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values);
2280typedef void ( * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values);
2281typedef void ( * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values);
2282typedef void ( * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern);
2283typedef void ( * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table);
2284typedef void ( * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image);
2285typedef void ( * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span);
2286typedef void ( * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
2287typedef void ( * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
2288typedef void ( * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img);
2289typedef void ( * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
2290typedef void ( * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, GLvoid *img);
2291typedef void ( * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
2292typedef void ( * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
2293typedef void ( * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
2294typedef void ( * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
2295__attribute__((visibility("default"))) void glBlendColorEXT (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
2296typedef void ( * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
2297__attribute__((visibility("default"))) void glPolygonOffsetEXT (GLfloat factor, GLfloat bias);
2298typedef 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);
2301typedef void ( * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
2302typedef 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);
2305typedef void ( * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights);
2306typedef 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);
2309typedef void ( * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
2310typedef 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);
2316typedef void ( * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
2317typedef void ( * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
2318typedef void ( * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
2319typedef void ( * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
2320typedef 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);
2331typedef void ( * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
2332typedef void ( * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
2333typedef void ( * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
2334typedef void ( * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
2335typedef void ( * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
2336typedef void ( * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
2337typedef void ( * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
2338typedef void ( * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink);
2339typedef void ( * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target);
2340typedef 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);
2354typedef void ( * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
2355typedef void ( * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
2356typedef void ( * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params);
2357typedef void ( * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
2358typedef void ( * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params);
2359typedef void ( * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
2360typedef void ( * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
2361typedef void ( * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
2362typedef void ( * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
2363typedef void ( * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
2364typedef void ( * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
2365typedef void ( * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
2366typedef 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);
2374typedef void ( * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
2375typedef void ( * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params);
2376typedef void ( * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params);
2377typedef void ( * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
2378typedef void ( * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
2379typedef void ( * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params);
2380typedef void ( * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params);
2381__attribute__((visibility("default"))) void glPixelTexGenSGIX (GLenum mode);
2382typedef 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);
2389typedef void ( * PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param);
2390typedef void ( * PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params);
2391typedef void ( * PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
2392typedef void ( * PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
2393typedef void ( * PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params);
2394typedef 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);
2397typedef 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);
2398typedef 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);
2405typedef GLboolean ( * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences);
2406typedef void ( * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture);
2407typedef void ( * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures);
2408typedef void ( * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures);
2409typedef GLboolean ( * PFNGLISTEXTUREEXTPROC) (GLuint texture);
2410typedef 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);
2413typedef void ( * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
2414typedef 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);
2417typedef void ( * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
2418typedef void ( * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
2419__attribute__((visibility("default"))) void glSampleMaskSGIS (GLclampf value, GLboolean invert);
2420__attribute__((visibility("default"))) void glSamplePatternSGIS (GLenum pattern);
2421typedef void ( * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert);
2422typedef 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);
2432typedef void ( * PFNGLARRAYELEMENTEXTPROC) (GLint i);
2433typedef void ( * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2434typedef void ( * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
2435typedef void ( * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer);
2436typedef void ( * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params);
2437typedef void ( * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2438typedef void ( * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2439typedef void ( * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2440typedef void ( * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
2441__attribute__((visibility("default"))) void glBlendEquationEXT (GLenum mode);
2442typedef 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);
2447typedef void ( * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param);
2448typedef void ( * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params);
2449typedef void ( * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param);
2450typedef 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);
2453typedef void ( * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
2454typedef 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);
2457typedef void ( * PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
2458typedef 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);
2465typedef GLint ( * PFNGLGETINSTRUMENTSSGIXPROC) (void);
2466typedef void ( * PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer);
2467typedef GLint ( * PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p);
2468typedef void ( * PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker);
2469typedef void ( * PFNGLSTARTINSTRUMENTSSGIXPROC) (void);
2470typedef void ( * PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker);
2471__attribute__((visibility("default"))) void glFrameZoomSGIX (GLint factor);
2472typedef void ( * PFNGLFRAMEZOOMSGIXPROC) (GLint factor);
2473__attribute__((visibility("default"))) void glTagSampleBufferSGIX (void);
2474typedef 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);
2479typedef 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);
2480typedef 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);
2481typedef void ( * PFNGLDEFORMSGIXPROC) (GLbitfield mask);
2482typedef void ( * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask);
2483__attribute__((visibility("default"))) void glReferencePlaneSGIX (const GLdouble *equation);
2484typedef void ( * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation);
2485__attribute__((visibility("default"))) void glFlushRasterSGIX (void);
2486typedef void ( * PFNGLFLUSHRASTERSGIXPROC) (void);
2487__attribute__((visibility("default"))) void glFogFuncSGIS (GLsizei n, const GLfloat *points);
2488__attribute__((visibility("default"))) void glGetFogFuncSGIS (GLfloat *points);
2489typedef void ( * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points);
2490typedef 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);
2497typedef void ( * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param);
2498typedef void ( * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param);
2499typedef void ( * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params);
2500typedef void ( * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params);
2501typedef void ( * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params);
2502typedef 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);
2505typedef void ( * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
2506typedef void ( * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
2507__attribute__((visibility("default"))) void glHintPGI (GLenum target, GLint mode);
2508typedef 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);
2513typedef void ( * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
2514typedef void ( * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data);
2515typedef void ( * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
2516typedef 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);
2523typedef void ( * PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params);
2524typedef void ( * PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params);
2525typedef void ( * PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param);
2526typedef void ( * PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params);
2527typedef void ( * PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param);
2528typedef void ( * PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params);
2529__attribute__((visibility("default"))) void glIndexMaterialEXT (GLenum face, GLenum mode);
2530typedef void ( * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode);
2531__attribute__((visibility("default"))) void glIndexFuncEXT (GLenum func, GLclampf ref);
2532typedef void ( * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref);
2533__attribute__((visibility("default"))) void glLockArraysEXT (GLint first, GLsizei count);
2534__attribute__((visibility("default"))) void glUnlockArraysEXT (void);
2535typedef void ( * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
2536typedef void ( * PFNGLUNLOCKARRAYSEXTPROC) (void);
2537__attribute__((visibility("default"))) void glCullParameterdvEXT (GLenum pname, GLdouble *params);
2538__attribute__((visibility("default"))) void glCullParameterfvEXT (GLenum pname, GLfloat *params);
2539typedef void ( * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params);
2540typedef 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);
2559typedef void ( * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode);
2560typedef void ( * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param);
2561typedef void ( * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params);
2562typedef void ( * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param);
2563typedef void ( * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params);
2564typedef void ( * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param);
2565typedef void ( * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params);
2566typedef void ( * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param);
2567typedef void ( * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params);
2568typedef void ( * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param);
2569typedef void ( * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params);
2570typedef void ( * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param);
2571typedef void ( * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params);
2572typedef void ( * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params);
2573typedef void ( * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params);
2574typedef void ( * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params);
2575typedef void ( * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params);
2576typedef 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);
2578typedef 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);
2582typedef void ( * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode);
2583typedef void ( * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname);
2584typedef 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);
2591typedef void ( * PFNGLASYNCMARKERSGIXPROC) (GLuint marker);
2592typedef GLint ( * PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp);
2593typedef GLint ( * PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp);
2594typedef GLuint ( * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range);
2595typedef void ( * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range);
2596typedef 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);
2601typedef void ( * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
2602typedef void ( * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer);
2603typedef void ( * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer);
2604typedef 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);
2609typedef void ( * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param);
2610typedef void ( * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param);
2611typedef void ( * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
2612typedef 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);
2630typedef void ( * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
2631typedef void ( * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v);
2632typedef void ( * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
2633typedef void ( * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v);
2634typedef void ( * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
2635typedef void ( * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v);
2636typedef void ( * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue);
2637typedef void ( * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v);
2638typedef void ( * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue);
2639typedef void ( * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v);
2640typedef void ( * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
2641typedef void ( * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v);
2642typedef void ( * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue);
2643typedef void ( * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v);
2644typedef void ( * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue);
2645typedef void ( * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v);
2646typedef void ( * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
2647__attribute__((visibility("default"))) void glTextureNormalEXT (GLenum mode);
2648typedef 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);
2651typedef void ( * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
2652typedef 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);
2658typedef void ( * PFNGLFOGCOORDFEXTPROC) (GLfloat coord);
2659typedef void ( * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord);
2660typedef void ( * PFNGLFOGCOORDDEXTPROC) (GLdouble coord);
2661typedef void ( * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord);
2662typedef 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);
2685typedef void ( * PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz);
2686typedef void ( * PFNGLTANGENT3BVEXTPROC) (const GLbyte *v);
2687typedef void ( * PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz);
2688typedef void ( * PFNGLTANGENT3DVEXTPROC) (const GLdouble *v);
2689typedef void ( * PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz);
2690typedef void ( * PFNGLTANGENT3FVEXTPROC) (const GLfloat *v);
2691typedef void ( * PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz);
2692typedef void ( * PFNGLTANGENT3IVEXTPROC) (const GLint *v);
2693typedef void ( * PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz);
2694typedef void ( * PFNGLTANGENT3SVEXTPROC) (const GLshort *v);
2695typedef void ( * PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz);
2696typedef void ( * PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v);
2697typedef void ( * PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz);
2698typedef void ( * PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v);
2699typedef void ( * PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz);
2700typedef void ( * PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v);
2701typedef void ( * PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz);
2702typedef void ( * PFNGLBINORMAL3IVEXTPROC) (const GLint *v);
2703typedef void ( * PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz);
2704typedef void ( * PFNGLBINORMAL3SVEXTPROC) (const GLshort *v);
2705typedef void ( * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
2706typedef void ( * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer);
2707__attribute__((visibility("default"))) void glFinishTextureSUNX (void);
2708typedef 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);
2717typedef void ( * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor);
2718typedef void ( * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor);
2719typedef void ( * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor);
2720typedef void ( * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor);
2721typedef void ( * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor);
2722typedef void ( * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor);
2723typedef void ( * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor);
2724typedef 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);
2732typedef void ( * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code);
2733typedef void ( * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code);
2734typedef void ( * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code);
2735typedef void ( * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code);
2736typedef void ( * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code);
2737typedef void ( * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code);
2738typedef 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);
2779typedef void ( * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
2780typedef void ( * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v);
2781typedef void ( * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
2782typedef void ( * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v);
2783typedef void ( * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
2784typedef void ( * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v);
2785typedef void ( * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2786typedef void ( * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v);
2787typedef void ( * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2788typedef void ( * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v);
2789typedef void ( * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
2790typedef void ( * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
2791typedef void ( * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2792typedef void ( * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
2793typedef void ( * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
2794typedef void ( * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v);
2795typedef void ( * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
2796typedef void ( * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v);
2797typedef void ( * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2798typedef void ( * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v);
2799typedef 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);
2800typedef void ( * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2801typedef 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);
2802typedef void ( * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2803typedef void ( * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
2804typedef void ( * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v);
2805typedef void ( * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
2806typedef void ( * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v);
2807typedef void ( * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
2808typedef void ( * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v);
2809typedef void ( * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2810typedef void ( * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v);
2811typedef void ( * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2812typedef void ( * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
2813typedef void ( * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
2814typedef void ( * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v);
2815typedef void ( * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
2816typedef void ( * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
2817typedef 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);
2818typedef 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);
2820typedef void ( * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
2821__attribute__((visibility("default"))) void glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
2822typedef 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);
2826typedef void ( * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight);
2827typedef void ( * PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight);
2828typedef 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);
2831typedef void ( * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void);
2832typedef 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);
2846typedef void ( * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params);
2847typedef void ( * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
2848typedef void ( * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
2849typedef void ( * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
2850typedef void ( * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
2851typedef void ( * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
2852typedef void ( * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
2853typedef void ( * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
2854typedef void ( * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
2855typedef void ( * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
2856typedef void ( * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
2857typedef void ( * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params);
2858typedef void ( * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params);
2859__attribute__((visibility("default"))) void glResizeBuffersMESA (void);
2860typedef 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);
2885typedef void ( * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y);
2886typedef void ( * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v);
2887typedef void ( * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y);
2888typedef void ( * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v);
2889typedef void ( * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y);
2890typedef void ( * PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v);
2891typedef void ( * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y);
2892typedef void ( * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v);
2893typedef void ( * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z);
2894typedef void ( * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v);
2895typedef void ( * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z);
2896typedef void ( * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v);
2897typedef void ( * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z);
2898typedef void ( * PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v);
2899typedef void ( * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z);
2900typedef void ( * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v);
2901typedef void ( * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2902typedef void ( * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v);
2903typedef void ( * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2904typedef void ( * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v);
2905typedef void ( * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w);
2906typedef void ( * PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v);
2907typedef void ( * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w);
2908typedef 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);
2911typedef void ( * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
2912typedef 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);
2921typedef void ( * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2922typedef void ( * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2923typedef void ( * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride);
2924typedef void ( * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2925typedef void ( * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2926typedef void ( * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2927typedef void ( * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2928typedef void ( * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride);
2929__attribute__((visibility("default"))) void glTbufferMask3DFX (GLuint mask);
2930typedef void ( * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask);
2931__attribute__((visibility("default"))) void glSampleMaskEXT (GLclampf value, GLboolean invert);
2932__attribute__((visibility("default"))) void glSamplePatternEXT (GLenum pattern);
2933typedef void ( * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert);
2934typedef void ( * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern);
2935__attribute__((visibility("default"))) void glTextureColorMaskSGIS (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
2936typedef void ( * PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
2937__attribute__((visibility("default"))) void glIglooInterfaceSGIX (GLenum pname, const GLvoid *params);
2938typedef 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);
2946typedef void ( * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
2947typedef void ( * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
2948typedef GLboolean ( * PFNGLISFENCENVPROC) (GLuint fence);
2949typedef GLboolean ( * PFNGLTESTFENCENVPROC) (GLuint fence);
2950typedef void ( * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
2951typedef void ( * PFNGLFINISHFENCENVPROC) (GLuint fence);
2952typedef 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);
2962typedef void ( * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
2963typedef void ( * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params);
2964typedef void ( * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params);
2965typedef void ( * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
2966typedef void ( * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params);
2967typedef void ( * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params);
2968typedef void ( * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
2969typedef void ( * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
2970typedef 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);
2973typedef void ( * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
2974typedef 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);
3039typedef GLboolean ( * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences);
3040typedef void ( * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id);
3041typedef void ( * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
3042typedef void ( * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params);
3043typedef void ( * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs);
3044typedef void ( * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
3045typedef void ( * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
3046typedef void ( * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params);
3047typedef void ( * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program);
3048typedef void ( * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);
3049typedef void ( * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params);
3050typedef void ( * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params);
3051typedef void ( * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params);
3052typedef void ( * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
3053typedef GLboolean ( * PFNGLISPROGRAMNVPROC) (GLuint id);
3054typedef void ( * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
3055typedef void ( * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3056typedef void ( * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v);
3057typedef void ( * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3058typedef void ( * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v);
3059typedef void ( * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v);
3060typedef void ( * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v);
3061typedef void ( * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
3062typedef void ( * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
3063typedef void ( * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
3064typedef void ( * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x);
3065typedef void ( * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v);
3066typedef void ( * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x);
3067typedef void ( * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v);
3068typedef void ( * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x);
3069typedef void ( * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v);
3070typedef void ( * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y);
3071typedef void ( * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v);
3072typedef void ( * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y);
3073typedef void ( * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v);
3074typedef void ( * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y);
3075typedef void ( * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v);
3076typedef void ( * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
3077typedef void ( * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v);
3078typedef void ( * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
3079typedef void ( * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v);
3080typedef void ( * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
3081typedef void ( * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v);
3082typedef void ( * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3083typedef void ( * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v);
3084typedef void ( * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3085typedef void ( * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v);
3086typedef void ( * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
3087typedef void ( * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v);
3088typedef void ( * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
3089typedef void ( * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v);
3090typedef void ( * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
3091typedef void ( * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
3092typedef void ( * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
3093typedef void ( * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
3094typedef void ( * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
3095typedef void ( * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
3096typedef void ( * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
3097typedef void ( * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
3098typedef void ( * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
3099typedef void ( * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
3100typedef void ( * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
3101typedef void ( * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
3102typedef 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);
3107typedef void ( * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param);
3108typedef void ( * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param);
3109typedef void ( * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param);
3110typedef 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);
3125typedef GLuint ( * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range);
3126typedef void ( * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id);
3127typedef void ( * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id);
3128typedef void ( * PFNGLBEGINFRAGMENTSHADERATIPROC) (void);
3129typedef void ( * PFNGLENDFRAGMENTSHADERATIPROC) (void);
3130typedef void ( * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);
3131typedef void ( * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);
3132typedef void ( * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
3133typedef void ( * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
3134typedef 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);
3135typedef void ( * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
3136typedef void ( * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
3137typedef 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);
3138typedef 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);
3141typedef void ( * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param);
3142typedef 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);
3155typedef GLuint ( * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage);
3156typedef GLboolean ( * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer);
3157typedef void ( * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
3158typedef void ( * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params);
3159typedef void ( * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params);
3160typedef void ( * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer);
3161typedef void ( * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
3162typedef void ( * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params);
3163typedef void ( * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params);
3164typedef void ( * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
3165typedef void ( * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params);
3166typedef 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);
3209typedef void ( * PFNGLBEGINVERTEXSHADEREXTPROC) (void);
3210typedef void ( * PFNGLENDVERTEXSHADEREXTPROC) (void);
3211typedef void ( * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id);
3212typedef GLuint ( * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range);
3213typedef void ( * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id);
3214typedef void ( * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
3215typedef void ( * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
3216typedef void ( * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
3217typedef void ( * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
3218typedef void ( * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
3219typedef void ( * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
3220typedef void ( * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
3221typedef GLuint ( * PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
3222typedef void ( * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr);
3223typedef void ( * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr);
3224typedef void ( * PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr);
3225typedef void ( * PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr);
3226typedef void ( * PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr);
3227typedef void ( * PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr);
3228typedef void ( * PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr);
3229typedef void ( * PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr);
3230typedef void ( * PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr);
3231typedef void ( * PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr);
3232typedef void ( * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr);
3233typedef void ( * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
3234typedef void ( * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
3235typedef GLuint ( * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value);
3236typedef GLuint ( * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value);
3237typedef GLuint ( * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value);
3238typedef GLuint ( * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value);
3239typedef GLuint ( * PFNGLBINDPARAMETEREXTPROC) (GLenum value);
3240typedef GLboolean ( * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap);
3241typedef void ( * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
3242typedef void ( * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
3243typedef void ( * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
3244typedef void ( * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data);
3245typedef void ( * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
3246typedef void ( * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
3247typedef void ( * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
3248typedef void ( * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
3249typedef void ( * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
3250typedef 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);
3296typedef void ( * PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x);
3297typedef void ( * PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords);
3298typedef void ( * PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x);
3299typedef void ( * PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords);
3300typedef void ( * PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x);
3301typedef void ( * PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords);
3302typedef void ( * PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x);
3303typedef void ( * PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords);
3304typedef void ( * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y);
3305typedef void ( * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords);
3306typedef void ( * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y);
3307typedef void ( * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords);
3308typedef void ( * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y);
3309typedef void ( * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords);
3310typedef void ( * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y);
3311typedef void ( * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords);
3312typedef void ( * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
3313typedef void ( * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
3314typedef void ( * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
3315typedef void ( * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
3316typedef void ( * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
3317typedef void ( * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
3318typedef void ( * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
3319typedef void ( * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
3320typedef void ( * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
3321typedef void ( * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords);
3322typedef void ( * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
3323typedef void ( * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords);
3324typedef void ( * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3325typedef void ( * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords);
3326typedef void ( * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3327typedef void ( * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords);
3328typedef void ( * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
3329typedef void ( * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords);
3330typedef void ( * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz);
3331typedef void ( * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
3332typedef void ( * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz);
3333typedef void ( * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
3334typedef void ( * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
3335typedef void ( * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
3336typedef void ( * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
3337typedef void ( * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
3338typedef void ( * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream);
3339typedef void ( * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param);
3340typedef 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);
3344typedef void ( * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer);
3345typedef void ( * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count);
3346typedef void ( * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);
3347__attribute__((visibility("default"))) void glDrawMeshArraysSUN (GLenum mode, GLint first, GLsizei count, GLsizei width);
3348typedef 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);
3356typedef void ( * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids);
3357typedef void ( * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids);
3358typedef GLboolean ( * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id);
3359typedef void ( * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
3360typedef void ( * PFNGLENDOCCLUSIONQUERYNVPROC) (void);
3361typedef void ( * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params);
3362typedef 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);
3365typedef void ( * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param);
3366typedef void ( * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
3367__attribute__((visibility("default"))) void glActiveStencilFaceEXT (GLenum face);
3368typedef 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);
3374typedef void ( * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer);
3375typedef void ( * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count);
3376typedef void ( * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
3377typedef void ( * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
3378typedef 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);
3387typedef void ( * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences);
3388typedef void ( * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences);
3389typedef void ( * PFNGLSETFENCEAPPLEPROC) (GLuint fence);
3390typedef GLboolean ( * PFNGLISFENCEAPPLEPROC) (GLuint fence);
3391typedef GLboolean ( * PFNGLTESTFENCEAPPLEPROC) (GLuint fence);
3392typedef void ( * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence);
3393typedef GLboolean ( * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name);
3394typedef 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);
3399typedef void ( * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
3400typedef void ( * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays);
3401typedef void ( * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays);
3402typedef 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);
3406typedef void ( * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer);
3407typedef void ( * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer);
3408typedef void ( * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param);
3409__attribute__((visibility("default"))) void glDrawBuffersATI (GLsizei n, const GLenum *bufs);
3410typedef 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);
3417typedef void ( * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3418typedef void ( * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3419typedef void ( * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
3420typedef void ( * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
3421typedef void ( * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
3422typedef 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);
3469typedef void ( * PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y);
3470typedef void ( * PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v);
3471typedef void ( * PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z);
3472typedef void ( * PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v);
3473typedef void ( * PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
3474typedef void ( * PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v);
3475typedef void ( * PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
3476typedef void ( * PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v);
3477typedef void ( * PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
3478typedef void ( * PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v);
3479typedef void ( * PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
3480typedef void ( * PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v);
3481typedef void ( * PFNGLTEXCOORD1HNVPROC) (GLhalfNV s);
3482typedef void ( * PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v);
3483typedef void ( * PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t);
3484typedef void ( * PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v);
3485typedef void ( * PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r);
3486typedef void ( * PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v);
3487typedef void ( * PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
3488typedef void ( * PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v);
3489typedef void ( * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s);
3490typedef void ( * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v);
3491typedef void ( * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t);
3492typedef void ( * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v);
3493typedef void ( * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
3494typedef void ( * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v);
3495typedef void ( * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
3496typedef void ( * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v);
3497typedef void ( * PFNGLFOGCOORDHNVPROC) (GLhalfNV fog);
3498typedef void ( * PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog);
3499typedef void ( * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
3500typedef void ( * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v);
3501typedef void ( * PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight);
3502typedef void ( * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight);
3503typedef void ( * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x);
3504typedef void ( * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v);
3505typedef void ( * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y);
3506typedef void ( * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v);
3507typedef void ( * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
3508typedef void ( * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v);
3509typedef void ( * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
3510typedef void ( * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v);
3511typedef void ( * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
3512typedef void ( * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
3513typedef void ( * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
3514typedef 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);
3517typedef void ( * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer);
3518typedef void ( * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target);
3519__attribute__((visibility("default"))) void glPrimitiveRestartNV (void);
3520__attribute__((visibility("default"))) void glPrimitiveRestartIndexNV (GLuint index);
3521typedef void ( * PFNGLPRIMITIVERESTARTNVPROC) (void);
3522typedef void ( * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index);
3523__attribute__((visibility("default"))) GLvoid* glMapObjectBufferATI (GLuint buffer);
3524__attribute__((visibility("default"))) void glUnmapObjectBufferATI (GLuint buffer);
3525typedef GLvoid* ( * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer);
3526typedef 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);
3529typedef void ( * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
3530typedef 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);
3534typedef void ( * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
3535typedef void ( * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params);
3536typedef void ( * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params);
3537__attribute__((visibility("default"))) void glDepthBoundsEXT (GLclampd zmin, GLclampd zmax);
3538typedef void ( * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax);
3539__attribute__((visibility("default"))) void glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha);
3540typedef 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);
3558typedef GLboolean ( * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer);
3559typedef void ( * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer);
3560typedef void ( * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers);
3561typedef void ( * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers);
3562typedef void ( * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
3563typedef void ( * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
3564typedef GLboolean ( * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer);
3565typedef void ( * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer);
3566typedef void ( * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers);
3567typedef void ( * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers);
3568typedef GLenum ( * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target);
3569typedef void ( * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3570typedef void ( * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
3571typedef void ( * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
3572typedef void ( * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
3573typedef void ( * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
3574typedef void ( * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target);
3575__attribute__((visibility("default"))) void glStringMarkerGREMEDY (GLsizei len, const GLvoid *string);
3576typedef void ( * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string);
3577__attribute__((visibility("default"))) void glStencilClearTagEXT (GLsizei stencilTagBits, GLuint stencilClearTag);
3578typedef 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);
3580typedef 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);
3582typedef 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);
3585typedef void ( * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params);
3586typedef 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);
3589typedef void ( * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
3590typedef 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);
3593typedef void ( * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param);
3594typedef 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);
3611typedef void ( * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
3612typedef void ( * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
3613typedef void ( * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
3614typedef void ( * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3615typedef void ( * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
3616typedef void ( * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
3617typedef void ( * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
3618typedef void ( * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
3619typedef void ( * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
3620typedef void ( * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3621typedef void ( * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
3622typedef void ( * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
3623typedef void ( * PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
3624typedef void ( * PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
3625typedef void ( * PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
3626typedef 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);
3631typedef void ( * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit);
3632typedef void ( * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
3633typedef void ( * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
3634typedef void ( * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
3635__attribute__((visibility("default"))) void glProgramParameteriEXT (GLuint program, GLenum pname, GLint value);
3636typedef 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);
3660typedef void ( * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x);
3661typedef void ( * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y);
3662typedef void ( * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z);
3663typedef void ( * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
3664typedef void ( * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x);
3665typedef void ( * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y);
3666typedef void ( * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
3667typedef void ( * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
3668typedef void ( * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v);
3669typedef void ( * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v);
3670typedef void ( * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v);
3671typedef void ( * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v);
3672typedef void ( * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v);
3673typedef void ( * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v);
3674typedef void ( * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v);
3675typedef void ( * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v);
3676typedef void ( * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v);
3677typedef void ( * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v);
3678typedef void ( * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v);
3679typedef void ( * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v);
3680typedef void ( * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
3681typedef void ( * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params);
3682typedef 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);
3694typedef void ( * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params);
3695typedef void ( * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name);
3696typedef GLint ( * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name);
3697typedef void ( * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0);
3698typedef void ( * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1);
3699typedef void ( * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
3700typedef void ( * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
3701typedef void ( * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
3702typedef void ( * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
3703typedef void ( * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
3704typedef 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);
3707typedef void ( * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
3708typedef 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);
3710typedef 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);
3714typedef void ( * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar);
3715typedef void ( * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth);
3716typedef void ( * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax);
3717__attribute__((visibility("default"))) void glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
3718typedef 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);
3722typedef void ( * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
3723typedef void ( * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
3724typedef 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);
3731typedef void ( * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
3732typedef void ( * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data);
3733typedef void ( * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data);
3734typedef void ( * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
3735typedef void ( * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
3736typedef 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);
3749typedef void ( * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode);
3750typedef void ( * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void);
3751typedef void ( * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode);
3752typedef void ( * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
3753typedef void ( * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
3754typedef void ( * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer);
3755typedef void ( * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
3756typedef void ( * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name);
3757typedef GLint ( * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name);
3758typedef void ( * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
3759typedef void ( * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location);
3760typedef 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);
3764typedef void ( * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer);
3765typedef GLint ( * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location);
3766typedef 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);
3773typedef void ( * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
3774typedef void ( * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params);
3775typedef void ( * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
3776typedef void ( * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params);
3777typedef void ( * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha);
3778typedef void ( * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
3779__attribute__((visibility("default"))) void glFrameTerminatorGREMEDY (void);
3780typedef void ( * PFNGLFRAMETERMINATORGREMEDYPROC) (void);
3781__attribute__((visibility("default"))) void glBeginConditionalRenderNV (GLuint id, GLenum mode);
3782__attribute__((visibility("default"))) void glEndConditionalRenderNV (void);
3783typedef void ( * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode);
3784typedef 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);
3791typedef 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);
3792typedef 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);
3793typedef void ( * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params);
3794typedef void ( * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params);
3795typedef void ( * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params);
3796typedef 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);
3804typedef void ( * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode);
3805typedef void ( * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void);
3806typedef void ( * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
3807typedef void ( * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
3808typedef void ( * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer);
3809typedef void ( * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
3810typedef 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);
4017typedef void ( * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
4018typedef void ( * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
4019typedef void ( * PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m);
4020typedef void ( * PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m);
4021typedef void ( * PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m);
4022typedef void ( * PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m);
4023typedef void ( * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode);
4024typedef void ( * PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
4025typedef void ( * PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
4026typedef void ( * PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
4027typedef void ( * PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
4028typedef void ( * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
4029typedef void ( * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
4030typedef void ( * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
4031typedef void ( * PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
4032typedef void ( * PFNGLMATRIXPOPEXTPROC) (GLenum mode);
4033typedef void ( * PFNGLMATRIXPUSHEXTPROC) (GLenum mode);
4034typedef void ( * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m);
4035typedef void ( * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m);
4036typedef void ( * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m);
4037typedef void ( * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m);
4038typedef void ( * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param);
4039typedef void ( * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params);
4040typedef void ( * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param);
4041typedef void ( * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params);
4042typedef void ( * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
4043typedef void ( * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
4044typedef void ( * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
4045typedef void ( * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
4046typedef void ( * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
4047typedef void ( * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
4048typedef void ( * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
4049typedef void ( * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4050typedef void ( * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
4051typedef void ( * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params);
4052typedef void ( * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params);
4053typedef void ( * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
4054typedef void ( * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
4055typedef 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);
4056typedef 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);
4057typedef void ( * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4058typedef void ( * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
4059typedef void ( * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
4060typedef void ( * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
4061typedef void ( * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
4062typedef void ( * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
4063typedef void ( * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
4064typedef void ( * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
4065typedef void ( * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
4066typedef void ( * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
4067typedef void ( * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
4068typedef void ( * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
4069typedef void ( * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4070typedef void ( * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
4071typedef void ( * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
4072typedef void ( * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
4073typedef void ( * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
4074typedef void ( * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
4075typedef 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);
4076typedef 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);
4077typedef void ( * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
4078typedef void ( * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture);
4079typedef void ( * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
4080typedef void ( * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
4081typedef void ( * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
4082typedef void ( * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
4083typedef void ( * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
4084typedef void ( * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
4085typedef void ( * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
4086typedef void ( * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
4087typedef void ( * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
4088typedef void ( * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
4089typedef void ( * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
4090typedef void ( * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param);
4091typedef void ( * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
4092typedef void ( * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
4093typedef void ( * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
4094typedef void ( * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
4095typedef void ( * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
4096typedef void ( * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params);
4097typedef void ( * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data);
4098typedef void ( * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data);
4099typedef void ( * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid* *data);
4100typedef void ( * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
4101typedef void ( * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
4102typedef void ( * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
4103typedef 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);
4104typedef void ( * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
4105typedef void ( * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
4106typedef void ( * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, GLvoid *img);
4107typedef void ( * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
4108typedef void ( * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
4109typedef void ( * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
4110typedef 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);
4111typedef void ( * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
4112typedef void ( * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
4113typedef void ( * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, GLvoid *img);
4114typedef void ( * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string);
4115typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
4116typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params);
4117typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
4118typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params);
4119typedef void ( * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params);
4120typedef void ( * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params);
4121typedef void ( * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params);
4122typedef void ( * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, GLvoid *string);
4123typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params);
4124typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
4125typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params);
4126typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params);
4127typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
4128typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params);
4129typedef void ( * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
4130typedef void ( * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params);
4131typedef void ( * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params);
4132typedef void ( * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params);
4133typedef void ( * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params);
4134typedef void ( * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params);
4135typedef void ( * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params);
4136typedef void ( * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
4137typedef void ( * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params);
4138typedef void ( * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
4139typedef void ( * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params);
4140typedef void ( * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0);
4141typedef void ( * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
4142typedef void ( * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
4143typedef void ( * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
4144typedef void ( * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0);
4145typedef void ( * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1);
4146typedef void ( * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
4147typedef void ( * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
4148typedef void ( * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
4149typedef void ( * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
4150typedef void ( * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
4151typedef void ( * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
4152typedef void ( * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
4153typedef void ( * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
4154typedef void ( * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
4155typedef void ( * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
4156typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4157typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4158typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4159typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4160typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4161typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4162typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4163typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4164typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
4165typedef void ( * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0);
4166typedef void ( * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
4167typedef void ( * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
4168typedef void ( * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
4169typedef void ( * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
4170typedef void ( * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
4171typedef void ( * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
4172typedef void ( * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
4173typedef void ( * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage);
4174typedef void ( * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data);
4175typedef GLvoid* ( * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access);
4176typedef GLboolean ( * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer);
4177typedef GLvoid* ( * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
4178typedef void ( * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
4179typedef void ( * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
4180typedef void ( * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params);
4181typedef void ( * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, GLvoid* *params);
4182typedef void ( * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data);
4183typedef void ( * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
4184typedef void ( * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
4185typedef void ( * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
4186typedef void ( * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params);
4187typedef GLenum ( * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target);
4188typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
4189typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
4190typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
4191typedef void ( * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
4192typedef void ( * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
4193typedef void ( * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target);
4194typedef void ( * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target);
4195typedef void ( * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
4196typedef void ( * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs);
4197typedef void ( * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
4198typedef void ( * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params);
4199typedef void ( * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
4200typedef void ( * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
4201typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
4202typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
4203typedef void ( * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
4204typedef void ( * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer);
4205typedef void ( * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer);
4206typedef void ( * PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x);
4207typedef void ( * PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y);
4208typedef void ( * PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
4209typedef void ( * PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
4210typedef void ( * PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4211typedef void ( * PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4212typedef void ( * PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4213typedef void ( * PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
4214typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4215typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4216typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4217typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4218typedef void ( * PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4219typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4220typedef void ( * PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4221typedef void ( * PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
4222typedef 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);
4226typedef void ( * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val);
4227typedef void ( * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask);
4228typedef 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);
4236typedef void ( * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id);
4237typedef void ( * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids);
4238typedef void ( * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids);
4239typedef GLboolean ( * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id);
4240typedef void ( * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void);
4241typedef void ( * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void);
4242typedef 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);
4254typedef void ( * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
4255typedef void ( * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
4256typedef void ( * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
4257typedef void ( * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
4258typedef void ( * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
4259typedef void ( * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
4260typedef void ( * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
4261typedef void ( * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList);
4262typedef void ( * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
4263typedef void ( * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
4264typedef 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);
4267typedef void ( * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor);
4268typedef void ( * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode);
4269__attribute__((visibility("default"))) void glProvokingVertexEXT (GLenum mode);
4270typedef 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);
4275typedef void ( * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst);
4276typedef void ( * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
4277typedef void ( * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode);
4278typedef 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);
4281typedef void ( * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer);
4282typedef 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);
4290typedef void ( * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
4291typedef void ( * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
4292typedef GLboolean ( * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname);
4293typedef void ( * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
4294typedef void ( * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
4295typedef 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);
4296typedef 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);
4300typedef GLenum ( * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
4301typedef GLenum ( * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
4302typedef 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);
4315typedef void ( * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
4316typedef void ( * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset);
4317typedef void ( * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
4318typedef void ( * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
4319typedef void ( * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint *params);
4320typedef void ( * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params);
4321typedef void ( * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params);
4322typedef void ( * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params);
4323typedef GLenum ( * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time);
4324typedef void ( * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params);
4325typedef void ( * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params);
4326typedef 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);
4328typedef 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);
4332typedef void ( * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program);
4333typedef void ( * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program);
4334typedef 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);
4349typedef void ( * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access);
4350typedef void ( * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target);
4351typedef GLboolean ( * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target);
4352typedef void ( * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access);
4353typedef void ( * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer);
4354typedef GLboolean ( * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer);
4355typedef void ( * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT *params);
4356typedef void ( * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT *params);
4357typedef void ( * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result);
4358typedef void ( * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value);
4359typedef void ( * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
4360typedef void ( * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params);
4361typedef void ( * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value);
4362typedef 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);
4375typedef void ( * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
4376typedef void ( * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
4377typedef void ( * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride);
4378typedef void ( * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
4379typedef void ( * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride);
4380typedef void ( * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
4381typedef void ( * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride);
4382typedef void ( * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
4383typedef void ( * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride);
4384typedef void ( * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
4385typedef void ( * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride);
4386typedef void ( * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result);
4387__attribute__((visibility("default"))) void glTextureBarrierNV (void);
4388typedef 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);
4391typedef void ( * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
4392typedef 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);
4404typedef void ( * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x);
4405typedef void ( * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y);
4406typedef void ( * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
4407typedef void ( * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
4408typedef void ( * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble *v);
4409typedef void ( * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble *v);
4410typedef void ( * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble *v);
4411typedef void ( * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble *v);
4412typedef void ( * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
4413typedef void ( * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble *params);
4414typedef 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);
4417typedef void ( * PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC) (GLenum target, GLsizei count, const GLuint *params);
4418typedef 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);
4452typedef void ( * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x);
4453typedef void ( * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y);
4454typedef void ( * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
4455typedef void ( * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
4456typedef void ( * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
4457typedef void ( * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
4458typedef void ( * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
4459typedef void ( * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
4460typedef void ( * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x);
4461typedef void ( * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y);
4462typedef void ( * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
4463typedef void ( * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
4464typedef void ( * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
4465typedef void ( * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
4466typedef void ( * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
4467typedef void ( * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
4468typedef void ( * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params);
4469typedef void ( * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x);
4470typedef void ( * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
4471typedef void ( * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
4472typedef void ( * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
4473typedef void ( * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4474typedef void ( * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4475typedef void ( * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4476typedef void ( * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
4477typedef void ( * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x);
4478typedef void ( * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
4479typedef void ( * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
4480typedef void ( * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
4481typedef void ( * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4482typedef void ( * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4483typedef void ( * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
4484typedef 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);
4504typedef void ( * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x);
4505typedef void ( * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y);
4506typedef void ( * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
4507typedef void ( * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
4508typedef void ( * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT *v);
4509typedef void ( * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT *v);
4510typedef void ( * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT *v);
4511typedef void ( * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT *v);
4512typedef void ( * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x);
4513typedef void ( * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y);
4514typedef void ( * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
4515typedef void ( * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
4516typedef void ( * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
4517typedef void ( * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
4518typedef void ( * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
4519typedef void ( * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
4520typedef void ( * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT *params);
4521typedef void ( * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT *params);
4522typedef 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);
4526typedef void ( * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint *names);
4527typedef void ( * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint *names);
4528typedef 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);
4533typedef void ( * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
4534typedef void ( * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
4535typedef void ( * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, GLvoid *userParam);
4536typedef 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);
4547typedef void ( * PFNGLVDPAUINITNVPROC) (const GLvoid *vdpDevice, const GLvoid *getProcAddress);
4548typedef void ( * PFNGLVDPAUFININVPROC) (void);
4549typedef GLvdpauSurfaceNV ( * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
4550typedef GLvdpauSurfaceNV ( * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
4551typedef void ( * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface);
4552typedef void ( * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface);
4553typedef void ( * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
4554typedef void ( * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access);
4555typedef void ( * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
4556typedef 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);
4563typedef void ( * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
4564typedef void ( * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
4565typedef void ( * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
4566typedef void ( * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
4567typedef void ( * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
4568typedef 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);
4570typedef void ( * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val);
4571__attribute__((visibility("default"))) GLsync glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
4572typedef 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);
4575typedef void ( * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
4576typedef 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);
4582typedef 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 );
4586typedef void ( * PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA);
4587typedef void* GLeglImageOES;
4588__attribute__((visibility("default"))) void glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
4589__attribute__((visibility("default"))) void glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
4590typedef void ( * PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
4591typedef void ( * PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
4592typedef int GLfixed;
4593typedef int GLclampx;
4594extern void __assert_fail (__const char *__assertion, __const char *__file,
4595 unsigned int __line, __const char *__function)
4596 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
4597extern void __assert_perror_fail (int __errnum, __const char *__file,
4598 unsigned int __line,
4599 __const char *__function)
4600 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
4601extern void __assert (const char *__assertion, const char *__file, int __line)
4602 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
4603typedef unsigned char __u_char;
4604typedef unsigned short int __u_short;
4605typedef unsigned int __u_int;
4606typedef unsigned long int __u_long;
4607typedef signed char __int8_t;
4608typedef unsigned char __uint8_t;
4609typedef signed short int __int16_t;
4610typedef unsigned short int __uint16_t;
4611typedef signed int __int32_t;
4612typedef 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;
4648typedef __off64_t __loff_t;
4649typedef __quad_t *__qaddr_t;
4650typedef char *__caddr_t;
4651__extension__ typedef int __intptr_t;
4652__extension__ typedef unsigned int __socklen_t;
4653enum
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};
4668extern __const unsigned short int **__ctype_b_loc (void)
4669 __attribute__ ((__nothrow__)) __attribute__ ((__const));
4670extern __const __int32_t **__ctype_tolower_loc (void)
4671 __attribute__ ((__nothrow__)) __attribute__ ((__const));
4672extern __const __int32_t **__ctype_toupper_loc (void)
4673 __attribute__ ((__nothrow__)) __attribute__ ((__const));
4674extern int isalnum (int) __attribute__ ((__nothrow__));
4675extern int isalpha (int) __attribute__ ((__nothrow__));
4676extern int iscntrl (int) __attribute__ ((__nothrow__));
4677extern int isdigit (int) __attribute__ ((__nothrow__));
4678extern int islower (int) __attribute__ ((__nothrow__));
4679extern int isgraph (int) __attribute__ ((__nothrow__));
4680extern int isprint (int) __attribute__ ((__nothrow__));
4681extern int ispunct (int) __attribute__ ((__nothrow__));
4682extern int isspace (int) __attribute__ ((__nothrow__));
4683extern int isupper (int) __attribute__ ((__nothrow__));
4684extern int isxdigit (int) __attribute__ ((__nothrow__));
4685extern int tolower (int __c) __attribute__ ((__nothrow__));
4686extern int toupper (int __c) __attribute__ ((__nothrow__));
4687extern int isblank (int) __attribute__ ((__nothrow__));
4688extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__));
4689extern int isascii (int __c) __attribute__ ((__nothrow__));
4690extern int toascii (int __c) __attribute__ ((__nothrow__));
4691extern int _toupper (int) __attribute__ ((__nothrow__));
4692extern int _tolower (int) __attribute__ ((__nothrow__));
4693extern __inline __attribute__ ((__gnu_inline__)) int
4694__attribute__ ((__nothrow__)) tolower (int __c)
4695{
4696 return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
4697}
4698extern __inline __attribute__ ((__gnu_inline__)) int
4699__attribute__ ((__nothrow__)) toupper (int __c)
4700{
4701 return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
4702}
4703typedef 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;
4711typedef __locale_t locale_t;
4712extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__));
4713extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__));
4714extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__));
4715extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
4716extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__));
4717extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__));
4718extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__));
4719extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__));
4720extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__));
4721extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__));
4722extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
4723extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__));
4724extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
4725extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
4726extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
4727extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
4728typedef float float_t;
4729typedef double double_t;
4730extern double acos (double __x) __attribute__ ((__nothrow__)); extern double __acos (double __x) __attribute__ ((__nothrow__));
4731extern double asin (double __x) __attribute__ ((__nothrow__)); extern double __asin (double __x) __attribute__ ((__nothrow__));
4732extern double atan (double __x) __attribute__ ((__nothrow__)); extern double __atan (double __x) __attribute__ ((__nothrow__));
4733extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__));
4734extern double cos (double __x) __attribute__ ((__nothrow__)); extern double __cos (double __x) __attribute__ ((__nothrow__));
4735extern double sin (double __x) __attribute__ ((__nothrow__)); extern double __sin (double __x) __attribute__ ((__nothrow__));
4736extern double tan (double __x) __attribute__ ((__nothrow__)); extern double __tan (double __x) __attribute__ ((__nothrow__));
4737extern double cosh (double __x) __attribute__ ((__nothrow__)); extern double __cosh (double __x) __attribute__ ((__nothrow__));
4738extern double sinh (double __x) __attribute__ ((__nothrow__)); extern double __sinh (double __x) __attribute__ ((__nothrow__));
4739extern double tanh (double __x) __attribute__ ((__nothrow__)); extern double __tanh (double __x) __attribute__ ((__nothrow__));
4740extern void sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__)); extern void __sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__))
4741 ;
4742extern double acosh (double __x) __attribute__ ((__nothrow__)); extern double __acosh (double __x) __attribute__ ((__nothrow__));
4743extern double asinh (double __x) __attribute__ ((__nothrow__)); extern double __asinh (double __x) __attribute__ ((__nothrow__));
4744extern double atanh (double __x) __attribute__ ((__nothrow__)); extern double __atanh (double __x) __attribute__ ((__nothrow__));
4745extern double exp (double __x) __attribute__ ((__nothrow__)); extern double __exp (double __x) __attribute__ ((__nothrow__));
4746extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__));
4747extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__));
4748extern double log (double __x) __attribute__ ((__nothrow__)); extern double __log (double __x) __attribute__ ((__nothrow__));
4749extern double log10 (double __x) __attribute__ ((__nothrow__)); extern double __log10 (double __x) __attribute__ ((__nothrow__));
4750extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__));
4751extern double exp10 (double __x) __attribute__ ((__nothrow__)); extern double __exp10 (double __x) __attribute__ ((__nothrow__));
4752extern double pow10 (double __x) __attribute__ ((__nothrow__)); extern double __pow10 (double __x) __attribute__ ((__nothrow__));
4753extern double expm1 (double __x) __attribute__ ((__nothrow__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__));
4754extern double log1p (double __x) __attribute__ ((__nothrow__)); extern double __log1p (double __x) __attribute__ ((__nothrow__));
4755extern double logb (double __x) __attribute__ ((__nothrow__)); extern double __logb (double __x) __attribute__ ((__nothrow__));
4756extern double exp2 (double __x) __attribute__ ((__nothrow__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__));
4757extern double log2 (double __x) __attribute__ ((__nothrow__)); extern double __log2 (double __x) __attribute__ ((__nothrow__));
4758extern double pow (double __x, double __y) __attribute__ ((__nothrow__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__));
4759extern double sqrt (double __x) __attribute__ ((__nothrow__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__));
4760extern double hypot (double __x, double __y) __attribute__ ((__nothrow__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__));
4761extern double cbrt (double __x) __attribute__ ((__nothrow__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__));
4762extern double ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4763extern double fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4764extern double floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4765extern double fmod (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__));
4766extern int __isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4767extern int __finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4768extern int isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4769extern int finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4770extern double drem (double __x, double __y) __attribute__ ((__nothrow__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__));
4771extern double significand (double __x) __attribute__ ((__nothrow__)); extern double __significand (double __x) __attribute__ ((__nothrow__));
4772extern double copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4773extern double nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4774extern int __isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4775extern int isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4776extern double j0 (double) __attribute__ ((__nothrow__)); extern double __j0 (double) __attribute__ ((__nothrow__));
4777extern double j1 (double) __attribute__ ((__nothrow__)); extern double __j1 (double) __attribute__ ((__nothrow__));
4778extern double jn (int, double) __attribute__ ((__nothrow__)); extern double __jn (int, double) __attribute__ ((__nothrow__));
4779extern double y0 (double) __attribute__ ((__nothrow__)); extern double __y0 (double) __attribute__ ((__nothrow__));
4780extern double y1 (double) __attribute__ ((__nothrow__)); extern double __y1 (double) __attribute__ ((__nothrow__));
4781extern double yn (int, double) __attribute__ ((__nothrow__)); extern double __yn (int, double) __attribute__ ((__nothrow__));
4782extern double erf (double) __attribute__ ((__nothrow__)); extern double __erf (double) __attribute__ ((__nothrow__));
4783extern double erfc (double) __attribute__ ((__nothrow__)); extern double __erfc (double) __attribute__ ((__nothrow__));
4784extern double lgamma (double) __attribute__ ((__nothrow__)); extern double __lgamma (double) __attribute__ ((__nothrow__));
4785extern double tgamma (double) __attribute__ ((__nothrow__)); extern double __tgamma (double) __attribute__ ((__nothrow__));
4786extern double gamma (double) __attribute__ ((__nothrow__)); extern double __gamma (double) __attribute__ ((__nothrow__));
4787extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__));
4788extern double rint (double __x) __attribute__ ((__nothrow__)); extern double __rint (double __x) __attribute__ ((__nothrow__));
4789extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4790extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4791extern double remainder (double __x, double __y) __attribute__ ((__nothrow__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__));
4792extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__));
4793extern int ilogb (double __x) __attribute__ ((__nothrow__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__));
4794extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__));
4795extern double nearbyint (double __x) __attribute__ ((__nothrow__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__));
4796extern double round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4797extern double trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4798extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__));
4799extern long int lrint (double __x) __attribute__ ((__nothrow__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__));
4800extern long long int llrint (double __x) __attribute__ ((__nothrow__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__));
4801extern long int lround (double __x) __attribute__ ((__nothrow__)); extern long int __lround (double __x) __attribute__ ((__nothrow__));
4802extern long long int llround (double __x) __attribute__ ((__nothrow__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__));
4803extern double fdim (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__));
4804extern double fmax (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__));
4805extern double fmin (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__));
4806extern int __fpclassify (double __value) __attribute__ ((__nothrow__))
4807 __attribute__ ((__const__));
4808extern int __signbit (double __value) __attribute__ ((__nothrow__))
4809 __attribute__ ((__const__));
4810extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__));
4811extern double scalb (double __x, double __n) __attribute__ ((__nothrow__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__));
4812extern float acosf (float __x) __attribute__ ((__nothrow__)); extern float __acosf (float __x) __attribute__ ((__nothrow__));
4813extern float asinf (float __x) __attribute__ ((__nothrow__)); extern float __asinf (float __x) __attribute__ ((__nothrow__));
4814extern float atanf (float __x) __attribute__ ((__nothrow__)); extern float __atanf (float __x) __attribute__ ((__nothrow__));
4815extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__));
4816extern float cosf (float __x) __attribute__ ((__nothrow__)); extern float __cosf (float __x) __attribute__ ((__nothrow__));
4817extern float sinf (float __x) __attribute__ ((__nothrow__)); extern float __sinf (float __x) __attribute__ ((__nothrow__));
4818extern float tanf (float __x) __attribute__ ((__nothrow__)); extern float __tanf (float __x) __attribute__ ((__nothrow__));
4819extern float coshf (float __x) __attribute__ ((__nothrow__)); extern float __coshf (float __x) __attribute__ ((__nothrow__));
4820extern float sinhf (float __x) __attribute__ ((__nothrow__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__));
4821extern float tanhf (float __x) __attribute__ ((__nothrow__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__));
4822extern 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 ;
4828extern float acoshf (float __x) __attribute__ ((__nothrow__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__));
4829extern float asinhf (float __x) __attribute__ ((__nothrow__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__));
4830extern float atanhf (float __x) __attribute__ ((__nothrow__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__));
4831extern float expf (float __x) __attribute__ ((__nothrow__)); extern float __expf (float __x) __attribute__ ((__nothrow__));
4832extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__));
4833extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__));
4834extern float logf (float __x) __attribute__ ((__nothrow__)); extern float __logf (float __x) __attribute__ ((__nothrow__));
4835extern float log10f (float __x) __attribute__ ((__nothrow__)); extern float __log10f (float __x) __attribute__ ((__nothrow__));
4836extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__));
4837extern float exp10f (float __x) __attribute__ ((__nothrow__)); extern float __exp10f (float __x) __attribute__ ((__nothrow__));
4838extern float pow10f (float __x) __attribute__ ((__nothrow__)); extern float __pow10f (float __x) __attribute__ ((__nothrow__));
4839extern float expm1f (float __x) __attribute__ ((__nothrow__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__));
4840extern float log1pf (float __x) __attribute__ ((__nothrow__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__));
4841extern float logbf (float __x) __attribute__ ((__nothrow__)); extern float __logbf (float __x) __attribute__ ((__nothrow__));
4842extern float exp2f (float __x) __attribute__ ((__nothrow__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__));
4843extern float log2f (float __x) __attribute__ ((__nothrow__)); extern float __log2f (float __x) __attribute__ ((__nothrow__));
4844extern float powf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__));
4845extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__));
4846extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__));
4847extern float cbrtf (float __x) __attribute__ ((__nothrow__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__));
4848extern float ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4849extern float fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4850extern float floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4851extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__));
4852extern int __isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4853extern int __finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4854extern int isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4855extern int finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4856extern float dremf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__));
4857extern float significandf (float __x) __attribute__ ((__nothrow__)); extern float __significandf (float __x) __attribute__ ((__nothrow__));
4858extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4859extern float nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4860extern int __isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4861extern int isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4862extern float j0f (float) __attribute__ ((__nothrow__)); extern float __j0f (float) __attribute__ ((__nothrow__));
4863extern float j1f (float) __attribute__ ((__nothrow__)); extern float __j1f (float) __attribute__ ((__nothrow__));
4864extern float jnf (int, float) __attribute__ ((__nothrow__)); extern float __jnf (int, float) __attribute__ ((__nothrow__));
4865extern float y0f (float) __attribute__ ((__nothrow__)); extern float __y0f (float) __attribute__ ((__nothrow__));
4866extern float y1f (float) __attribute__ ((__nothrow__)); extern float __y1f (float) __attribute__ ((__nothrow__));
4867extern float ynf (int, float) __attribute__ ((__nothrow__)); extern float __ynf (int, float) __attribute__ ((__nothrow__));
4868extern float erff (float) __attribute__ ((__nothrow__)); extern float __erff (float) __attribute__ ((__nothrow__));
4869extern float erfcf (float) __attribute__ ((__nothrow__)); extern float __erfcf (float) __attribute__ ((__nothrow__));
4870extern float lgammaf (float) __attribute__ ((__nothrow__)); extern float __lgammaf (float) __attribute__ ((__nothrow__));
4871extern float tgammaf (float) __attribute__ ((__nothrow__)); extern float __tgammaf (float) __attribute__ ((__nothrow__));
4872extern float gammaf (float) __attribute__ ((__nothrow__)); extern float __gammaf (float) __attribute__ ((__nothrow__));
4873extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__));
4874extern float rintf (float __x) __attribute__ ((__nothrow__)); extern float __rintf (float __x) __attribute__ ((__nothrow__));
4875extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4876extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4877extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__));
4878extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__));
4879extern int ilogbf (float __x) __attribute__ ((__nothrow__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__));
4880extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__));
4881extern float nearbyintf (float __x) __attribute__ ((__nothrow__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__));
4882extern float roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4883extern float truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4884extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__));
4885extern long int lrintf (float __x) __attribute__ ((__nothrow__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__));
4886extern long long int llrintf (float __x) __attribute__ ((__nothrow__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__));
4887extern long int lroundf (float __x) __attribute__ ((__nothrow__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__));
4888extern long long int llroundf (float __x) __attribute__ ((__nothrow__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__));
4889extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__));
4890extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__));
4891extern float fminf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__));
4892extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__))
4893 __attribute__ ((__const__));
4894extern int __signbitf (float __value) __attribute__ ((__nothrow__))
4895 __attribute__ ((__const__));
4896extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__));
4897extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__));
4898extern long double acosl (long double __x) __attribute__ ((__nothrow__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__));
4899extern long double asinl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__));
4900extern long double atanl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__));
4901extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__));
4902extern long double cosl (long double __x) __attribute__ ((__nothrow__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__));
4903extern long double sinl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__));
4904extern long double tanl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__));
4905extern long double coshl (long double __x) __attribute__ ((__nothrow__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__));
4906extern long double sinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__));
4907extern long double tanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__));
4908extern 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 ;
4914extern long double acoshl (long double __x) __attribute__ ((__nothrow__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__));
4915extern long double asinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__));
4916extern long double atanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__));
4917extern long double expl (long double __x) __attribute__ ((__nothrow__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__));
4918extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__));
4919extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__));
4920extern long double logl (long double __x) __attribute__ ((__nothrow__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__));
4921extern long double log10l (long double __x) __attribute__ ((__nothrow__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__));
4922extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__));
4923extern long double exp10l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp10l (long double __x) __attribute__ ((__nothrow__));
4924extern long double pow10l (long double __x) __attribute__ ((__nothrow__)); extern long double __pow10l (long double __x) __attribute__ ((__nothrow__));
4925extern long double expm1l (long double __x) __attribute__ ((__nothrow__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__));
4926extern long double log1pl (long double __x) __attribute__ ((__nothrow__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__));
4927extern long double logbl (long double __x) __attribute__ ((__nothrow__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__));
4928extern long double exp2l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__));
4929extern long double log2l (long double __x) __attribute__ ((__nothrow__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__));
4930extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__));
4931extern long double sqrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__));
4932extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__));
4933extern long double cbrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__));
4934extern long double ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4935extern long double fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4936extern long double floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4937extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__));
4938extern int __isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4939extern int __finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4940extern int isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4941extern int finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4942extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__));
4943extern long double significandl (long double __x) __attribute__ ((__nothrow__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__));
4944extern 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__));
4945extern long double nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4946extern int __isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4947extern int isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4948extern long double j0l (long double) __attribute__ ((__nothrow__)); extern long double __j0l (long double) __attribute__ ((__nothrow__));
4949extern long double j1l (long double) __attribute__ ((__nothrow__)); extern long double __j1l (long double) __attribute__ ((__nothrow__));
4950extern long double jnl (int, long double) __attribute__ ((__nothrow__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__));
4951extern long double y0l (long double) __attribute__ ((__nothrow__)); extern long double __y0l (long double) __attribute__ ((__nothrow__));
4952extern long double y1l (long double) __attribute__ ((__nothrow__)); extern long double __y1l (long double) __attribute__ ((__nothrow__));
4953extern long double ynl (int, long double) __attribute__ ((__nothrow__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__));
4954extern long double erfl (long double) __attribute__ ((__nothrow__)); extern long double __erfl (long double) __attribute__ ((__nothrow__));
4955extern long double erfcl (long double) __attribute__ ((__nothrow__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__));
4956extern long double lgammal (long double) __attribute__ ((__nothrow__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__));
4957extern long double tgammal (long double) __attribute__ ((__nothrow__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__));
4958extern long double gammal (long double) __attribute__ ((__nothrow__)); extern long double __gammal (long double) __attribute__ ((__nothrow__));
4959extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__));
4960extern long double rintl (long double __x) __attribute__ ((__nothrow__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__));
4961extern 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__));
4962extern 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__));
4963extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__));
4964extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__));
4965extern int ilogbl (long double __x) __attribute__ ((__nothrow__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__));
4966extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__));
4967extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__));
4968extern long double roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4969extern long double truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4970extern 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__));
4971extern long int lrintl (long double __x) __attribute__ ((__nothrow__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__));
4972extern long long int llrintl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__));
4973extern long int lroundl (long double __x) __attribute__ ((__nothrow__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__));
4974extern long long int llroundl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__));
4975extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__));
4976extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__));
4977extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__));
4978extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__))
4979 __attribute__ ((__const__));
4980extern int __signbitl (long double __value) __attribute__ ((__nothrow__))
4981 __attribute__ ((__const__));
4982extern 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__));
4983extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__));
4984extern int signgam;
4985enum
4986 {
4987 FP_NAN,
4988 FP_INFINITE,
4989 FP_ZERO,
4990 FP_SUBNORMAL,
4991 FP_NORMAL
4992 };
4993typedef enum
4994{
4995 _IEEE_ = -1,
4996 _SVID_,
4997 _XOPEN_,
4998 _POSIX_,
4999 _ISOC_
5000} _LIB_VERSION_TYPE;
5001extern _LIB_VERSION_TYPE _LIB_VERSION;
5002struct exception
5003 {
5004 int type;
5005 char *name;
5006 double arg1;
5007 double arg2;
5008 double retval;
5009 };
5010extern int matherr (struct exception *__exc);
5011union 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 };
5028typedef union
5029 {
5030 union wait *__uptr;
5031 int *__iptr;
5032 } __WAIT_STATUS __attribute__ ((__transparent_union__));
5033typedef struct
5034 {
5035 int quot;
5036 int rem;
5037 } div_t;
5038typedef 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;
5048extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5049extern double atof (__const char *__nptr)
5050 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5051extern int atoi (__const char *__nptr)
5052 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5053extern 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__));
5057extern double strtod (__const char *__restrict __nptr,
5058 char **__restrict __endptr)
5059 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5060extern float strtof (__const char *__restrict __nptr,
5061 char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5062extern long double strtold (__const char *__restrict __nptr,
5063 char **__restrict __endptr)
5064 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5065extern long int strtol (__const char *__restrict __nptr,
5066 char **__restrict __endptr, int __base)
5067 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5068extern 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__
5072extern 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__
5076extern 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__
5080extern 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__
5084extern 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__));
5087extern 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__));
5090extern 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__
5095extern 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__
5100extern 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__));
5104extern 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__));
5107extern 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__));
5110extern 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__));
5114extern __inline __attribute__ ((__gnu_inline__)) double
5115__attribute__ ((__nothrow__)) atof (__const char *__nptr)
5116{
5117 return strtod (__nptr, (char **) ((void *)0));
5118}
5119extern __inline __attribute__ ((__gnu_inline__)) int
5120__attribute__ ((__nothrow__)) atoi (__const char *__nptr)
5121{
5122 return (int) strtol (__nptr, (char **) ((void *)0), 10);
5123}
5124extern __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}
5134extern char *l64a (long int __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5135extern long int a64l (__const char *__s)
5136 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5137typedef __u_char u_char;
5138typedef __u_short u_short;
5139typedef __u_int u_int;
5140typedef __u_long u_long;
5141typedef __quad_t quad_t;
5142typedef __u_quad_t u_quad_t;
5143typedef __fsid_t fsid_t;
5144typedef __loff_t loff_t;
5145typedef __ino_t ino_t;
5146typedef __ino64_t ino64_t;
5147typedef __dev_t dev_t;
5148typedef __gid_t gid_t;
5149typedef __mode_t mode_t;
5150typedef __nlink_t nlink_t;
5151typedef __uid_t uid_t;
5152typedef __off_t off_t;
5153typedef __off64_t off64_t;
5154typedef __pid_t pid_t;
5155typedef __id_t id_t;
5156typedef __ssize_t ssize_t;
5157typedef __daddr_t daddr_t;
5158typedef __caddr_t caddr_t;
5159typedef __key_t key_t;
5160typedef __clock_t clock_t;
5161typedef __time_t time_t;
5162typedef __clockid_t clockid_t;
5163typedef __timer_t timer_t;
5164typedef __useconds_t useconds_t;
5165typedef __suseconds_t suseconds_t;
5166typedef unsigned long int ulong;
5167typedef unsigned short int ushort;
5168typedef unsigned int uint;
5169typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
5170typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
5171typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
5172typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
5173typedef int register_t __attribute__ ((__mode__ (__word__)));
5174typedef int __sig_atomic_t;
5175typedef struct
5176 {
5177 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
5178 } __sigset_t;
5179typedef __sigset_t sigset_t;
5180struct timespec
5181 {
5182 __time_t tv_sec;
5183 long int tv_nsec;
5184 };
5185struct timeval
5186 {
5187 __time_t tv_sec;
5188 __suseconds_t tv_usec;
5189 };
5190typedef long int __fd_mask;
5191typedef struct
5192 {
5193 __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
5194 } fd_set;
5195typedef __fd_mask fd_mask;
5196extern int select (int __nfds, fd_set *__restrict __readfds,
5197 fd_set *__restrict __writefds,
5198 fd_set *__restrict __exceptfds,
5199 struct timeval *__restrict __timeout);
5200extern 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__
5206extern unsigned int gnu_dev_major (unsigned long long int __dev)
5207 __attribute__ ((__nothrow__));
5208__extension__
5209extern unsigned int gnu_dev_minor (unsigned long long int __dev)
5210 __attribute__ ((__nothrow__));
5211__extension__
5212extern 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}
5232typedef __blksize_t blksize_t;
5233typedef __blkcnt_t blkcnt_t;
5234typedef __fsblkcnt_t fsblkcnt_t;
5235typedef __fsfilcnt_t fsfilcnt_t;
5236typedef __blkcnt64_t blkcnt64_t;
5237typedef __fsblkcnt64_t fsblkcnt64_t;
5238typedef __fsfilcnt64_t fsfilcnt64_t;
5239typedef unsigned long int pthread_t;
5240typedef union
5241{
5242 char __size[36];
5243 long int __align;
5244} pthread_attr_t;
5245typedef struct __pthread_internal_slist
5246{
5247 struct __pthread_internal_slist *__next;
5248} __pthread_slist_t;
5249typedef 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;
5270typedef union
5271{
5272 char __size[4];
5273 long int __align;
5274} pthread_mutexattr_t;
5275typedef 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;
5292typedef union
5293{
5294 char __size[4];
5295 long int __align;
5296} pthread_condattr_t;
5297typedef unsigned int pthread_key_t;
5298typedef int pthread_once_t;
5299typedef 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;
5323typedef union
5324{
5325 char __size[8];
5326 long int __align;
5327} pthread_rwlockattr_t;
5328typedef volatile int pthread_spinlock_t;
5329typedef union
5330{
5331 char __size[48];
5332 long int __align;
5333} pthread_barrier_t;
5334typedef union
5335{
5336 char __size[4];
5337 int __align;
5338} pthread_barrierattr_t;
5339extern long int random (void) __attribute__ ((__nothrow__));
5340extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
5341extern char *initstate (unsigned int __seed, char *__statebuf,
5342 size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5343extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5344struct 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 };
5354extern int random_r (struct random_data *__restrict __buf,
5355 int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5356extern int srandom_r (unsigned int __seed, struct random_data *__buf)
5357 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5358extern 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)));
5362extern int setstate_r (char *__restrict __statebuf,
5363 struct random_data *__restrict __buf)
5364 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5365extern int rand (void) __attribute__ ((__nothrow__));
5366extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
5367extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
5368extern double drand48 (void) __attribute__ ((__nothrow__));
5369extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5370extern long int lrand48 (void) __attribute__ ((__nothrow__));
5371extern long int nrand48 (unsigned short int __xsubi[3])
5372 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5373extern long int mrand48 (void) __attribute__ ((__nothrow__));
5374extern long int jrand48 (unsigned short int __xsubi[3])
5375 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5376extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
5377extern unsigned short int *seed48 (unsigned short int __seed16v[3])
5378 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5379extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5380struct 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 };
5388extern int drand48_r (struct drand48_data *__restrict __buffer,
5389 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5390extern int erand48_r (unsigned short int __xsubi[3],
5391 struct drand48_data *__restrict __buffer,
5392 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5393extern int lrand48_r (struct drand48_data *__restrict __buffer,
5394 long int *__restrict __result)
5395 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5396extern 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)));
5400extern int mrand48_r (struct drand48_data *__restrict __buffer,
5401 long int *__restrict __result)
5402 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5403extern 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)));
5407extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
5408 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5409extern int seed48_r (unsigned short int __seed16v[3],
5410 struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5411extern int lcong48_r (unsigned short int __param[7],
5412 struct drand48_data *__buffer)
5413 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5414extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
5415extern void *calloc (size_t __nmemb, size_t __size)
5416 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
5417extern void *realloc (void *__ptr, size_t __size)
5418 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5419extern void free (void *__ptr) __attribute__ ((__nothrow__));
5420extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
5421extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
5422extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
5423extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
5424 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5425extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
5426extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5427extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5428extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
5429 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5430extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
5431extern void quick_exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
5432extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
5433extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5434extern char *__secure_getenv (__const char *__name)
5435 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5436extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5437extern int setenv (__const char *__name, __const char *__value, int __replace)
5438 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5439extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5440extern int clearenv (void) __attribute__ ((__nothrow__));
5441extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5442extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5443extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5444extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5445extern int mkstemps64 (char *__template, int __suffixlen)
5446 __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5447extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5448extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5449extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5450extern int mkostemps (char *__template, int __suffixlen, int __flags)
5451 __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5452extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
5453 __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5454extern int system (__const char *__command) __attribute__ ((__warn_unused_result__));
5455extern char *canonicalize_file_name (__const char *__name)
5456 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5457extern char *realpath (__const char *__restrict __name,
5458 char *__restrict __resolved) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5459typedef int (*__compar_fn_t) (__const void *, __const void *);
5460typedef __compar_fn_t comparison_fn_t;
5461typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *);
5462extern 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__));
5465extern void qsort (void *__base, size_t __nmemb, size_t __size,
5466 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
5467extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
5468 __compar_d_fn_t __compar, void *__arg)
5469 __attribute__ ((__nonnull__ (1, 4)));
5470extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
5471extern 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__));
5474extern div_t div (int __numer, int __denom)
5475 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
5476extern 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__));
5481extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
5482 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
5483extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
5484 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
5485extern char *gcvt (double __value, int __ndigit, char *__buf)
5486 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
5487extern 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__));
5490extern 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__));
5493extern char *qgcvt (long double __value, int __ndigit, char *__buf)
5494 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
5495extern 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)));
5498extern 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)));
5501extern 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)));
5505extern 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)));
5509extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5510extern int mbtowc (wchar_t *__restrict __pwc,
5511 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5512extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5513extern size_t mbstowcs (wchar_t *__restrict __pwcs,
5514 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
5515extern size_t wcstombs (char *__restrict __s,
5516 __const wchar_t *__restrict __pwcs, size_t __n)
5517 __attribute__ ((__nothrow__));
5518extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
5519extern 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__));
5523extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5524extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__));
5525extern int grantpt (int __fd) __attribute__ ((__nothrow__));
5526extern int unlockpt (int __fd) __attribute__ ((__nothrow__));
5527extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5528extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
5529 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5530extern int getpt (void);
5531extern int getloadavg (double __loadavg[], int __nelem)
5532 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5533extern char *__realpath_chk (__const char *__restrict __name,
5534 char *__restrict __resolved,
5535 size_t __resolvedlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5536extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__))
5537 __attribute__ ((__warn_unused_result__));
5538extern 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 ;
5542extern __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}
5553extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen,
5554 size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5555extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__))
5556 __attribute__ ((__nonnull__ (2)));
5557extern 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 ;
5560extern __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}
5572extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen)
5573 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5574extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__))
5575 __attribute__ ((__warn_unused_result__));
5576extern __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}
5583extern size_t __mbstowcs_chk (wchar_t *__restrict __dst,
5584 __const char *__restrict __src,
5585 size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
5586extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__))
5587 ;
5588extern 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 ;
5591extern __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}
5605extern size_t __wcstombs_chk (char *__restrict __dst,
5606 __const wchar_t *__restrict __src,
5607 size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
5608extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__))
5609 ;
5610extern 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")));
5612extern __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}
5624struct _IO_FILE;
5625typedef struct _IO_FILE FILE;
5626typedef struct _IO_FILE __FILE;
5627typedef struct
5628{
5629 int __count;
5630 union
5631 {
5632 unsigned int __wch;
5633 char __wchb[4];
5634 } __value;
5635} __mbstate_t;
5636typedef struct
5637{
5638 __off_t __pos;
5639 __mbstate_t __state;
5640} _G_fpos_t;
5641typedef struct
5642{
5643 __off64_t __pos;
5644 __mbstate_t __state;
5645} _G_fpos64_t;
5646typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
5647typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
5648typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
5649typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
5650typedef __builtin_va_list __gnuc_va_list;
5651struct _IO_jump_t; struct _IO_FILE;
5652typedef void _IO_lock_t;
5653struct _IO_marker {
5654 struct _IO_marker *_next;
5655 struct _IO_FILE *_sbuf;
5656 int _pos;
5657};
5658enum __codecvt_result
5659{
5660 __codecvt_ok,
5661 __codecvt_partial,
5662 __codecvt_error,
5663 __codecvt_noconv
5664};
5665struct _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};
5696typedef struct _IO_FILE _IO_FILE;
5697struct _IO_FILE_plus;
5698extern struct _IO_FILE_plus _IO_2_1_stdin_;
5699extern struct _IO_FILE_plus _IO_2_1_stdout_;
5700extern struct _IO_FILE_plus _IO_2_1_stderr_;
5701typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
5702typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
5703 size_t __n);
5704typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
5705typedef int __io_close_fn (void *__cookie);
5706typedef __io_read_fn cookie_read_function_t;
5707typedef __io_write_fn cookie_write_function_t;
5708typedef __io_seek_fn cookie_seek_function_t;
5709typedef __io_close_fn cookie_close_function_t;
5710typedef 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;
5717typedef _IO_cookie_io_functions_t cookie_io_functions_t;
5718struct _IO_cookie_file;
5719extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
5720 void *__cookie, _IO_cookie_io_functions_t __fns);
5721extern int __underflow (_IO_FILE *);
5722extern int __uflow (_IO_FILE *);
5723extern int __overflow (_IO_FILE *, int);
5724extern int _IO_getc (_IO_FILE *__fp);
5725extern int _IO_putc (int __c, _IO_FILE *__fp);
5726extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
5727extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
5728extern int _IO_peekc_locked (_IO_FILE *__fp);
5729extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
5730extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
5731extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
5732extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
5733 __gnuc_va_list, int *__restrict);
5734extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
5735 __gnuc_va_list);
5736extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
5737extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
5738extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
5739extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
5740extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
5741typedef __gnuc_va_list va_list;
5742typedef _G_fpos_t fpos_t;
5743typedef _G_fpos64_t fpos64_t;
5744extern struct _IO_FILE *stdin;
5745extern struct _IO_FILE *stdout;
5746extern struct _IO_FILE *stderr;
5747extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
5748extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
5749extern int renameat (int __oldfd, __const char *__old, int __newfd,
5750 __const char *__new) __attribute__ ((__nothrow__));
5751extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__));
5752extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__));
5753extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5754extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5755extern char *tempnam (__const char *__dir, __const char *__pfx)
5756 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
5757extern int fclose (FILE *__stream);
5758extern int fflush (FILE *__stream);
5759extern int fflush_unlocked (FILE *__stream);
5760extern int fcloseall (void);
5761extern FILE *fopen (__const char *__restrict __filename,
5762 __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
5763extern FILE *freopen (__const char *__restrict __filename,
5764 __const char *__restrict __modes,
5765 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5766extern FILE *fopen64 (__const char *__restrict __filename,
5767 __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
5768extern FILE *freopen64 (__const char *__restrict __filename,
5769 __const char *__restrict __modes,
5770 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5771extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5772extern 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__));
5775extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
5776 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5777extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5778extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
5779extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
5780 int __modes, size_t __n) __attribute__ ((__nothrow__));
5781extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
5782 size_t __size) __attribute__ ((__nothrow__));
5783extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
5784extern int fprintf (FILE *__restrict __stream,
5785 __const char *__restrict __format, ...);
5786extern int printf (__const char *__restrict __format, ...);
5787extern int sprintf (char *__restrict __s,
5788 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
5789extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
5790 __gnuc_va_list __arg);
5791extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
5792extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
5793 __gnuc_va_list __arg) __attribute__ ((__nothrow__));
5794extern int snprintf (char *__restrict __s, size_t __maxlen,
5795 __const char *__restrict __format, ...)
5796 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
5797extern 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)));
5800extern 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__));
5803extern int __asprintf (char **__restrict __ptr,
5804 __const char *__restrict __fmt, ...)
5805 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__));
5806extern int asprintf (char **__restrict __ptr,
5807 __const char *__restrict __fmt, ...)
5808 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__));
5809extern int vdprintf (int __fd, __const char *__restrict __fmt,
5810 __gnuc_va_list __arg)
5811 __attribute__ ((__format__ (__printf__, 2, 0)));
5812extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
5813 __attribute__ ((__format__ (__printf__, 2, 3)));
5814extern int fscanf (FILE *__restrict __stream,
5815 __const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
5816extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
5817extern int sscanf (__const char *__restrict __s,
5818 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
5819extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
5820 __gnuc_va_list __arg)
5821 __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__));
5822extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
5823 __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
5824extern int vsscanf (__const char *__restrict __s,
5825 __const char *__restrict __format, __gnuc_va_list __arg)
5826 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
5827extern int fgetc (FILE *__stream);
5828extern int getc (FILE *__stream);
5829extern int getchar (void);
5830extern int getc_unlocked (FILE *__stream);
5831extern int getchar_unlocked (void);
5832extern int fgetc_unlocked (FILE *__stream);
5833extern int fputc (int __c, FILE *__stream);
5834extern int putc (int __c, FILE *__stream);
5835extern int putchar (int __c);
5836extern int fputc_unlocked (int __c, FILE *__stream);
5837extern int putc_unlocked (int __c, FILE *__stream);
5838extern int putchar_unlocked (int __c);
5839extern int getw (FILE *__stream);
5840extern int putw (int __w, FILE *__stream);
5841extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
5842 __attribute__ ((__warn_unused_result__));
5843extern char *gets (char *__s) __attribute__ ((__warn_unused_result__));
5844extern char *fgets_unlocked (char *__restrict __s, int __n,
5845 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5846extern __ssize_t __getdelim (char **__restrict __lineptr,
5847 size_t *__restrict __n, int __delimiter,
5848 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5849extern __ssize_t getdelim (char **__restrict __lineptr,
5850 size_t *__restrict __n, int __delimiter,
5851 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5852extern __ssize_t getline (char **__restrict __lineptr,
5853 size_t *__restrict __n,
5854 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5855extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
5856extern int puts (__const char *__s);
5857extern int ungetc (int __c, FILE *__stream);
5858extern size_t fread (void *__restrict __ptr, size_t __size,
5859 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5860extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
5861 size_t __n, FILE *__restrict __s) __attribute__ ((__warn_unused_result__));
5862extern int fputs_unlocked (__const char *__restrict __s,
5863 FILE *__restrict __stream);
5864extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
5865 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5866extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
5867 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
5868extern int fseek (FILE *__stream, long int __off, int __whence);
5869extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__));
5870extern void rewind (FILE *__stream);
5871extern int fseeko (FILE *__stream, __off_t __off, int __whence);
5872extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__));
5873extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
5874extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
5875extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
5876extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__));
5877extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
5878extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
5879extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
5880extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5881extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5882extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
5883extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5884extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5885extern void perror (__const char *__s);
5886extern int sys_nerr;
5887extern __const char *__const sys_errlist[];
5888extern int _sys_nerr;
5889extern __const char *__const _sys_errlist[];
5890extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5891extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5892extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__));
5893extern int pclose (FILE *__stream);
5894extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
5895extern char *cuserid (char *__s);
5896struct obstack;
5897extern int obstack_printf (struct obstack *__restrict __obstack,
5898 __const char *__restrict __format, ...)
5899 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
5900extern 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)));
5904extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
5905extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
5906extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
5907extern __inline __attribute__ ((__gnu_inline__)) int
5908getchar (void)
5909{
5910 return _IO_getc (stdin);
5911}
5912extern __inline __attribute__ ((__gnu_inline__)) int
5913fgetc_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}
5917extern __inline __attribute__ ((__gnu_inline__)) int
5918getc_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}
5922extern __inline __attribute__ ((__gnu_inline__)) int
5923getchar_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}
5927extern __inline __attribute__ ((__gnu_inline__)) int
5928putchar (int __c)
5929{
5930 return _IO_putc (__c, stdout);
5931}
5932extern __inline __attribute__ ((__gnu_inline__)) int
5933fputc_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}
5937extern __inline __attribute__ ((__gnu_inline__)) int
5938putc_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}
5942extern __inline __attribute__ ((__gnu_inline__)) int
5943putchar_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}
5947extern __inline __attribute__ ((__gnu_inline__)) __ssize_t
5948getline (char **__lineptr, size_t *__n, FILE *__stream)
5949{
5950 return __getdelim (__lineptr, __n, '\n', __stream);
5951}
5952extern __inline __attribute__ ((__gnu_inline__)) int
5953__attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
5954{
5955 return (((__stream)->_flags & 0x10) != 0);
5956}
5957extern __inline __attribute__ ((__gnu_inline__)) int
5958__attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
5959{
5960 return (((__stream)->_flags & 0x20) != 0);
5961}
5962extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen,
5963 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
5964extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
5965 __const char *__restrict __format,
5966 __gnuc_va_list __ap) __attribute__ ((__nothrow__));
5967extern __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}
5973extern __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}
5979extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag,
5980 size_t __slen, __const char *__restrict __format,
5981 ...) __attribute__ ((__nothrow__));
5982extern 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__));
5985extern __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}
5991extern __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}
5997extern int __fprintf_chk (FILE *__restrict __stream, int __flag,
5998 __const char *__restrict __format, ...);
5999extern int __printf_chk (int __flag, __const char *__restrict __format, ...);
6000extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
6001 __const char *__restrict __format, __gnuc_va_list __ap);
6002extern int __vprintf_chk (int __flag, __const char *__restrict __format,
6003 __gnuc_va_list __ap);
6004extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6005fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...)
6006{
6007 return __fprintf_chk (__stream, 2 - 1, __fmt,
6008 __builtin_va_arg_pack ());
6009}
6010extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6011printf (__const char *__restrict __fmt, ...)
6012{
6013 return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ());
6014}
6015extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6016vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap)
6017{
6018 return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap);
6019}
6020extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6021vfprintf (FILE *__restrict __stream,
6022 __const char *__restrict __fmt, __gnuc_va_list __ap)
6023{
6024 return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap);
6025}
6026extern 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__));
6029extern 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__));
6032extern int __dprintf_chk (int __fd, int __flag, __const char *__restrict __fmt,
6033 ...) __attribute__ ((__format__ (__printf__, 3, 4)));
6034extern int __vdprintf_chk (int __fd, int __flag,
6035 __const char *__restrict __fmt, __gnuc_va_list __arg)
6036 __attribute__ ((__format__ (__printf__, 3, 0)));
6037extern int __obstack_printf_chk (struct obstack *__restrict __obstack,
6038 int __flag, __const char *__restrict __format,
6039 ...)
6040 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
6041extern 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)));
6046extern __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}
6052extern __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}
6058extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6059dprintf (int __fd, __const char *__restrict __fmt, ...)
6060{
6061 return __dprintf_chk (__fd, 2 - 1, __fmt,
6062 __builtin_va_arg_pack ());
6063}
6064extern __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}
6070extern __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}
6075extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int
6076vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __ap)
6077{
6078 return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap);
6079}
6080extern __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}
6086extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__));
6087extern 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 ;
6090extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
6091gets (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}
6097extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
6098 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
6099extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets")
6100 __attribute__ ((__warn_unused_result__));
6101extern 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 ;
6104extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
6105fgets (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}
6116extern 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__));
6119extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread")
6120 __attribute__ ((__warn_unused_result__));
6121extern 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 ;
6124extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t
6125fread (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}
6139extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size,
6140 int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
6141extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked")
6142 __attribute__ ((__warn_unused_result__));
6143extern 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 ;
6146extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char *
6147fgets_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}
6158extern 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__));
6161extern 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__));
6163extern 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 ;
6166extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t
6167fread_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}
6201extern void *memcpy (void *__restrict __dest,
6202 __const void *__restrict __src, size_t __n)
6203 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6204extern void *memmove (void *__dest, __const void *__src, size_t __n)
6205 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6206extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
6207 int __c, size_t __n)
6208 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6209extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6210extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
6211 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6212extern void *memchr (__const void *__s, int __c, size_t __n)
6213 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6214extern void *rawmemchr (__const void *__s, int __c)
6215 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6216extern void *memrchr (__const void *__s, int __c, size_t __n)
6217 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6218extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
6219 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6220extern char *strncpy (char *__restrict __dest,
6221 __const char *__restrict __src, size_t __n)
6222 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6223extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
6224 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6225extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
6226 size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6227extern int strcmp (__const char *__s1, __const char *__s2)
6228 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6229extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
6230 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6231extern int strcoll (__const char *__s1, __const char *__s2)
6232 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6233extern size_t strxfrm (char *__restrict __dest,
6234 __const char *__restrict __src, size_t __n)
6235 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6236extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
6237 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
6238extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
6239 __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
6240extern char *strdup (__const char *__s)
6241 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
6242extern char *strndup (__const char *__string, size_t __n)
6243 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
6244extern char *strchr (__const char *__s, int __c)
6245 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6246extern char *strrchr (__const char *__s, int __c)
6247 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6248extern char *strchrnul (__const char *__s, int __c)
6249 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6250extern size_t strcspn (__const char *__s, __const char *__reject)
6251 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6252extern size_t strspn (__const char *__s, __const char *__accept)
6253 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6254extern char *strpbrk (__const char *__s, __const char *__accept)
6255 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6256extern char *strstr (__const char *__haystack, __const char *__needle)
6257 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6258extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
6259 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6260extern char *__strtok_r (char *__restrict __s,
6261 __const char *__restrict __delim,
6262 char **__restrict __save_ptr)
6263 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
6264extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
6265 char **__restrict __save_ptr)
6266 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
6267extern char *strcasestr (__const char *__haystack, __const char *__needle)
6268 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6269extern void *memmem (__const void *__haystack, size_t __haystacklen,
6270 __const void *__needle, size_t __needlelen)
6271 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
6272extern void *__mempcpy (void *__restrict __dest,
6273 __const void *__restrict __src, size_t __n)
6274 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6275extern void *mempcpy (void *__restrict __dest,
6276 __const void *__restrict __src, size_t __n)
6277 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6278extern size_t strlen (__const char *__s)
6279 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6280extern size_t strnlen (__const char *__string, size_t __maxlen)
6281 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6282extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
6283extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
6284 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6285extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
6286extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6287extern void bcopy (__const void *__src, void *__dest, size_t __n)
6288 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6289extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6290extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
6291 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6292extern char *index (__const char *__s, int __c)
6293 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6294extern char *rindex (__const char *__s, int __c)
6295 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
6296extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6297extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6298__extension__ extern int ffsll (long long int __ll)
6299 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6300extern int strcasecmp (__const char *__s1, __const char *__s2)
6301 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6302extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
6303 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6304extern int strcasecmp_l (__const char *__s1, __const char *__s2,
6305 __locale_t __loc)
6306 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
6307extern 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)));
6310extern char *strsep (char **__restrict __stringp,
6311 __const char *__restrict __delim)
6312 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6313extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
6314extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
6315 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6316extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
6317 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6318extern char *__stpncpy (char *__restrict __dest,
6319 __const char *__restrict __src, size_t __n)
6320 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6321extern char *stpncpy (char *__restrict __dest,
6322 __const char *__restrict __src, size_t __n)
6323 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6324extern int strverscmp (__const char *__s1, __const char *__s2)
6325 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
6326extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6327extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6328extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6329typedef struct { unsigned char __arr[2]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR2;
6330typedef struct { unsigned char __arr[3]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR3;
6331typedef struct { unsigned char __arr[4]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR4;
6332typedef struct { unsigned char __arr[5]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR5;
6333typedef struct { unsigned char __arr[6]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR6;
6334typedef struct { unsigned char __arr[7]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR7;
6335typedef struct { unsigned char __arr[8]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR8;
6336extern void *__rawmemchr (const void *__s, int __c);
6337extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c1 (__const char *__s, int __reject);
6338extern __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}
6346extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c2 (__const char *__s, int __reject1,
6347 int __reject2);
6348extern __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}
6357extern __inline __attribute__ ((__gnu_inline__)) size_t __strcspn_c3 (__const char *__s, int __reject1,
6358 int __reject2, int __reject3);
6359extern __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}
6369extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c1 (__const char *__s, int __accept);
6370extern __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}
6378extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c2 (__const char *__s, int __accept1,
6379 int __accept2);
6380extern __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}
6388extern __inline __attribute__ ((__gnu_inline__)) size_t __strspn_c3 (__const char *__s, int __accept1,
6389 int __accept2, int __accept3);
6390extern __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}
6399extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c2 (__const char *__s, int __accept1,
6400 int __accept2);
6401extern __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}
6408extern __inline __attribute__ ((__gnu_inline__)) char *__strpbrk_c3 (__const char *__s, int __accept1,
6409 int __accept2, int __accept3);
6410extern __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}
6419extern __inline __attribute__ ((__gnu_inline__)) char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
6420extern __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}
6442extern char *__strsep_g (char **__stringp, __const char *__delim);
6443extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_1c (char **__s, char __reject);
6444extern __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}
6452extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_2c (char **__s, char __reject1, char __reject2);
6453extern __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}
6478extern __inline __attribute__ ((__gnu_inline__)) char *__strsep_3c (char **__s, char __reject1, char __reject2,
6479 char __reject3);
6480extern __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}
6505extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
6506extern char *__strndup (__const char *__string, size_t __n)
6507 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
6508extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters")))
6509 ;
6510extern __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}
6515extern __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}
6520extern __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}
6525extern __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}
6536extern __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}
6541extern __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}
6546extern __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}
6551extern __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}
6556extern __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}
6561extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
6562 size_t __destlen) __attribute__ ((__nothrow__));
6563extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__))
6564 ;
6565extern __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}
6573extern __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}
6578extern __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}
6583typedef union { GLfloat f; GLint i; } fi_type;
6584static __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}
6595static __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}
6601static __inline__ int GET_FLOAT_BITS( float x )
6602{
6603 fi_type fi;
6604 fi.f = x;
6605 return fi.i;
6606}
6607static __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}
6618static __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}
6629static __inline__ int
6630_mesa_is_pow_two(int x)
6631{
6632 return !(x & (x - 1));
6633}
6634static __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}
6640static __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}
6649static __inline__ GLuint
6650_mesa_logbase2(GLuint n)
6651{
6652 return (31 - __builtin_clz(n | 1));
6653}
6654static __inline__ GLboolean
6655_mesa_little_endian(void)
6656{
6657 const GLuint ui = 1;
6658 return *((const GLubyte *) &ui);
6659}
6660extern void *
6661_mesa_align_malloc( size_t bytes, unsigned long alignment );
6662extern void *
6663_mesa_align_calloc( size_t bytes, unsigned long alignment );
6664extern void
6665_mesa_align_free( void *ptr );
6666extern void *
6667_mesa_align_realloc(void *oldBuffer, size_t oldSize, size_t newSize,
6668 unsigned long alignment);
6669extern void *
6670_mesa_exec_malloc( GLuint size );
6671extern void
6672_mesa_exec_free( void *addr );
6673extern void *
6674_mesa_realloc( void *oldBuffer, size_t oldSize, size_t newSize );
6675extern void
6676_mesa_memset16( unsigned short *dst, unsigned short val, size_t n );
6677extern double
6678_mesa_sqrtd(double x);
6679extern float
6680_mesa_sqrtf(float x);
6681extern float
6682_mesa_inv_sqrtf(float x);
6683extern void
6684_mesa_init_sqrt_table(void);
6685extern GLhalfARB
6686_mesa_float_to_half(float f);
6687extern float
6688_mesa_half_to_float(GLhalfARB h);
6689extern void *
6690_mesa_bsearch( const void *key, const void *base, size_t nmemb, size_t size,
6691 int (*compar)(const void *, const void *) );
6692extern char *
6693_mesa_getenv( const char *var );
6694extern char *
6695_mesa_strdup( const char *s );
6696extern float
6697_mesa_strtof( const char *s, char **end );
6698extern unsigned int
6699_mesa_str_checksum(const char *str);
6700extern int
6701_mesa_snprintf( char *str, size_t size, const char *fmt, ... ) __attribute__ ((format(__printf__, 3, 4)));
6702struct gl_context;
6703extern void
6704_mesa_warning( struct gl_context *gc, const char *fmtString, ... ) __attribute__ ((format(__printf__, 2, 3)));
6705extern void
6706_mesa_problem( const struct gl_context *ctx, const char *fmtString, ... ) __attribute__ ((format(__printf__, 2, 3)));
6707extern void
6708_mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... ) __attribute__ ((format(__printf__, 3, 4)));
6709extern void
6710_mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) __attribute__ ((format(__printf__, 2, 3)));
6711struct sched_param
6712 {
6713 int __sched_priority;
6714 };
6715extern int clone (int (*__fn) (void *__arg), void *__child_stack,
6716 int __flags, void *__arg, ...) __attribute__ ((__nothrow__));
6717extern int unshare (int __flags) __attribute__ ((__nothrow__));
6718extern int sched_getcpu (void) __attribute__ ((__nothrow__));
6719struct __sched_param
6720 {
6721 int __sched_priority;
6722 };
6723typedef unsigned long int __cpu_mask;
6724typedef struct
6725{
6726 __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
6727} cpu_set_t;
6728extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
6729 __attribute__ ((__nothrow__));
6730extern cpu_set_t *__sched_cpualloc (size_t __count) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
6731extern void __sched_cpufree (cpu_set_t *__set) __attribute__ ((__nothrow__));
6732extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
6733 __attribute__ ((__nothrow__));
6734extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__));
6735extern int sched_setscheduler (__pid_t __pid, int __policy,
6736 __const struct sched_param *__param) __attribute__ ((__nothrow__));
6737extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__));
6738extern int sched_yield (void) __attribute__ ((__nothrow__));
6739extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__));
6740extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__));
6741extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__));
6742extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
6743 __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
6744extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
6745 cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
6746struct 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};
6760struct itimerspec
6761 {
6762 struct timespec it_interval;
6763 struct timespec it_value;
6764 };
6765struct sigevent;
6766extern clock_t clock (void) __attribute__ ((__nothrow__));
6767extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));
6768extern double difftime (time_t __time1, time_t __time0)
6769 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6770extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));
6771extern size_t strftime (char *__restrict __s, size_t __maxsize,
6772 __const char *__restrict __format,
6773 __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));
6774extern char *strptime (__const char *__restrict __s,
6775 __const char *__restrict __fmt, struct tm *__tp)
6776 __attribute__ ((__nothrow__));
6777extern 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__));
6781extern char *strptime_l (__const char *__restrict __s,
6782 __const char *__restrict __fmt, struct tm *__tp,
6783 __locale_t __loc) __attribute__ ((__nothrow__));
6784extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));
6785extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));
6786extern struct tm *gmtime_r (__const time_t *__restrict __timer,
6787 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
6788extern struct tm *localtime_r (__const time_t *__restrict __timer,
6789 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
6790extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));
6791extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));
6792extern char *asctime_r (__const struct tm *__restrict __tp,
6793 char *__restrict __buf) __attribute__ ((__nothrow__));
6794extern char *ctime_r (__const time_t *__restrict __timer,
6795 char *__restrict __buf) __attribute__ ((__nothrow__));
6796extern char *__tzname[2];
6797extern int __daylight;
6798extern long int __timezone;
6799extern char *tzname[2];
6800extern void tzset (void) __attribute__ ((__nothrow__));
6801extern int daylight;
6802extern long int timezone;
6803extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
6804extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));
6805extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));
6806extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6807extern int nanosleep (__const struct timespec *__requested_time,
6808 struct timespec *__remaining);
6809extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));
6810extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));
6811extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
6812 __attribute__ ((__nothrow__));
6813extern int clock_nanosleep (clockid_t __clock_id, int __flags,
6814 __const struct timespec *__req,
6815 struct timespec *__rem);
6816extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));
6817extern int timer_create (clockid_t __clock_id,
6818 struct sigevent *__restrict __evp,
6819 timer_t *__restrict __timerid) __attribute__ ((__nothrow__));
6820extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));
6821extern int timer_settime (timer_t __timerid, int __flags,
6822 __const struct itimerspec *__restrict __value,
6823 struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));
6824extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
6825 __attribute__ ((__nothrow__));
6826extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
6827extern int getdate_err;
6828extern struct tm *getdate (__const char *__string);
6829extern int getdate_r (__const char *__restrict __string,
6830 struct tm *__restrict __resbufp);
6831typedef double __jmp_buf[21];
6832enum
6833{
6834 PTHREAD_CREATE_JOINABLE,
6835 PTHREAD_CREATE_DETACHED
6836};
6837enum
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};
6850enum
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};
6857enum
6858{
6859 PTHREAD_PRIO_NONE,
6860 PTHREAD_PRIO_INHERIT,
6861 PTHREAD_PRIO_PROTECT
6862};
6863enum
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};
6870enum
6871{
6872 PTHREAD_INHERIT_SCHED,
6873 PTHREAD_EXPLICIT_SCHED
6874};
6875enum
6876{
6877 PTHREAD_SCOPE_SYSTEM,
6878 PTHREAD_SCOPE_PROCESS
6879};
6880enum
6881{
6882 PTHREAD_PROCESS_PRIVATE,
6883 PTHREAD_PROCESS_SHARED
6884};
6885struct _pthread_cleanup_buffer
6886{
6887 void (*__routine) (void *);
6888 void *__arg;
6889 int __canceltype;
6890 struct _pthread_cleanup_buffer *__prev;
6891};
6892enum
6893{
6894 PTHREAD_CANCEL_ENABLE,
6895 PTHREAD_CANCEL_DISABLE
6896};
6897enum
6898{
6899 PTHREAD_CANCEL_DEFERRED,
6900 PTHREAD_CANCEL_ASYNCHRONOUS
6901};
6902extern 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)));
6906extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
6907extern int pthread_join (pthread_t __th, void **__thread_return);
6908extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__));
6909extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
6910 __const struct timespec *__abstime);
6911extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__));
6912extern pthread_t pthread_self (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
6913extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __attribute__ ((__nothrow__));
6914extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6915extern int pthread_attr_destroy (pthread_attr_t *__attr)
6916 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6917extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
6918 int *__detachstate)
6919 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6920extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
6921 int __detachstate)
6922 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6923extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
6924 size_t *__guardsize)
6925 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6926extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
6927 size_t __guardsize)
6928 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6929extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
6930 __attr,
6931 struct sched_param *__restrict __param)
6932 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6933extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
6934 __const struct sched_param *__restrict
6935 __param) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6936extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
6937 __attr, int *__restrict __policy)
6938 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6939extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
6940 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6941extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
6942 __attr, int *__restrict __inherit)
6943 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6944extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
6945 int __inherit)
6946 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6947extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
6948 int *__restrict __scope)
6949 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6950extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
6951 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6952extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
6953 __attr, void **__restrict __stackaddr)
6954 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
6955extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
6956 void *__stackaddr)
6957 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
6958extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
6959 __attr, size_t *__restrict __stacksize)
6960 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
6961extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
6962 size_t __stacksize)
6963 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6964extern 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)));
6968extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
6969 size_t __stacksize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6970extern 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)));
6974extern 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)));
6978extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
6979 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6980extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
6981 __const struct sched_param *__param)
6982 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
6983extern int pthread_getschedparam (pthread_t __target_thread,
6984 int *__restrict __policy,
6985 struct sched_param *__restrict __param)
6986 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
6987extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
6988 __attribute__ ((__nothrow__));
6989extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
6990 size_t __buflen)
6991 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6992extern int pthread_setname_np (pthread_t __target_thread, __const char *__name)
6993 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
6994extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__));
6995extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__));
6996extern int pthread_yield (void) __attribute__ ((__nothrow__));
6997extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
6998 __const cpu_set_t *__cpuset)
6999 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
7000extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
7001 cpu_set_t *__cpuset)
7002 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
7003extern int pthread_once (pthread_once_t *__once_control,
7004 void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
7005extern int pthread_setcancelstate (int __state, int *__oldstate);
7006extern int pthread_setcanceltype (int __type, int *__oldtype);
7007extern int pthread_cancel (pthread_t __th);
7008extern void pthread_testcancel (void);
7009typedef 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__));
7018struct __pthread_cleanup_frame
7019{
7020 void (*__cancel_routine) (void *);
7021 void *__cancel_arg;
7022 int __do_it;
7023 int __cancel_type;
7024};
7025extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
7026 ;
7027extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
7028 ;
7029extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
7030 ;
7031extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
7032 ;
7033extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
7034 __attribute__ ((__noreturn__))
7035 __attribute__ ((__weak__))
7036 ;
7037struct __jmp_buf_tag;
7038extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__));
7039extern int pthread_mutex_init (pthread_mutex_t *__mutex,
7040 __const pthread_mutexattr_t *__mutexattr)
7041 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7042extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
7043 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7044extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
7045 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7046extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
7047 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7048extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
7049 __const struct timespec *__restrict
7050 __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7051extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
7052 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7053extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
7054 __restrict __mutex,
7055 int *__restrict __prioceiling)
7056 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7057extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
7058 int __prioceiling,
7059 int *__restrict __old_ceiling)
7060 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
7061extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
7062 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7063extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
7064 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7065extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
7066 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7067extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
7068 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7069extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
7070 __restrict __attr,
7071 int *__restrict __pshared)
7072 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7073extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
7074 int __pshared)
7075 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7076extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
7077 __attr, int *__restrict __kind)
7078 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7079extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
7080 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7081extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
7082 __restrict __attr,
7083 int *__restrict __protocol)
7084 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7085extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
7086 int __protocol)
7087 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7088extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
7089 __restrict __attr,
7090 int *__restrict __prioceiling)
7091 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7092extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
7093 int __prioceiling)
7094 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7095extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr,
7096 int *__robustness)
7097 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7098extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
7099 int *__robustness)
7100 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7101extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
7102 int __robustness)
7103 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7104extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
7105 int __robustness)
7106 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7107extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
7108 __const pthread_rwlockattr_t *__restrict
7109 __attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7110extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
7111 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7112extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
7113 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7114extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
7115 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7116extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
7117 __const struct timespec *__restrict
7118 __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7119extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
7120 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7121extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
7122 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7123extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
7124 __const struct timespec *__restrict
7125 __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7126extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
7127 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7128extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
7129 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7130extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
7131 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7132extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
7133 __restrict __attr,
7134 int *__restrict __pshared)
7135 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7136extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
7137 int __pshared)
7138 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7139extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
7140 __restrict __attr,
7141 int *__restrict __pref)
7142 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7143extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
7144 int __pref) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7145extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
7146 __const pthread_condattr_t *__restrict
7147 __cond_attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7148extern int pthread_cond_destroy (pthread_cond_t *__cond)
7149 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7150extern int pthread_cond_signal (pthread_cond_t *__cond)
7151 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7152extern int pthread_cond_broadcast (pthread_cond_t *__cond)
7153 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7154extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
7155 pthread_mutex_t *__restrict __mutex)
7156 __attribute__ ((__nonnull__ (1, 2)));
7157extern 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)));
7161extern int pthread_condattr_init (pthread_condattr_t *__attr)
7162 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7163extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
7164 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7165extern int pthread_condattr_getpshared (__const pthread_condattr_t *
7166 __restrict __attr,
7167 int *__restrict __pshared)
7168 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7169extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
7170 int __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7171extern int pthread_condattr_getclock (__const pthread_condattr_t *
7172 __restrict __attr,
7173 __clockid_t *__restrict __clock_id)
7174 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7175extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
7176 __clockid_t __clock_id)
7177 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7178extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
7179 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7180extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
7181 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7182extern int pthread_spin_lock (pthread_spinlock_t *__lock)
7183 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7184extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
7185 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7186extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
7187 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7188extern 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)));
7192extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
7193 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7194extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
7195 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7196extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
7197 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7198extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
7199 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7200extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
7201 __restrict __attr,
7202 int *__restrict __pshared)
7203 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7204extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
7205 int __pshared)
7206 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7207extern int pthread_key_create (pthread_key_t *__key,
7208 void (*__destr_function) (void *))
7209 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7210extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__));
7211extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__));
7212extern int pthread_setspecific (pthread_key_t __key,
7213 __const void *__pointer) __attribute__ ((__nothrow__)) ;
7214extern int pthread_getcpuclockid (pthread_t __thread_id,
7215 __clockid_t *__clock_id)
7216 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
7217extern int pthread_atfork (void (*__prepare) (void),
7218 void (*__parent) (void),
7219 void (*__child) (void)) __attribute__ ((__nothrow__));
7220extern __inline __attribute__ ((__gnu_inline__)) int
7221__attribute__ ((__nothrow__)) pthread_equal (pthread_t __thread1, pthread_t __thread2)
7222{
7223 return __thread1 == __thread2;
7224}
7225struct u_tsd {
7226 pthread_key_t key;
7227 int initMagic;
7228};
7229typedef pthread_mutex_t u_mutex;
7230unsigned long
7231u_thread_self(void);
7232void
7233u_tsd_init(struct u_tsd *tsd);
7234void
7235u_tsd_destroy(struct u_tsd *tsd);
7236void *
7237u_tsd_get(struct u_tsd *tsd);
7238void
7239u_tsd_set(struct u_tsd *tsd, void *ptr);
7240typedef struct u_tsd _glthread_TSD;
7241typedef u_mutex _glthread_Mutex;
7242typedef void (*_glapi_proc)(void);
7243struct _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;
7250void
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);
7281enum 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} ;
7290typedef struct {
7291 GLfloat *m;
7292 GLfloat *inv;
7293 GLuint flags;
7294 enum GLmatrixtype type;
7295} GLmatrix;
7296extern void
7297_math_matrix_ctr( GLmatrix *m );
7298extern void
7299_math_matrix_dtr( GLmatrix *m );
7300extern void
7301_math_matrix_alloc_inv( GLmatrix *m );
7302extern void
7303_math_matrix_mul_matrix( GLmatrix *dest, const GLmatrix *a, const GLmatrix *b );
7304extern void
7305_math_matrix_mul_floats( GLmatrix *dest, const GLfloat *b );
7306extern void
7307_math_matrix_loadf( GLmatrix *mat, const GLfloat *m );
7308extern void
7309_math_matrix_translate( GLmatrix *mat, GLfloat x, GLfloat y, GLfloat z );
7310extern void
7311_math_matrix_rotate( GLmatrix *m, GLfloat angle,
7312 GLfloat x, GLfloat y, GLfloat z );
7313extern void
7314_math_matrix_scale( GLmatrix *mat, GLfloat x, GLfloat y, GLfloat z );
7315extern void
7316_math_matrix_ortho( GLmatrix *mat,
7317 GLfloat left, GLfloat right,
7318 GLfloat bottom, GLfloat top,
7319 GLfloat nearval, GLfloat farval );
7320extern void
7321_math_matrix_frustum( GLmatrix *mat,
7322 GLfloat left, GLfloat right,
7323 GLfloat bottom, GLfloat top,
7324 GLfloat nearval, GLfloat farval );
7325extern void
7326_math_matrix_viewport(GLmatrix *m, GLint x, GLint y, GLint width, GLint height,
7327 GLfloat zNear, GLfloat zFar, GLfloat depthMax);
7328extern void
7329_math_matrix_set_identity( GLmatrix *dest );
7330extern void
7331_math_matrix_copy( GLmatrix *to, const GLmatrix *from );
7332extern void
7333_math_matrix_analyse( GLmatrix *mat );
7334extern void
7335_math_matrix_print( const GLmatrix *m );
7336extern GLboolean
7337_math_matrix_is_length_preserving( const GLmatrix *m );
7338extern GLboolean
7339_math_matrix_has_rotation( const GLmatrix *m );
7340extern GLboolean
7341_math_matrix_is_general_scale( const GLmatrix *m );
7342extern GLboolean
7343_math_matrix_is_dirty( const GLmatrix *m );
7344extern void
7345_math_transposef( GLfloat to[16], const GLfloat from[16] );
7346extern void
7347_math_transposed( GLdouble to[16], const GLdouble from[16] );
7348extern void
7349_math_transposefd( GLfloat to[16], const GLdouble from[16] );
7350extern void
7351_mesa_transform_vector(GLfloat u[4], const GLfloat v[4], const GLfloat m[16]);
7352struct simple_node {
7353 struct simple_node *next;
7354 struct simple_node *prev;
7355};
7356typedef 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;
7471extern const char *
7472_mesa_get_format_name(gl_format format);
7473extern GLint
7474_mesa_get_format_bytes(gl_format format);
7475extern GLint
7476_mesa_get_format_bits(gl_format format, GLenum pname);
7477extern GLenum
7478_mesa_get_format_datatype(gl_format format);
7479extern GLenum
7480_mesa_get_format_base_format(gl_format format);
7481extern void
7482_mesa_get_format_block_size(gl_format format, GLuint *bw, GLuint *bh);
7483extern GLboolean
7484_mesa_is_format_compressed(gl_format format);
7485extern GLboolean
7486_mesa_is_format_packed_depth_stencil(gl_format format);
7487extern GLboolean
7488_mesa_is_format_integer_color(gl_format format);
7489extern GLenum
7490_mesa_get_format_color_encoding(gl_format format);
7491extern GLuint
7492_mesa_format_image_size(gl_format format, GLsizei width,
7493 GLsizei height, GLsizei depth);
7494extern uint64_t
7495_mesa_format_image_size64(gl_format format, GLsizei width,
7496 GLsizei height, GLsizei depth);
7497extern GLint
7498_mesa_format_row_stride(gl_format format, GLsizei width);
7499extern void
7500_mesa_format_to_type_and_comps(gl_format format,
7501 GLenum *datatype, GLuint *comps);
7502extern void
7503_mesa_test_formats(void);
7504extern gl_format
7505_mesa_get_srgb_format_linear(gl_format format);
7506 typedef GLubyte GLchan;
7507 typedef GLubyte GLstencil;
7508typedef GLuint64 GLbitfield64;
7509struct _mesa_HashTable;
7510struct gl_attrib_node;
7511struct gl_list_extensions;
7512struct gl_meta_state;
7513struct gl_pixelstore_attrib;
7514struct gl_program_cache;
7515struct gl_texture_format;
7516struct gl_texture_image;
7517struct gl_texture_object;
7518struct gl_context;
7519struct st_context;
7520typedef 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;
7527typedef 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;
7564typedef 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;
7585typedef 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;
7600typedef 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;
7623typedef 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;
7642typedef 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;
7650typedef 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;
7670struct 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};
7708struct 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};
7722struct gl_shine_tab
7723{
7724 struct gl_shine_tab *next, *prev;
7725 GLfloat tab[256 +1];
7726 GLfloat shininess;
7727 GLuint refcount;
7728};
7729struct 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};
7759struct gl_lightmodel
7760{
7761 GLfloat Ambient[4];
7762 GLboolean LocalViewer;
7763 GLboolean TwoSide;
7764 GLenum ColorControl;
7765};
7766struct gl_material
7767{
7768 GLfloat Attrib[12][4];
7769};
7770struct gl_accum_attrib
7771{
7772 GLfloat ClearColor[4];
7773};
7774struct 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};
7811struct 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};
7821struct gl_depthbuffer_attrib
7822{
7823 GLenum Func;
7824 GLclampd Clear;
7825 GLboolean Test;
7826 GLboolean Mask;
7827 GLboolean BoundsTest;
7828 GLfloat BoundsMin, BoundsMax;
7829};
7830struct 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};
7859struct 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};
7873enum 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};
7880struct 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};
7892struct 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};
7912struct gl_line_attrib
7913{
7914 GLboolean SmoothFlag;
7915 GLboolean StippleFlag;
7916 GLushort StipplePattern;
7917 GLint StippleFactor;
7918 GLfloat Width;
7919};
7920struct gl_list_attrib
7921{
7922 GLuint ListBase;
7923};
7924struct 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};
7934struct gl_pixelmap
7935{
7936 GLint Size;
7937 GLfloat Map[256];
7938 GLubyte Map8[256];
7939};
7940struct 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};
7953struct 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};
7966struct 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};
7979struct 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};
7995struct gl_scissor_attrib
7996{
7997 GLboolean Enabled;
7998 GLint X, Y;
7999 GLsizei Width, Height;
8000};
8001struct 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};
8018typedef 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;
8030typedef void (*FetchTexelFuncC)( const struct gl_texture_image *texImage,
8031 GLint col, GLint row, GLint img,
8032 GLchan *texelOut );
8033typedef void (*FetchTexelFuncF)( const struct gl_texture_image *texImage,
8034 GLint col, GLint row, GLint img,
8035 GLfloat *texelOut );
8036typedef void (*StoreTexelFunc)(struct gl_texture_image *texImage,
8037 GLint col, GLint row, GLint img,
8038 const void *texel);
8039struct 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};
8068typedef 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;
8078struct 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};
8104struct 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};
8129struct 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};
8142struct gl_texgen
8143{
8144 GLenum Mode;
8145 GLbitfield _ModeBit;
8146 GLfloat ObjectPlane[4];
8147 GLfloat EyePlane[4];
8148};
8149struct 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};
8172struct 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};
8187struct 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};
8200struct gl_viewport_attrib
8201{
8202 GLint X, Y;
8203 GLsizei Width, Height;
8204 GLfloat Near, Far;
8205 GLmatrix _WindowMap;
8206};
8207struct 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};
8222struct 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};
8236struct 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};
8252struct 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};
8272struct 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};
8287struct gl_feedback
8288{
8289 GLenum Type;
8290 GLbitfield _Mask;
8291 GLfloat *Buffer;
8292 GLuint BufferSize;
8293 GLuint Count;
8294};
8295struct 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};
8307struct gl_1d_map
8308{
8309 GLuint Order;
8310 GLfloat u1, u2, du;
8311 GLfloat *Points;
8312};
8313struct gl_2d_map
8314{
8315 GLuint Uorder;
8316 GLuint Vorder;
8317 GLfloat u1, u2, du;
8318 GLfloat v1, v2, dv;
8319 GLfloat *Points;
8320};
8321struct 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};
8344typedef 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;
8363typedef enum
8364{
8365 SYSTEM_VALUE_FRONT_FACE,
8366 SYSTEM_VALUE_INSTANCE_ID,
8367 SYSTEM_VALUE_MAX
8368} gl_system_value;
8369struct prog_instruction;
8370struct gl_program_parameter_list;
8371struct gl_uniform_list;
8372struct 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};
8413struct gl_vertex_program
8414{
8415 struct gl_program Base;
8416 GLboolean IsNVProgram;
8417 GLboolean IsPositionInvariant;
8418};
8419struct gl_geometry_program
8420{
8421 struct gl_program Base;
8422 GLint VerticesOut;
8423 GLenum InputType;
8424 GLenum OutputType;
8425};
8426struct 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};
8434struct gl_program_state
8435{
8436 GLint ErrorPos;
8437 const char *ErrorString;
8438};
8439struct 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};
8455struct 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};
8464struct 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};
8475struct atifs_instruction;
8476struct atifs_setupinst;
8477struct 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};
8494struct 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};
8502struct gl_query_object
8503{
8504 GLenum Target;
8505 GLuint Id;
8506 GLuint64EXT Result;
8507 GLboolean Active;
8508 GLboolean Ready;
8509};
8510struct 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};
8521struct 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};
8531struct gl_sl_pragmas
8532{
8533 GLboolean IgnoreOptimize;
8534 GLboolean IgnoreDebug;
8535 GLboolean Optimize;
8536 GLboolean Debug;
8537};
8538struct 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};
8556struct 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};
8587struct 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};
8596struct 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};
8614struct 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};
8625struct 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};
8634struct 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};
8659struct 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};
8699struct 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};
8709struct 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};
8737struct gl_precision
8738{
8739 GLushort RangeMin;
8740 GLushort RangeMax;
8741 GLushort Precision;
8742};
8743struct 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};
8768struct 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};
8827struct 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};
8999struct gl_matrix_stack
9000{
9001 GLmatrix *Top;
9002 GLmatrix *Stack;
9003 GLuint Depth;
9004 GLuint MaxDepth;
9005 GLuint DirtyFlag;
9006};
9007struct gl_buffer_object;
9008struct gl_context;
9009struct gl_display_list;
9010struct gl_framebuffer;
9011struct gl_pixelstore_attrib;
9012struct gl_program;
9013struct gl_renderbuffer;
9014struct gl_renderbuffer_attachment;
9015struct gl_shader;
9016struct gl_shader_program;
9017struct gl_texture_image;
9018struct gl_texture_object;
9019struct 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};
9379typedef 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;
9495union gl_dlist_node;
9496struct gl_display_list
9497{
9498 GLuint Name;
9499 GLbitfield Flags;
9500 union gl_dlist_node *Head;
9501};
9502struct 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};
9521typedef enum
9522{
9523 API_OPENGL,
9524 API_OPENGLES,
9525 API_OPENGLES2
9526} gl_api;
9527struct 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};
9628enum _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};
9645enum _debug
9646{
9647 DEBUG_ALWAYS_FLUSH = 0x1
9648};
9649struct _glapi_table;
9650extern 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 );
9664extern 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 );
9679extern void
9680_mesa_destroy_visual( struct gl_config *vis );
9681extern 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 );
9688extern 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);
9694extern void
9695_mesa_free_context_data( struct gl_context *ctx );
9696extern void
9697_mesa_destroy_context( struct gl_context *ctx );
9698extern void
9699_mesa_copy_context(const struct gl_context *src, struct gl_context *dst, GLuint mask);
9700extern void
9701_mesa_check_init_viewport(struct gl_context *ctx, GLuint width, GLuint height);
9702extern GLboolean
9703_mesa_make_current( struct gl_context *ctx, struct gl_framebuffer *drawBuffer,
9704 struct gl_framebuffer *readBuffer );
9705extern GLboolean
9706_mesa_share_state(struct gl_context *ctx, struct gl_context *ctxToShare);
9707extern struct gl_context *
9708_mesa_get_current_context(void);
9709extern void
9710_mesa_init_get_hash(struct gl_context *ctx);
9711extern void
9712_mesa_notifySwapBuffers(struct gl_context *gc);
9713extern struct _glapi_table *
9714_mesa_get_dispatch(struct gl_context *ctx);
9715void
9716_mesa_set_mvp_with_dp4( struct gl_context *ctx,
9717 GLboolean flag );
9718extern GLboolean
9719_mesa_valid_to_render(struct gl_context *ctx, const char *where);
9720extern void
9721_mesa_record_error( struct gl_context *ctx, GLenum error );
9722extern void
9723_mesa_finish(struct gl_context *ctx);
9724extern void
9725_mesa_flush(struct gl_context *ctx);
9726extern void
9727_mesa_Finish( void );
9728extern void
9729_mesa_Flush( void );
9730extern GLfloat _mesa_ubyte_to_float_color_tab[256];
9731extern void
9732_mesa_update_state(struct gl_context *ctx);
9733extern void
9734_mesa_update_state_locked(struct gl_context *ctx);
9735extern void
9736_mesa_set_varying_vp_inputs(struct gl_context *ctx, GLbitfield varying_inputs);
9737extern void
9738_mesa_set_vp_override(struct gl_context *ctx, GLboolean flag);
9739static __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}
9757static __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}
9763typedef 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;
9861struct 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};
9873struct 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};
9883struct 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};
9900extern void
9901_mesa_init_instructions(struct prog_instruction *inst, GLuint count);
9902extern struct prog_instruction *
9903_mesa_alloc_instructions(GLuint numInst);
9904extern struct prog_instruction *
9905_mesa_realloc_instructions(struct prog_instruction *oldInst,
9906 GLuint numOldInst, GLuint numNewInst);
9907extern struct prog_instruction *
9908_mesa_copy_instructions(struct prog_instruction *dest,
9909 const struct prog_instruction *src, GLuint n);
9910extern void
9911_mesa_free_instructions(struct prog_instruction *inst, GLuint count);
9912extern GLuint
9913_mesa_num_inst_src_regs(gl_inst_opcode opcode);
9914extern GLuint
9915_mesa_num_inst_dst_regs(gl_inst_opcode opcode);
9916extern GLboolean
9917_mesa_is_tex_instruction(gl_inst_opcode opcode);
9918extern GLboolean
9919_mesa_check_soa_dependencies(const struct prog_instruction *inst);
9920extern const char *
9921_mesa_opcode_string(gl_inst_opcode opcode);
9922struct gl_context;
9923extern void
9924_swrast_set_aa_triangle_function(struct gl_context *ctx);
9925typedef void (*FetchTexelLodFunc)(struct gl_context *ctx, const GLfloat texcoord[4],
9926 GLfloat lambda, GLuint unit, GLfloat color[4]);
9927typedef 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]);
9932struct 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};
9953extern void
9954_mesa_get_program_register(struct gl_context *ctx, gl_register_file file,
9955 GLuint index, GLfloat val[4]);
9956extern GLboolean
9957_mesa_execute_program(struct gl_context *ctx,
9958 const struct gl_program *program,
9959 struct gl_program_machine *machine);
9960typedef struct {
9961 GLfloat attrib[FRAG_ATTRIB_MAX][4];
9962 GLchan color[4];
9963 GLfloat pointSize;
9964} SWvertex;
9965struct swrast_device_driver;
9966extern GLboolean
9967_swrast_CreateContext( struct gl_context *ctx );
9968extern void
9969_swrast_DestroyContext( struct gl_context *ctx );
9970extern struct swrast_device_driver *
9971_swrast_GetDeviceDriverReference( struct gl_context *ctx );
9972extern 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 );
9978extern 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 );
9984extern 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 );
9991extern 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 );
9997extern 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);
10002extern void
10003_swrast_Clear(struct gl_context *ctx, GLbitfield buffers);
10004extern void
10005_swrast_Accum(struct gl_context *ctx, GLenum op, GLfloat value);
10006extern void
10007_swrast_ResetLineStipple( struct gl_context *ctx );
10008extern void
10009_swrast_SetFacing(struct gl_context *ctx, GLuint facing);
10010extern void
10011_swrast_Point( struct gl_context *ctx, const SWvertex *v );
10012extern void
10013_swrast_Line( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1 );
10014extern void
10015_swrast_Triangle( struct gl_context *ctx, const SWvertex *v0,
10016 const SWvertex *v1, const SWvertex *v2 );
10017extern void
10018_swrast_Quad( struct gl_context *ctx,
10019 const SWvertex *v0, const SWvertex *v1,
10020 const SWvertex *v2, const SWvertex *v3);
10021extern void
10022_swrast_flush( struct gl_context *ctx );
10023extern void
10024_swrast_render_primitive( struct gl_context *ctx, GLenum mode );
10025extern void
10026_swrast_render_start( struct gl_context *ctx );
10027extern void
10028_swrast_render_finish( struct gl_context *ctx );
10029extern void
10030_swrast_InvalidateState( struct gl_context *ctx, GLbitfield new_state );
10031extern void
10032_swrast_allow_vertex_fog( struct gl_context *ctx, GLboolean value );
10033extern void
10034_swrast_allow_pixel_fog( struct gl_context *ctx, GLboolean value );
10035extern void
10036_swrast_print_vertex( struct gl_context *ctx, const SWvertex *v );
10037extern void
10038_swrast_eject_texture_images(struct gl_context *ctx);
10039extern void
10040_swrast_render_texture(struct gl_context *ctx,
10041 struct gl_framebuffer *fb,
10042 struct gl_renderbuffer_attachment *att);
10043extern void
10044_swrast_finish_render_texture(struct gl_context *ctx,
10045 struct gl_renderbuffer_attachment *att);
10046struct swrast_device_driver {
10047 void (*SpanRenderStart)(struct gl_context *ctx);
10048 void (*SpanRenderFinish)(struct gl_context *ctx);
10049};
10050struct gl_context;
10051struct gl_renderbuffer;
10052typedef 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;
10067typedef 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;
10090extern void
10091_swrast_span_default_attribs(struct gl_context *ctx, SWspan *span);
10092extern void
10093_swrast_span_interpolate_z( const struct gl_context *ctx, SWspan *span );
10094extern 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);
10098extern void
10099_swrast_write_rgba_span( struct gl_context *ctx, SWspan *span);
10100extern 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);
10103extern 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);
10107extern 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);
10111extern 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);
10115extern void *
10116_swrast_get_dest_rgba(struct gl_context *ctx, struct gl_renderbuffer *rb,
10117 SWspan *span);
10118typedef 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]);
10122typedef void ( * blend_func)( struct gl_context *ctx, GLuint n,
10123 const GLubyte mask[],
10124 GLvoid *src, const GLvoid *dst,
10125 GLenum chanType);
10126typedef void (*swrast_point_func)( struct gl_context *ctx, const SWvertex *);
10127typedef void (*swrast_line_func)( struct gl_context *ctx,
10128 const SWvertex *, const SWvertex *);
10129typedef void (*swrast_tri_func)( struct gl_context *ctx, const SWvertex *,
10130 const SWvertex *, const SWvertex *);
10131typedef void (*validate_texture_image_func)(struct gl_context *ctx,
10132 struct gl_texture_object *texObj,
10133 GLuint face, GLuint level);
10134typedef 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;
10180extern void
10181_swrast_validate_derived( struct gl_context *ctx );
10182extern void
10183_swrast_update_texture_samplers(struct gl_context *ctx);
10184static __inline__ SWcontext *
10185SWRAST_CONTEXT(struct gl_context *ctx)
10186{
10187 return (SWcontext *) ctx->swrast_context;
10188}
10189static __inline__ const SWcontext *
10190CONST_SWRAST_CONTEXT(const struct gl_context *ctx)
10191{
10192 return (const SWcontext *) ctx->swrast_context;
10193}
10194static __inline__ void
10195swrast_render_start(struct gl_context *ctx)
10196{
10197 SWcontext *swrast = SWRAST_CONTEXT(ctx);
10198 if (swrast->Driver.SpanRenderStart)
10199 swrast->Driver.SpanRenderStart(ctx);
10200}
10201static __inline__ void
10202swrast_render_finish(struct gl_context *ctx)
10203{
10204 SWcontext *swrast = SWRAST_CONTEXT(ctx);
10205 if (swrast->Driver.SpanRenderFinish)
10206 swrast->Driver.SpanRenderFinish(ctx);
10207}
10208extern void _swrast_feedback_point( struct gl_context *ctx, const SWvertex *v );
10209extern void _swrast_feedback_line( struct gl_context *ctx,
10210 const SWvertex *v1, const SWvertex *v2 );
10211extern void _swrast_feedback_triangle( struct gl_context *ctx, const SWvertex *v0,
10212 const SWvertex *v1, const SWvertex *v2 );
10213extern void _swrast_select_point( struct gl_context *ctx, const SWvertex *v );
10214extern void _swrast_select_line( struct gl_context *ctx,
10215 const SWvertex *v1, const SWvertex *v2 );
10216extern void _swrast_select_triangle( struct gl_context *ctx, const SWvertex *v0,
10217 const SWvertex *v1, const SWvertex *v2 );
10218extern GLboolean
10219_swrast_culltriangle( struct gl_context *ctx,
10220 const SWvertex *v0,
10221 const SWvertex *v1,
10222 const SWvertex *v2);
10223extern void
10224_swrast_choose_triangle( struct gl_context *ctx );
10225extern void
10226_swrast_add_spec_terms_triangle( struct gl_context *ctx,
10227 const SWvertex *v0,
10228 const SWvertex *v1,
10229 const SWvertex *v2 );
10230GLboolean
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}
10246static 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}
10516static 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}
10876static 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}
11133static 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}
11448struct 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};
11459static __inline__ GLint
11460ilerp(GLint t, GLint a, GLint b)
11461{
11462 return a + ((t * (b - a)) >> 11);
11463}
11464static __inline__ GLint
11465ilerp_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}
11471static __inline__ void
11472affine_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}
11583static 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}
11978struct 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};
11989static __inline__ void
11990fast_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}
12103static 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}
12546static 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}
12988static 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}
13258static void
13259nodraw_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}
13266void
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}
13301void
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}