Merge branch 'ext-provoking-vertex'

Conflicts:

	docs/relnotes-7.6.html
	progs/tests/Makefile
	src/gallium/drivers/softpipe/sp_prim_vbuf.c
	src/glx/x11/indirect.c
	src/mesa/glapi/Makefile
	src/mesa/glapi/dispatch.h
	src/mesa/glapi/glapioffsets.h
	src/mesa/glapi/glapitable.h
	src/mesa/glapi/glapitemp.h
	src/mesa/glapi/glprocs.h
	src/mesa/main/dlist.c
	src/mesa/main/enums.c
	src/mesa/sparc/glapi_sparc.S
	src/mesa/x86-64/glapi_x86-64.S
	src/mesa/x86/glapi_x86.S
This commit is contained in:
Brian Paul 2009-06-19 09:15:34 -06:00
commit 9038b6c8bb
36 changed files with 3974 additions and 2881 deletions

View file

@ -38,11 +38,12 @@ tbd
This was written by Zack Rusin at Tungsten Graphics.
<li>GL_APPLE_vertex_array_object for Gallium drivers and Intel DRI drivers.
<li>GL_ARB_copy_buffer extension (supported in Gallium and swrast drivers)
<LI>GL_ARB_map_buffer_range extension (supported in Gallium and software drivers)
<li>GL_EXT_provoking_vertex extension (supported in Gallium and software drivers)
<li>Rewritten radeon/r200/r300 driver using a buffer manager
<li>radeon/r200/r300 GL_EXT_framebuffer_object support when used with
kernel memory manager
<li>r300 driver support for GL_EXT_vertex_array_bgra, GL_EXT_texture_sRGB
<LI>GL_ARB_map_buffer_range extension (supported in Gallium and software drivers)
</ul>

View file

@ -68,6 +68,7 @@ SOURCES = \
packedpixels.c \
pbo.c \
persp_hint.c \
prim.c \
prog_parameter.c \
quads.c \
random.c \

559
progs/tests/prim.c Normal file
View file

@ -0,0 +1,559 @@
#define GL_GLEXT_PROTOTYPES
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <GL/glut.h>
#define PIXEL_CENTER(x) ((long)(x) + 0.5)
#define GAP 10
#define ROWS 3
#define COLS 4
#define OPENGL_WIDTH 48
#define OPENGL_HEIGHT 13
GLenum provoking = GL_LAST_VERTEX_CONVENTION_EXT;
GLenum rgb, doubleBuffer, windType;
GLint windW, windH;
GLenum mode1, mode2;
GLint boxW, boxH;
GLubyte OpenGL_bits[] = {
0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01,
0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01,
0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
0x3e, 0x8f, 0xb7, 0xf9, 0xfc, 0x01,
0x63, 0xdb, 0xb0, 0x8d, 0x0d, 0x00,
0x63, 0xdb, 0xb7, 0x8d, 0x0d, 0x00,
0x63, 0xdb, 0xb6, 0x8d, 0x0d, 0x00,
0x63, 0x8f, 0xf3, 0xcc, 0x0d, 0x00,
0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0a,
0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0e,
0x63, 0x00, 0x00, 0x8c, 0xed, 0x0e,
0x3e, 0x00, 0x00, 0xf8, 0x0c, 0x00,
};
#include "tkmap.c"
static void Init(void)
{
mode1 = GL_TRUE;
mode2 = GL_TRUE;
}
static void Reshape(int width, int height)
{
windW = (GLint)width;
windH = (GLint)height;
}
static void RotateColorMask(void)
{
static GLint rotation = 0;
rotation = (rotation + 1) & 0x3;
switch (rotation) {
case 0:
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
glIndexMask( 0xff );
break;
case 1:
glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE);
glIndexMask(0xFE);
break;
case 2:
glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE);
glIndexMask(0xFD);
break;
case 3:
glColorMask(GL_TRUE, GL_TRUE, GL_FALSE, GL_TRUE);
glIndexMask(0xFB);
break;
}
}
static void Key(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(1);
case '1':
mode1 = !mode1;
break;
case '2':
mode2 = !mode2;
break;
case '3':
RotateColorMask();
break;
case 'p':
if (provoking == GL_FIRST_VERTEX_CONVENTION_EXT) {
printf("provoke last\n");
provoking = GL_LAST_VERTEX_CONVENTION_EXT;
}
else {
printf("provoke first\n");
provoking = GL_FIRST_VERTEX_CONVENTION_EXT;
}
glProvokingVertexEXT(provoking);
break;
default:
return;
}
glutPostRedisplay();
}
static void Viewport(GLint row, GLint column)
{
GLint x, y;
boxW = (windW - (COLS + 1) * GAP) / COLS;
boxH = (windH - (ROWS + 1) * GAP) / ROWS;
x = GAP + column * (boxW + GAP);
y = GAP + row * (boxH + GAP);
glViewport(x, y, boxW, boxH);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-boxW/2, boxW/2, -boxH/2, boxH/2, 0.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_SCISSOR_TEST);
glScissor(x, y, boxW, boxH);
}
static void Point(void)
{
GLint i;
glBegin(GL_POINTS);
SetColor(COLOR_WHITE);
glVertex2i(0, 0);
for (i = 1; i < 8; i++) {
GLint j = i * 2;
SetColor(COLOR_BLACK+i);
glVertex2i(-j, -j);
glVertex2i(-j, 0);
glVertex2i(-j, j);
glVertex2i(0, j);
glVertex2i(j, j);
glVertex2i(j, 0);
glVertex2i(j, -j);
glVertex2i(0, -j);
}
glEnd();
}
static void Lines(void)
{
GLint i;
glPushMatrix();
glTranslatef(-12, 0, 0);
for (i = 1; i < 8; i++) {
glBegin(GL_LINES);
SetColor(COLOR_BLACK+i);
glVertex2i(-boxW/4, -boxH/4);
SetColor(COLOR_BLACK+i+1);
glVertex2i(boxW/4, boxH/4);
glEnd();
glTranslatef(4, 0, 0);
}
glPopMatrix();
glBegin(GL_LINES);
glVertex2i(0, 0);
glEnd();
}
static void LineStrip(void)
{
glBegin(GL_LINE_STRIP);
SetColor(COLOR_RED);
glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4));
SetColor(COLOR_GREEN);
glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4));
SetColor(COLOR_BLUE);
glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4));
SetColor(COLOR_WHITE);
glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4));
glEnd();
glBegin(GL_LINE_STRIP);
glVertex2i(0, 0);
glEnd();
}
static void LineLoop(void)
{
glBegin(GL_LINE_LOOP);
SetColor(COLOR_RED);
glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4));
SetColor(COLOR_GREEN);
glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4));
SetColor(COLOR_BLUE);
glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4));
SetColor(COLOR_WHITE);
glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4));
glEnd();
glEnable(GL_LOGIC_OP);
glLogicOp(GL_XOR);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE);
SetColor(COLOR_MAGENTA);
glBegin(GL_LINE_LOOP);
glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(-boxH/8));
glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8));
glEnd();
glBegin(GL_LINE_LOOP);
glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8+5));
glVertex2f(PIXEL_CENTER(boxW/8), PIXEL_CENTER(boxH/8+5));
glEnd();
glDisable(GL_LOGIC_OP);
glDisable(GL_BLEND);
SetColor(COLOR_GREEN);
glBegin(GL_POINTS);
glVertex2i(0, 0);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex2i(0, 0);
glEnd();
}
static void Bitmap(void)
{
glBegin(GL_LINES);
SetColor(COLOR_GREEN);
glVertex2i(-boxW/2, 0);
glVertex2i(boxW/2, 0);
glVertex2i(0, -boxH/2);
glVertex2i(0, boxH/2);
SetColor(COLOR_RED);
glVertex2i(0, -3);
glVertex2i(0, -3+OPENGL_HEIGHT);
SetColor(COLOR_BLUE);
glVertex2i(0, -3);
glVertex2i(OPENGL_WIDTH, -3);
glEnd();
SetColor(COLOR_GREEN);
glPixelStorei(GL_UNPACK_LSB_FIRST, GL_TRUE);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glRasterPos2i(0, 0);
glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, 0, 3, 0.0, 0.0, OpenGL_bits);
}
static void Triangles(void)
{
glBegin(GL_TRIANGLES);
SetColor(COLOR_GREEN);
glVertex2i(-boxW/4, -boxH/4);
SetColor(COLOR_RED);
glVertex2i(-boxW/8, -boxH/16);
SetColor(COLOR_BLUE);
glVertex2i(boxW/8, -boxH/16);
SetColor(COLOR_GREEN);
glVertex2i(-boxW/4, boxH/4);
SetColor(COLOR_RED);
glVertex2i(-boxW/8, boxH/16);
SetColor(COLOR_BLUE);
glVertex2i(boxW/8, boxH/16);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2i(0, 0);
glVertex2i(-100, 100);
glEnd();
}
static void TriangleStrip(void)
{
glBegin(GL_TRIANGLE_STRIP);
SetColor(COLOR_GREEN);
glVertex2i(-boxW/4, -boxH/4);
SetColor(COLOR_RED);
glVertex2i(-boxW/4, boxH/4);
SetColor(COLOR_BLUE);
glVertex2i(0, -boxH/4);
SetColor(COLOR_WHITE);
glVertex2i(0, boxH/4);
SetColor(COLOR_CYAN);
glVertex2i(boxW/4, -boxH/4);
SetColor(COLOR_YELLOW);
glVertex2i(boxW/4, boxH/4);
glEnd();
glBegin(GL_TRIANGLE_STRIP);
glVertex2i(0, 0);
glVertex2i(-100, 100);
glEnd();
}
static void TriangleFan(void)
{
GLint vx[8][2];
GLint x0, y0, x1, y1, x2, y2, x3, y3;
GLint i;
y0 = -boxH/4;
y1 = y0 + boxH/2/3;
y2 = y1 + boxH/2/3;
y3 = boxH/4;
x0 = -boxW/4;
x1 = x0 + boxW/2/3;
x2 = x1 + boxW/2/3;
x3 = boxW/4;
vx[0][0] = x0; vx[0][1] = y1;
vx[1][0] = x0; vx[1][1] = y2;
vx[2][0] = x1; vx[2][1] = y3;
vx[3][0] = x2; vx[3][1] = y3;
vx[4][0] = x3; vx[4][1] = y2;
vx[5][0] = x3; vx[5][1] = y1;
vx[6][0] = x2; vx[6][1] = y0;
vx[7][0] = x1; vx[7][1] = y0;
glBegin(GL_TRIANGLE_FAN);
SetColor(COLOR_WHITE);
glVertex2i(0, 0);
for (i = 0; i < 8; i++) {
SetColor(COLOR_WHITE-i);
glVertex2iv(vx[i]);
}
glEnd();
glBegin(GL_TRIANGLE_FAN);
glVertex2i(0, 0);
glVertex2i(-100, 100);
glEnd();
}
static void Rect(void)
{
SetColor(COLOR_GREEN);
glRecti(-boxW/4, -boxH/4, boxW/4, boxH/4);
}
static void PolygonFunc(void)
{
GLint vx[8][2];
GLint x0, y0, x1, y1, x2, y2, x3, y3;
GLint i;
y0 = -boxH/4;
y1 = y0 + boxH/2/3;
y2 = y1 + boxH/2/3;
y3 = boxH/4;
x0 = -boxW/4;
x1 = x0 + boxW/2/3;
x2 = x1 + boxW/2/3;
x3 = boxW/4;
vx[0][0] = x0; vx[0][1] = y1;
vx[1][0] = x0; vx[1][1] = y2;
vx[2][0] = x1; vx[2][1] = y3;
vx[3][0] = x2; vx[3][1] = y3;
vx[4][0] = x3; vx[4][1] = y2;
vx[5][0] = x3; vx[5][1] = y1;
vx[6][0] = x2; vx[6][1] = y0;
vx[7][0] = x1; vx[7][1] = y0;
glBegin(GL_POLYGON);
for (i = 0; i < 8; i++) {
SetColor(COLOR_WHITE-i);
glVertex2iv(vx[i]);
}
glEnd();
glBegin(GL_POLYGON);
glVertex2i(0, 0);
glVertex2i(100, 100);
glEnd();
}
static void Quads(void)
{
glBegin(GL_QUADS);
SetColor(COLOR_GREEN);
glVertex2i(-boxW/4, -boxH/4);
SetColor(COLOR_RED);
glVertex2i(-boxW/8, -boxH/16);
SetColor(COLOR_BLUE);
glVertex2i(boxW/8, -boxH/16);
SetColor(COLOR_WHITE);
glVertex2i(boxW/4, -boxH/4);
SetColor(COLOR_GREEN);
glVertex2i(-boxW/4, boxH/4);
SetColor(COLOR_RED);
glVertex2i(-boxW/8, boxH/16);
SetColor(COLOR_BLUE);
glVertex2i(boxW/8, boxH/16);
SetColor(COLOR_WHITE);
glVertex2i(boxW/4, boxH/4);
glEnd();
glBegin(GL_QUADS);
glVertex2i(0, 0);
glVertex2i(100, 100);
glVertex2i(-100, 100);
glEnd();
}
static void QuadStrip(void)
{
glBegin(GL_QUAD_STRIP);
SetColor(COLOR_GREEN);
glVertex2i(-boxW/4, -boxH/4);
SetColor(COLOR_RED);
glVertex2i(-boxW/4, boxH/4);
SetColor(COLOR_BLUE);
glVertex2i(0, -boxH/4);
SetColor(COLOR_WHITE);
glVertex2i(0, boxH/4);
SetColor(COLOR_CYAN);
glVertex2i(boxW/4, -boxH/4);
SetColor(COLOR_YELLOW);
glVertex2i(boxW/4, boxH/4);
glEnd();
glBegin(GL_QUAD_STRIP);
glVertex2i(0, 0);
glVertex2i(100, 100);
glVertex2i(-100, 100);
glEnd();
}
static void Draw(void)
{
glViewport(0, 0, windW, windH);
glDisable(GL_SCISSOR_TEST);
glPushAttrib(GL_COLOR_BUFFER_BIT);
glColorMask(1, 1, 1, 1);
glIndexMask(~0);
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glPopAttrib();
if (mode1) {
glShadeModel(GL_SMOOTH);
} else {
glShadeModel(GL_FLAT);
}
if (mode2) {
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
} else {
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
}
Viewport(0, 0); Point();
Viewport(0, 1); Lines();
Viewport(0, 2); LineStrip();
Viewport(0, 3); LineLoop();
Viewport(1, 0); Bitmap();
Viewport(1, 1); TriangleFan();
Viewport(1, 2); Triangles();
Viewport(1, 3); TriangleStrip();
Viewport(2, 0); Rect();
Viewport(2, 1); PolygonFunc();
Viewport(2, 2); Quads();
Viewport(2, 3); QuadStrip();
glFlush();
if (doubleBuffer) {
glutSwapBuffers();
}
}
static GLenum Args(int argc, char **argv)
{
GLint i;
rgb = GL_TRUE;
doubleBuffer = GL_FALSE;
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-ci") == 0) {
rgb = GL_FALSE;
} else if (strcmp(argv[i], "-rgb") == 0) {
rgb = GL_TRUE;
} else if (strcmp(argv[i], "-sb") == 0) {
doubleBuffer = GL_FALSE;
} else if (strcmp(argv[i], "-db") == 0) {
doubleBuffer = GL_TRUE;
} else {
printf("%s (Bad option).\n", argv[i]);
return GL_FALSE;
}
}
return GL_TRUE;
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
if (Args(argc, argv) == GL_FALSE) {
exit(1);
}
windW = 600;
windH = 300;
glutInitWindowPosition(0, 0); glutInitWindowSize( windW, windH);
windType = (rgb) ? GLUT_RGB : GLUT_INDEX;
windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
glutInitDisplayMode(windType);
if (glutCreateWindow("Primitive Test") == GL_FALSE) {
exit(1);
}
InitMap();
Init();
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}

71
progs/tests/tkmap.c Normal file
View file

@ -0,0 +1,71 @@
enum {
COLOR_BLACK = 0,
COLOR_RED,
COLOR_GREEN,
COLOR_YELLOW,
COLOR_BLUE,
COLOR_MAGENTA,
COLOR_CYAN,
COLOR_WHITE
};
static float RGBMap[9][3] = {
{0, 0, 0},
{1, 0, 0},
{0, 1, 0},
{1, 1, 0},
{0, 0, 1},
{1, 0, 1},
{0, 1, 1},
{1, 1, 1},
{0.5, 0.5, 0.5}
};
static void SetColor(int c)
{
if (glutGet(GLUT_WINDOW_RGBA))
glColor3fv(RGBMap[c]);
else
glIndexf(c);
}
static void InitMap(void)
{
int i;
if (rgb)
return;
for (i = 0; i < 9; i++)
glutSetColor(i, RGBMap[i][0], RGBMap[i][1], RGBMap[i][2]);
}
static void SetFogRamp(int density, int startIndex)
{
int fogValues, colorValues;
int i, j, k;
float intensity;
fogValues = 1 << density;
colorValues = 1 << startIndex;
for (i = 0; i < colorValues; i++) {
for (j = 0; j < fogValues; j++) {
k = i * fogValues + j;
intensity = (i * fogValues + j * colorValues) / 255.0;
glutSetColor(k, intensity, intensity, intensity);
}
}
}
static void SetGreyRamp(void)
{
int i;
float intensity;
for (i = 0; i < 255; i++) {
intensity = i / 255.0;
glutSetColor(i, intensity, intensity, intensity);
}
}

View file

@ -216,22 +216,22 @@ void draw_pipeline_run( struct draw_context *draw,
( DRAW_PIPE_RESET_STIPPLE | \
DRAW_PIPE_EDGE_FLAG_0 | \
DRAW_PIPE_EDGE_FLAG_2 ), \
verts + stride * ((i0) & ~DRAW_PIPE_FLAG_MASK), \
verts + stride * (i1), \
verts + stride * ((i0) & ~DRAW_PIPE_FLAG_MASK), \
verts + stride * (i1), \
verts + stride * (i3)); \
do_triangle( draw, \
( DRAW_PIPE_EDGE_FLAG_0 | \
DRAW_PIPE_EDGE_FLAG_1 ), \
verts + stride * ((i1) & ~DRAW_PIPE_FLAG_MASK), \
verts + stride * (i2), \
verts + stride * (i3))
do_triangle( draw, \
( DRAW_PIPE_EDGE_FLAG_0 | \
DRAW_PIPE_EDGE_FLAG_1 ), \
verts + stride * ((i1) & ~DRAW_PIPE_FLAG_MASK), \
verts + stride * (i2), \
verts + stride * (i3))
#define TRIANGLE(flags,i0,i1,i2) \
do_triangle( draw, \
flags, /* flags */ \
verts + stride * ((i0) & ~DRAW_PIPE_FLAG_MASK), \
verts + stride * (i1), \
verts + stride * (i2))
verts + stride * ((i0) & ~DRAW_PIPE_FLAG_MASK), \
verts + stride * (i1), \
verts + stride * (i2))
#define LINE(flags,i0,i1) \
do_line( draw, \

View file

@ -159,8 +159,19 @@ vbuf_tri( struct draw_stage *stage,
check_space( vbuf, 3 );
for (i = 0; i < 3; i++) {
vbuf->indices[vbuf->nr_indices++] = emit_vertex( vbuf, prim->v[i] );
if (vbuf->stage.draw->rasterizer->flatshade_first) {
/* Put provoking vertex in position expected by the driver.
* Emit last provoking vertex in first pos.
* Swap verts 0 & 1 to preserve polygon winding.
*/
vbuf->indices[vbuf->nr_indices++] = emit_vertex( vbuf, prim->v[2] );
vbuf->indices[vbuf->nr_indices++] = emit_vertex( vbuf, prim->v[0] );
vbuf->indices[vbuf->nr_indices++] = emit_vertex( vbuf, prim->v[1] );
}
else {
for (i = 0; i < 3; i++) {
vbuf->indices[vbuf->nr_indices++] = emit_vertex( vbuf, prim->v[i] );
}
}
}

View file

@ -47,10 +47,19 @@ static void FUNC( ARGS,
case PIPE_PRIM_TRIANGLES:
for (i = 0; i+2 < count; i += 3) {
TRIANGLE( DRAW_PIPE_RESET_STIPPLE | DRAW_PIPE_EDGE_FLAG_ALL,
(i + 0),
(i + 1),
(i + 2 ));
if (flatfirst) {
/* put provoking vertex in last pos for clipper */
TRIANGLE( DRAW_PIPE_RESET_STIPPLE | DRAW_PIPE_EDGE_FLAG_ALL,
(i + 1),
(i + 2),
(i + 0 ));
}
else {
TRIANGLE( DRAW_PIPE_RESET_STIPPLE | DRAW_PIPE_EDGE_FLAG_ALL,
(i + 0),
(i + 1),
(i + 2 ));
}
}
break;
@ -58,9 +67,9 @@ static void FUNC( ARGS,
if (flatfirst) {
for (i = 0; i+2 < count; i++) {
TRIANGLE( DRAW_PIPE_RESET_STIPPLE | DRAW_PIPE_EDGE_FLAG_ALL,
(i + 0),
(i + 1 + (i&1)),
(i + 2 - (i&1)));
(i + 2 - (i&1)),
(i + 0) );
}
}
else {
@ -78,9 +87,9 @@ static void FUNC( ARGS,
if (flatfirst) {
for (i = 0; i+2 < count; i++) {
TRIANGLE( DRAW_PIPE_RESET_STIPPLE | DRAW_PIPE_EDGE_FLAG_ALL,
(i + 1),
(i + 2),
(0 ));
0,
(i + 1) );
}
}
else {
@ -96,20 +105,40 @@ static void FUNC( ARGS,
case PIPE_PRIM_QUADS:
for (i = 0; i+3 < count; i += 4) {
QUAD( (i + 0),
(i + 1),
(i + 2),
(i + 3));
if (flatfirst) {
for (i = 0; i+3 < count; i += 4) {
QUAD( (i + 1),
(i + 2),
(i + 3),
(i + 0) );
}
}
else {
for (i = 0; i+3 < count; i += 4) {
QUAD( (i + 0),
(i + 1),
(i + 2),
(i + 3));
}
}
break;
case PIPE_PRIM_QUAD_STRIP:
for (i = 0; i+3 < count; i += 2) {
QUAD( (i + 2),
(i + 0),
(i + 1),
(i + 3));
if (flatfirst) {
for (i = 0; i+3 < count; i += 2) {
QUAD( (i + 1),
(i + 3),
(i + 2),
(i + 0) );
}
}
else {
for (i = 0; i+3 < count; i += 2) {
QUAD( (i + 2),
(i + 0),
(i + 1),
(i + 3));
}
}
break;

View file

@ -193,16 +193,30 @@ vcache_ef_quad( struct vcache_frontend *vcache,
unsigned i2,
unsigned i3 )
{
vcache_triangle_flags( vcache,
( DRAW_PIPE_RESET_STIPPLE |
DRAW_PIPE_EDGE_FLAG_0 |
DRAW_PIPE_EDGE_FLAG_2 ),
i0, i1, i3 );
if (vcache->draw->rasterizer->flatshade_first) {
vcache_triangle_flags( vcache,
( DRAW_PIPE_RESET_STIPPLE |
DRAW_PIPE_EDGE_FLAG_0 |
DRAW_PIPE_EDGE_FLAG_1 ),
i0, i1, i2 );
vcache_triangle_flags( vcache,
( DRAW_PIPE_EDGE_FLAG_0 |
DRAW_PIPE_EDGE_FLAG_1 ),
i1, i2, i3 );
vcache_triangle_flags( vcache,
( DRAW_PIPE_EDGE_FLAG_2 |
DRAW_PIPE_EDGE_FLAG_1 ),
i0, i2, i3 );
}
else {
vcache_triangle_flags( vcache,
( DRAW_PIPE_RESET_STIPPLE |
DRAW_PIPE_EDGE_FLAG_0 |
DRAW_PIPE_EDGE_FLAG_2 ),
i0, i1, i3 );
vcache_triangle_flags( vcache,
( DRAW_PIPE_EDGE_FLAG_0 |
DRAW_PIPE_EDGE_FLAG_1 ),
i1, i2, i3 );
}
}
/* At least for now, we're back to using a template include file for

View file

@ -118,21 +118,39 @@ static void FUNC( struct draw_pt_front_end *frontend,
case PIPE_PRIM_QUADS:
for (i = 0; i+3 < count; i += 4) {
QUAD( vcache,
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 2),
get_elt(elts, i + 3));
if (flatfirst) {
QUAD( vcache,
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 2),
get_elt(elts, i + 3) );
}
else {
QUAD( vcache,
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 2),
get_elt(elts, i + 3) );
}
}
break;
case PIPE_PRIM_QUAD_STRIP:
for (i = 0; i+3 < count; i += 2) {
QUAD( vcache,
get_elt(elts, i + 2),
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 3));
if (flatfirst) {
QUAD( vcache,
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 3),
get_elt(elts, i + 2) );
}
else {
QUAD( vcache,
get_elt(elts, i + 2),
get_elt(elts, i + 0),
get_elt(elts, i + 1),
get_elt(elts, i + 3) );
}
}
break;
@ -144,19 +162,38 @@ static void FUNC( struct draw_pt_front_end *frontend,
const ushort edge_first = DRAW_PIPE_EDGE_FLAG_2;
const ushort edge_middle = DRAW_PIPE_EDGE_FLAG_0;
const ushort edge_last = DRAW_PIPE_EDGE_FLAG_1;
ushort edge_next, edge_finish;
flags = DRAW_PIPE_RESET_STIPPLE | edge_first | edge_middle;
if (flatfirst) {
flags = DRAW_PIPE_RESET_STIPPLE | edge_middle | edge_last;
edge_next = edge_last;
edge_finish = edge_first;
}
else {
flags = DRAW_PIPE_RESET_STIPPLE | edge_first | edge_middle;
edge_next = edge_middle;
edge_finish = edge_last;
}
for (i = 0; i+2 < count; i++, flags = edge_middle) {
for (i = 0; i+2 < count; i++, flags = edge_next) {
if (i + 3 == count)
flags |= edge_last;
flags |= edge_finish;
TRIANGLE( vcache,
flags,
get_elt(elts, i + 1),
get_elt(elts, i + 2),
get_elt(elts, 0));
if (flatfirst) {
TRIANGLE( vcache,
flags,
get_elt(elts, 0),
get_elt(elts, i + 1),
get_elt(elts, i + 2) );
}
else {
TRIANGLE( vcache,
flags,
get_elt(elts, i + 1),
get_elt(elts, i + 2),
get_elt(elts, 0));
}
}
}
break;

View file

@ -238,65 +238,117 @@ sp_vbuf_draw(struct vbuf_render *vbr, const ushort *indices, uint nr)
case PIPE_PRIM_TRIANGLES:
for (i = 2; i < nr; i += 3) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-2], stride),
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-0], stride));
if (softpipe->rasterizer->flatshade_first) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-0], stride),
get_vert(vertex_buffer, indices[i-2], stride) );
}
else {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-2], stride),
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-0], stride) );
}
}
break;
case PIPE_PRIM_TRIANGLE_STRIP:
for (i = 2; i < nr; i += 1) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i+(i&1)-2], stride),
get_vert(vertex_buffer, indices[i-(i&1)-1], stride),
get_vert(vertex_buffer, indices[i-0], stride));
if (softpipe->rasterizer->flatshade_first) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i+(i&1)-1], stride),
get_vert(vertex_buffer, indices[i-(i&1)], stride),
get_vert(vertex_buffer, indices[i-2], stride) );
}
else {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i+(i&1)-2], stride),
get_vert(vertex_buffer, indices[i-(i&1)-1], stride),
get_vert(vertex_buffer, indices[i-0], stride) );
}
}
break;
case PIPE_PRIM_TRIANGLE_FAN:
for (i = 2; i < nr; i += 1) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[0], stride),
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-0], stride));
if (softpipe->rasterizer->flatshade_first) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-0], stride),
get_vert(vertex_buffer, indices[0], stride),
get_vert(vertex_buffer, indices[i-1], stride) );
}
else {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[0], stride),
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-0], stride) );
}
}
break;
case PIPE_PRIM_QUADS:
for (i = 3; i < nr; i += 4) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-3], stride),
get_vert(vertex_buffer, indices[i-2], stride),
get_vert(vertex_buffer, indices[i-0], stride));
if (softpipe->rasterizer->flatshade_first) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-2], stride),
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-3], stride) );
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-0], stride),
get_vert(vertex_buffer, indices[i-3], stride) );
}
else {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-3], stride),
get_vert(vertex_buffer, indices[i-2], stride),
get_vert(vertex_buffer, indices[i-0], stride) );
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-2], stride),
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-0], stride));
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-2], stride),
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-0], stride) );
}
}
break;
case PIPE_PRIM_QUAD_STRIP:
for (i = 3; i < nr; i += 2) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-3], stride),
get_vert(vertex_buffer, indices[i-2], stride),
get_vert(vertex_buffer, indices[i-0], stride));
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-3], stride),
get_vert(vertex_buffer, indices[i-0], stride));
if (softpipe->rasterizer->flatshade_first) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-0], stride),
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-3], stride));
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-2], stride),
get_vert(vertex_buffer, indices[i-0], stride),
get_vert(vertex_buffer, indices[i-3], stride) );
}
else {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-3], stride),
get_vert(vertex_buffer, indices[i-2], stride),
get_vert(vertex_buffer, indices[i-0], stride) );
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[i-3], stride),
get_vert(vertex_buffer, indices[i-0], stride) );
}
}
break;
case PIPE_PRIM_POLYGON:
/* Almost same as tri fan but the _first_ vertex specifies the flat
* shading color. Note that the first polygon vertex is passed as
* the last triangle vertex here.
* flatshade_first state makes no difference.
*/
for (i = 2; i < nr; i += 1) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, indices[0-1], stride),
get_vert(vertex_buffer, indices[i-0], stride),
get_vert(vertex_buffer, indices[0], stride));
get_vert(vertex_buffer, indices[i-1], stride),
get_vert(vertex_buffer, indices[0], stride) );
}
break;
@ -368,58 +420,104 @@ sp_vbuf_draw_arrays(struct vbuf_render *vbr, uint start, uint nr)
}
break;
case PIPE_PRIM_TRIANGLES:
for (i = 2; i < nr; i += 3) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-2, stride),
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-0, stride));
if (softpipe->rasterizer->flatshade_first) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-0, stride),
get_vert(vertex_buffer, i-2, stride) );
}
else {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-2, stride),
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-0, stride) );
}
}
break;
case PIPE_PRIM_TRIANGLE_STRIP:
for (i = 2; i < nr; i += 1) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i+(i&1)-2, stride),
get_vert(vertex_buffer, i-(i&1)-1, stride),
get_vert(vertex_buffer, i-0, stride));
for (i = 2; i < nr; i++) {
if (softpipe->rasterizer->flatshade_first) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i+(i&1)-1, stride),
get_vert(vertex_buffer, i-(i&1), stride),
get_vert(vertex_buffer, i-2, stride) );
}
else {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i+(i&1)-2, stride),
get_vert(vertex_buffer, i-(i&1)-1, stride),
get_vert(vertex_buffer, i-0, stride) );
}
}
break;
case PIPE_PRIM_TRIANGLE_FAN:
for (i = 2; i < nr; i += 1) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, 0, stride),
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-0, stride));
if (softpipe->rasterizer->flatshade_first) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-0, stride),
get_vert(vertex_buffer, 0, stride),
get_vert(vertex_buffer, i-1, stride) );
}
else {
setup_tri( setup_ctx,
get_vert(vertex_buffer, 0, stride),
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-0, stride) );
}
}
break;
case PIPE_PRIM_QUADS:
for (i = 3; i < nr; i += 4) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-3, stride),
get_vert(vertex_buffer, i-2, stride),
get_vert(vertex_buffer, i-0, stride));
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-2, stride),
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-0, stride));
if (softpipe->rasterizer->flatshade_first) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-2, stride),
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-3, stride) );
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-0, stride),
get_vert(vertex_buffer, i-3, stride) );
}
else {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-3, stride),
get_vert(vertex_buffer, i-2, stride),
get_vert(vertex_buffer, i-0, stride) );
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-2, stride),
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-0, stride) );
}
}
break;
case PIPE_PRIM_QUAD_STRIP:
for (i = 3; i < nr; i += 2) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-3, stride),
get_vert(vertex_buffer, i-2, stride),
get_vert(vertex_buffer, i-0, stride));
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-3, stride),
get_vert(vertex_buffer, i-0, stride));
if (softpipe->rasterizer->flatshade_first) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-0, stride),
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-3, stride) );
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-2, stride),
get_vert(vertex_buffer, i-0, stride),
get_vert(vertex_buffer, i-3, stride) );
}
else {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-3, stride),
get_vert(vertex_buffer, i-2, stride),
get_vert(vertex_buffer, i-0, stride) );
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-3, stride),
get_vert(vertex_buffer, i-0, stride) );
}
}
break;
@ -427,12 +525,13 @@ sp_vbuf_draw_arrays(struct vbuf_render *vbr, uint start, uint nr)
/* Almost same as tri fan but the _first_ vertex specifies the flat
* shading color. Note that the first polygon vertex is passed as
* the last triangle vertex here.
* flatshade_first state makes no difference.
*/
for (i = 2; i < nr; i += 1) {
setup_tri( setup_ctx,
get_vert(vertex_buffer, i-1, stride),
get_vert(vertex_buffer, i-0, stride),
get_vert(vertex_buffer, 0, stride));
get_vert(vertex_buffer, 0, stride) );
}
break;

View file

@ -1054,7 +1054,10 @@ setup_line_coefficients(struct setup_context *setup,
float area;
/* use setup->vmin, vmax to point to vertices */
setup->vprovoke = v1;
if (softpipe->rasterizer->flatshade_first)
setup->vprovoke = v0;
else
setup->vprovoke = v1;
setup->vmin = v0;
setup->vmax = v1;

View file

@ -4310,6 +4310,13 @@ static const char SpriteParameterivSGIX_names[] =
"";
#endif
#if defined(need_GL_EXT_provoking_vertex)
static const char ProvokingVertexEXT_names[] =
"i\0" /* Parameter signature */
"glProvokingVertexEXT\0"
"";
#endif
#if defined(need_GL_VERSION_1_3)
static const char MultiTexCoord1fARB_names[] =
"if\0" /* Parameter signature */
@ -5563,6 +5570,13 @@ static const struct dri_extension_function GL_EXT_polygon_offset_functions[] = {
};
#endif
#if defined(need_GL_EXT_provoking_vertex)
static const struct dri_extension_function GL_EXT_provoking_vertex_functions[] = {
{ ProvokingVertexEXT_names, ProvokingVertexEXT_remap_index, -1 },
{ NULL, 0, 0 }
};
#endif
#if defined(need_GL_EXT_secondary_color)
static const struct dri_extension_function GL_EXT_secondary_color_functions[] = {
{ SecondaryColor3iEXT_names, SecondaryColor3iEXT_remap_index, -1 },

View file

@ -0,0 +1,22 @@
<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
<!-- Note: no GLX protocol info yet. -->
<OpenGLAPI>
<category name="GL_EXT_provoking_vertex" number="364">
<enum name="FIRST_VERTEX_CONVENTION_EXT" value="0x8E4D"/>
<enum name="LAST_VERTEX_CONVENTION_EXT" value="0x8E4E"/>
<enum name="PROVOKING_VERTEX_EXT" value="0x8E4F"/>
<enum name="QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT" value="0x8E4C"/>
<function name="ProvokingVertexEXT" offset="assign">
<param name="mode" type="GLenum"/>
</function>
</category>
</OpenGLAPI>

View file

@ -50,7 +50,8 @@ API_XML = gl_API.xml \
ARB_copy_buffer.xml \
ARB_framebuffer_object.xml \
ARB_map_buffer_range.xml \
APPLE_vertex_array_object.xml
APPLE_vertex_array_object.xml \
EXT_provoking_vertex.xml
COMMON = gl_XML.py glX_XML.py license.py $(API_XML) typeexpr.py
COMMON_GLX = $(COMMON) glX_API.xml glX_XML.py glX_proto_common.py

View file

@ -2379,6 +2379,9 @@
#define CALL_FramebufferTextureLayerEXT(disp, parameters) (*((disp)->FramebufferTextureLayerEXT)) parameters
#define GET_FramebufferTextureLayerEXT(disp) ((disp)->FramebufferTextureLayerEXT)
#define SET_FramebufferTextureLayerEXT(disp, fn) ((disp)->FramebufferTextureLayerEXT = fn)
#define CALL_ProvokingVertexEXT(disp, parameters) (*((disp)->ProvokingVertexEXT)) parameters
#define GET_ProvokingVertexEXT(disp) ((disp)->ProvokingVertexEXT)
#define SET_ProvokingVertexEXT(disp, fn) ((disp)->ProvokingVertexEXT = fn)
#define CALL_StencilFuncSeparateATI(disp, parameters) (*((disp)->StencilFuncSeparateATI)) parameters
#define GET_StencilFuncSeparateATI(disp) ((disp)->StencilFuncSeparateATI)
#define SET_StencilFuncSeparateATI(disp, fn) ((disp)->StencilFuncSeparateATI = fn)
@ -2397,7 +2400,7 @@
#else
#define driDispatchRemapTable_size 370
#define driDispatchRemapTable_size 371
extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define AttachShader_remap_index 0
@ -2765,11 +2768,12 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define RenderbufferStorageEXT_remap_index 362
#define BlitFramebufferEXT_remap_index 363
#define FramebufferTextureLayerEXT_remap_index 364
#define StencilFuncSeparateATI_remap_index 365
#define ProgramEnvParameters4fvEXT_remap_index 366
#define ProgramLocalParameters4fvEXT_remap_index 367
#define GetQueryObjecti64vEXT_remap_index 368
#define GetQueryObjectui64vEXT_remap_index 369
#define ProvokingVertexEXT_remap_index 365
#define StencilFuncSeparateATI_remap_index 366
#define ProgramEnvParameters4fvEXT_remap_index 367
#define ProgramLocalParameters4fvEXT_remap_index 368
#define GetQueryObjecti64vEXT_remap_index 369
#define GetQueryObjectui64vEXT_remap_index 370
#define CALL_AttachShader(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLuint, GLuint)), driDispatchRemapTable[AttachShader_remap_index], parameters)
#define GET_AttachShader(disp) GET_by_offset(disp, driDispatchRemapTable[AttachShader_remap_index])
@ -3866,6 +3870,9 @@ extern int driDispatchRemapTable[ driDispatchRemapTable_size ];
#define CALL_FramebufferTextureLayerEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLuint, GLint, GLint)), driDispatchRemapTable[FramebufferTextureLayerEXT_remap_index], parameters)
#define GET_FramebufferTextureLayerEXT(disp) GET_by_offset(disp, driDispatchRemapTable[FramebufferTextureLayerEXT_remap_index])
#define SET_FramebufferTextureLayerEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[FramebufferTextureLayerEXT_remap_index], fn)
#define CALL_ProvokingVertexEXT(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum)), driDispatchRemapTable[ProvokingVertexEXT_remap_index], parameters)
#define GET_ProvokingVertexEXT(disp) GET_by_offset(disp, driDispatchRemapTable[ProvokingVertexEXT_remap_index])
#define SET_ProvokingVertexEXT(disp, fn) SET_by_offset(disp, driDispatchRemapTable[ProvokingVertexEXT_remap_index], fn)
#define CALL_StencilFuncSeparateATI(disp, parameters) CALL_by_offset(disp, (void (GLAPIENTRYP)(GLenum, GLenum, GLint, GLuint)), driDispatchRemapTable[StencilFuncSeparateATI_remap_index], parameters)
#define GET_StencilFuncSeparateATI(disp) GET_by_offset(disp, driDispatchRemapTable[StencilFuncSeparateATI_remap_index])
#define SET_StencilFuncSeparateATI(disp, fn) SET_by_offset(disp, driDispatchRemapTable[StencilFuncSeparateATI_remap_index], fn)

View file

@ -12228,6 +12228,8 @@
<xi:include href="EXT_framebuffer_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<xi:include href="EXT_provoking_vertex.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<category name="GL_EXT_framebuffer_blit" number="316">
<enum name="READ_FRAMEBUFFER_EXT" value="0x8CA8"/>
<enum name="DRAW_FRAMEBUFFER_EXT" value="0x8CA9"/>

View file

@ -805,12 +805,13 @@
#define _gloffset_RenderbufferStorageEXT 770
#define _gloffset_BlitFramebufferEXT 771
#define _gloffset_FramebufferTextureLayerEXT 772
#define _gloffset_StencilFuncSeparateATI 773
#define _gloffset_ProgramEnvParameters4fvEXT 774
#define _gloffset_ProgramLocalParameters4fvEXT 775
#define _gloffset_GetQueryObjecti64vEXT 776
#define _gloffset_GetQueryObjectui64vEXT 777
#define _gloffset_FIRST_DYNAMIC 778
#define _gloffset_ProvokingVertexEXT 773
#define _gloffset_StencilFuncSeparateATI 774
#define _gloffset_ProgramEnvParameters4fvEXT 775
#define _gloffset_ProgramLocalParameters4fvEXT 776
#define _gloffset_GetQueryObjecti64vEXT 777
#define _gloffset_GetQueryObjectui64vEXT 778
#define _gloffset_FIRST_DYNAMIC 779
#else
@ -1179,6 +1180,7 @@
#define _gloffset_RenderbufferStorageEXT driDispatchRemapTable[RenderbufferStorageEXT_remap_index]
#define _gloffset_BlitFramebufferEXT driDispatchRemapTable[BlitFramebufferEXT_remap_index]
#define _gloffset_FramebufferTextureLayerEXT driDispatchRemapTable[FramebufferTextureLayerEXT_remap_index]
#define _gloffset_ProvokingVertexEXT driDispatchRemapTable[ProvokingVertexEXT_remap_index]
#define _gloffset_StencilFuncSeparateATI driDispatchRemapTable[StencilFuncSeparateATI_remap_index]
#define _gloffset_ProgramEnvParameters4fvEXT driDispatchRemapTable[ProgramEnvParameters4fvEXT_remap_index]
#define _gloffset_ProgramLocalParameters4fvEXT driDispatchRemapTable[ProgramLocalParameters4fvEXT_remap_index]

View file

@ -813,11 +813,12 @@ struct _glapi_table
void (GLAPIENTRYP RenderbufferStorageEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); /* 770 */
void (GLAPIENTRYP BlitFramebufferEXT)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); /* 771 */
void (GLAPIENTRYP FramebufferTextureLayerEXT)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); /* 772 */
void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 773 */
void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 774 */
void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 775 */
void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 776 */
void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 777 */
void (GLAPIENTRYP ProvokingVertexEXT)(GLenum mode); /* 773 */
void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 774 */
void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 775 */
void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 776 */
void (GLAPIENTRYP GetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64EXT * params); /* 777 */
void (GLAPIENTRYP GetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64EXT * params); /* 778 */
};
#endif /* !defined( _GLAPI_TABLE_H_ ) */

View file

@ -5588,37 +5588,42 @@ KEYWORD1 void KEYWORD2 NAME(FramebufferTextureLayerEXT)(GLenum target, GLenum at
DISPATCH(FramebufferTextureLayerEXT, (target, attachment, texture, level, layer), (F, "glFramebufferTextureLayerEXT(0x%x, 0x%x, %d, %d, %d);\n", target, attachment, texture, level, layer));
}
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_773)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_773)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)
KEYWORD1 void KEYWORD2 NAME(ProvokingVertexEXT)(GLenum mode)
{
DISPATCH(StencilFuncSeparateATI, (frontfunc, backfunc, ref, mask), (F, "glStencilFuncSeparateATI(0x%x, 0x%x, %d, %d);\n", frontfunc, backfunc, ref, mask));
DISPATCH(ProvokingVertexEXT, (mode), (F, "glProvokingVertexEXT(0x%x);\n", mode));
}
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_774)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_774)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_774)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_774)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)
{
DISPATCH(ProgramEnvParameters4fvEXT, (target, index, count, params), (F, "glProgramEnvParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
DISPATCH(StencilFuncSeparateATI, (frontfunc, backfunc, ref, mask), (F, "glStencilFuncSeparateATI(0x%x, 0x%x, %d, %d);\n", frontfunc, backfunc, ref, mask));
}
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_775)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_775)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
{
DISPATCH(ProgramEnvParameters4fvEXT, (target, index, count, params), (F, "glProgramEnvParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
}
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_776)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_776)(GLenum target, GLuint index, GLsizei count, const GLfloat * params)
{
DISPATCH(ProgramLocalParameters4fvEXT, (target, index, count, params), (F, "glProgramLocalParameters4fvEXT(0x%x, %d, %d, %p);\n", target, index, count, (const void *) params));
}
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_776)(GLuint id, GLenum pname, GLint64EXT * params);
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_777)(GLuint id, GLenum pname, GLint64EXT * params);
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_776)(GLuint id, GLenum pname, GLint64EXT * params)
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_777)(GLuint id, GLenum pname, GLint64EXT * params)
{
DISPATCH(GetQueryObjecti64vEXT, (id, pname, params), (F, "glGetQueryObjecti64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params));
}
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_777)(GLuint id, GLenum pname, GLuint64EXT * params);
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_778)(GLuint id, GLenum pname, GLuint64EXT * params);
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_777)(GLuint id, GLenum pname, GLuint64EXT * params)
KEYWORD1_ALT void KEYWORD2 NAME(_dispatch_stub_778)(GLuint id, GLenum pname, GLuint64EXT * params)
{
DISPATCH(GetQueryObjectui64vEXT, (id, pname, params), (F, "glGetQueryObjectui64vEXT(%d, 0x%x, %p);\n", id, pname, (const void *) params));
}
@ -6410,11 +6415,12 @@ static _glapi_proc DISPATCH_TABLE_NAME[] = {
TABLE_ENTRY(RenderbufferStorageEXT),
TABLE_ENTRY(_dispatch_stub_771),
TABLE_ENTRY(FramebufferTextureLayerEXT),
TABLE_ENTRY(_dispatch_stub_773),
TABLE_ENTRY(ProvokingVertexEXT),
TABLE_ENTRY(_dispatch_stub_774),
TABLE_ENTRY(_dispatch_stub_775),
TABLE_ENTRY(_dispatch_stub_776),
TABLE_ENTRY(_dispatch_stub_777),
TABLE_ENTRY(_dispatch_stub_778),
/* A whole bunch of no-op functions. These might be called
* when someone tries to call a dynamically-registered
* extension function without a current rendering context.

View file

@ -825,6 +825,7 @@ static const char gl_string_table[] =
"glRenderbufferStorageEXT\0"
"glBlitFramebufferEXT\0"
"glFramebufferTextureLayerEXT\0"
"glProvokingVertexEXT\0"
"glStencilFuncSeparateATI\0"
"glProgramEnvParameters4fvEXT\0"
"glProgramLocalParameters4fvEXT\0"
@ -1173,11 +1174,11 @@ static const char gl_string_table[] =
#define gl_dispatch_stub_752 mgl_dispatch_stub_752
#define gl_dispatch_stub_753 mgl_dispatch_stub_753
#define gl_dispatch_stub_771 mgl_dispatch_stub_771
#define gl_dispatch_stub_773 mgl_dispatch_stub_773
#define gl_dispatch_stub_774 mgl_dispatch_stub_774
#define gl_dispatch_stub_775 mgl_dispatch_stub_775
#define gl_dispatch_stub_776 mgl_dispatch_stub_776
#define gl_dispatch_stub_777 mgl_dispatch_stub_777
#define gl_dispatch_stub_778 mgl_dispatch_stub_778
#endif /* USE_MGL_NAMESPACE */
@ -1223,11 +1224,11 @@ GLboolean GLAPIENTRY gl_dispatch_stub_745(GLuint array);
void GLAPIENTRY gl_dispatch_stub_752(GLclampd zmin, GLclampd zmax);
void GLAPIENTRY gl_dispatch_stub_753(GLenum modeRGB, GLenum modeA);
void GLAPIENTRY gl_dispatch_stub_771(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
void GLAPIENTRY gl_dispatch_stub_773(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
void GLAPIENTRY gl_dispatch_stub_774(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
void GLAPIENTRY gl_dispatch_stub_774(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
void GLAPIENTRY gl_dispatch_stub_775(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
void GLAPIENTRY gl_dispatch_stub_776(GLuint id, GLenum pname, GLint64EXT * params);
void GLAPIENTRY gl_dispatch_stub_777(GLuint id, GLenum pname, GLuint64EXT * params);
void GLAPIENTRY gl_dispatch_stub_776(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
void GLAPIENTRY gl_dispatch_stub_777(GLuint id, GLenum pname, GLint64EXT * params);
void GLAPIENTRY gl_dispatch_stub_778(GLuint id, GLenum pname, GLuint64EXT * params);
#endif /* defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING) */
static const glprocs_table_t static_functions[] = {
@ -2004,309 +2005,310 @@ static const glprocs_table_t static_functions[] = {
NAME_FUNC_OFFSET(13527, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT),
NAME_FUNC_OFFSET(13552, gl_dispatch_stub_771, gl_dispatch_stub_771, NULL, _gloffset_BlitFramebufferEXT),
NAME_FUNC_OFFSET(13573, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT),
NAME_FUNC_OFFSET(13602, gl_dispatch_stub_773, gl_dispatch_stub_773, NULL, _gloffset_StencilFuncSeparateATI),
NAME_FUNC_OFFSET(13627, gl_dispatch_stub_774, gl_dispatch_stub_774, NULL, _gloffset_ProgramEnvParameters4fvEXT),
NAME_FUNC_OFFSET(13656, gl_dispatch_stub_775, gl_dispatch_stub_775, NULL, _gloffset_ProgramLocalParameters4fvEXT),
NAME_FUNC_OFFSET(13687, gl_dispatch_stub_776, gl_dispatch_stub_776, NULL, _gloffset_GetQueryObjecti64vEXT),
NAME_FUNC_OFFSET(13711, gl_dispatch_stub_777, gl_dispatch_stub_777, NULL, _gloffset_GetQueryObjectui64vEXT),
NAME_FUNC_OFFSET(13736, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement),
NAME_FUNC_OFFSET(13754, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture),
NAME_FUNC_OFFSET(13771, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays),
NAME_FUNC_OFFSET(13787, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident),
NAME_FUNC_OFFSET(13812, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D),
NAME_FUNC_OFFSET(13832, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D),
NAME_FUNC_OFFSET(13852, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D),
NAME_FUNC_OFFSET(13875, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D),
NAME_FUNC_OFFSET(13898, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures),
NAME_FUNC_OFFSET(13918, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures),
NAME_FUNC_OFFSET(13935, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv),
NAME_FUNC_OFFSET(13952, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture),
NAME_FUNC_OFFSET(13967, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures),
NAME_FUNC_OFFSET(13991, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D),
NAME_FUNC_OFFSET(14010, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D),
NAME_FUNC_OFFSET(14029, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor),
NAME_FUNC_OFFSET(14045, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation),
NAME_FUNC_OFFSET(14064, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements),
NAME_FUNC_OFFSET(14087, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
NAME_FUNC_OFFSET(14103, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
NAME_FUNC_OFFSET(14119, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv),
NAME_FUNC_OFFSET(14146, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv),
NAME_FUNC_OFFSET(14173, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable),
NAME_FUNC_OFFSET(14193, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
NAME_FUNC_OFFSET(14212, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
NAME_FUNC_OFFSET(14231, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
NAME_FUNC_OFFSET(14261, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
NAME_FUNC_OFFSET(14291, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
NAME_FUNC_OFFSET(14321, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
NAME_FUNC_OFFSET(14351, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable),
NAME_FUNC_OFFSET(14370, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable),
NAME_FUNC_OFFSET(14393, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D),
NAME_FUNC_OFFSET(14418, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D),
NAME_FUNC_OFFSET(14443, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf),
NAME_FUNC_OFFSET(14470, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv),
NAME_FUNC_OFFSET(14498, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri),
NAME_FUNC_OFFSET(14525, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv),
NAME_FUNC_OFFSET(14553, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D),
NAME_FUNC_OFFSET(14582, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D),
NAME_FUNC_OFFSET(14611, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter),
NAME_FUNC_OFFSET(14637, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv),
NAME_FUNC_OFFSET(14668, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv),
NAME_FUNC_OFFSET(14699, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter),
NAME_FUNC_OFFSET(14723, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D),
NAME_FUNC_OFFSET(14746, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram),
NAME_FUNC_OFFSET(14764, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv),
NAME_FUNC_OFFSET(14793, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv),
NAME_FUNC_OFFSET(14822, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax),
NAME_FUNC_OFFSET(14837, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv),
NAME_FUNC_OFFSET(14863, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv),
NAME_FUNC_OFFSET(14889, glHistogram, glHistogram, NULL, _gloffset_Histogram),
NAME_FUNC_OFFSET(14904, glMinmax, glMinmax, NULL, _gloffset_Minmax),
NAME_FUNC_OFFSET(14916, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram),
NAME_FUNC_OFFSET(14936, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax),
NAME_FUNC_OFFSET(14953, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D),
NAME_FUNC_OFFSET(14969, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D),
NAME_FUNC_OFFSET(14988, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D),
NAME_FUNC_OFFSET(15011, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB),
NAME_FUNC_OFFSET(15027, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB),
NAME_FUNC_OFFSET(15049, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB),
NAME_FUNC_OFFSET(15067, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB),
NAME_FUNC_OFFSET(15086, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB),
NAME_FUNC_OFFSET(15104, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB),
NAME_FUNC_OFFSET(15123, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB),
NAME_FUNC_OFFSET(15141, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB),
NAME_FUNC_OFFSET(15160, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB),
NAME_FUNC_OFFSET(15178, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB),
NAME_FUNC_OFFSET(15197, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB),
NAME_FUNC_OFFSET(15215, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB),
NAME_FUNC_OFFSET(15234, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB),
NAME_FUNC_OFFSET(15252, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB),
NAME_FUNC_OFFSET(15271, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB),
NAME_FUNC_OFFSET(15289, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB),
NAME_FUNC_OFFSET(15308, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB),
NAME_FUNC_OFFSET(15326, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB),
NAME_FUNC_OFFSET(15345, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB),
NAME_FUNC_OFFSET(15363, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB),
NAME_FUNC_OFFSET(15382, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB),
NAME_FUNC_OFFSET(15400, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB),
NAME_FUNC_OFFSET(15419, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB),
NAME_FUNC_OFFSET(15437, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB),
NAME_FUNC_OFFSET(15456, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB),
NAME_FUNC_OFFSET(15474, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB),
NAME_FUNC_OFFSET(15493, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB),
NAME_FUNC_OFFSET(15511, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB),
NAME_FUNC_OFFSET(15530, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB),
NAME_FUNC_OFFSET(15548, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB),
NAME_FUNC_OFFSET(15567, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB),
NAME_FUNC_OFFSET(15585, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB),
NAME_FUNC_OFFSET(15604, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB),
NAME_FUNC_OFFSET(15622, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB),
NAME_FUNC_OFFSET(15641, glStencilOpSeparate, glStencilOpSeparate, NULL, _gloffset_StencilOpSeparate),
NAME_FUNC_OFFSET(15664, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB),
NAME_FUNC_OFFSET(15687, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB),
NAME_FUNC_OFFSET(15710, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB),
NAME_FUNC_OFFSET(15733, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB),
NAME_FUNC_OFFSET(15756, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB),
NAME_FUNC_OFFSET(15773, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB),
NAME_FUNC_OFFSET(15796, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB),
NAME_FUNC_OFFSET(15819, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB),
NAME_FUNC_OFFSET(15842, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB),
NAME_FUNC_OFFSET(15868, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB),
NAME_FUNC_OFFSET(15894, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB),
NAME_FUNC_OFFSET(15920, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB),
NAME_FUNC_OFFSET(15944, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB),
NAME_FUNC_OFFSET(15971, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB),
NAME_FUNC_OFFSET(15997, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB),
NAME_FUNC_OFFSET(16017, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB),
NAME_FUNC_OFFSET(16037, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB),
NAME_FUNC_OFFSET(16057, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, _gloffset_ProgramEnvParameter4dARB),
NAME_FUNC_OFFSET(16080, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, _gloffset_ProgramEnvParameter4dvARB),
NAME_FUNC_OFFSET(16104, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, _gloffset_ProgramEnvParameter4fARB),
NAME_FUNC_OFFSET(16127, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, _gloffset_ProgramEnvParameter4fvARB),
NAME_FUNC_OFFSET(16151, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB),
NAME_FUNC_OFFSET(16168, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB),
NAME_FUNC_OFFSET(16186, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB),
NAME_FUNC_OFFSET(16203, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB),
NAME_FUNC_OFFSET(16221, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB),
NAME_FUNC_OFFSET(16238, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB),
NAME_FUNC_OFFSET(16256, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB),
NAME_FUNC_OFFSET(16273, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB),
NAME_FUNC_OFFSET(16291, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB),
NAME_FUNC_OFFSET(16308, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB),
NAME_FUNC_OFFSET(16326, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB),
NAME_FUNC_OFFSET(16343, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB),
NAME_FUNC_OFFSET(16361, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB),
NAME_FUNC_OFFSET(16378, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB),
NAME_FUNC_OFFSET(16396, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB),
NAME_FUNC_OFFSET(16413, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB),
NAME_FUNC_OFFSET(16431, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB),
NAME_FUNC_OFFSET(16448, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB),
NAME_FUNC_OFFSET(16466, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB),
NAME_FUNC_OFFSET(16485, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB),
NAME_FUNC_OFFSET(16504, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB),
NAME_FUNC_OFFSET(16523, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB),
NAME_FUNC_OFFSET(16542, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB),
NAME_FUNC_OFFSET(16562, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB),
NAME_FUNC_OFFSET(16582, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB),
NAME_FUNC_OFFSET(16602, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB),
NAME_FUNC_OFFSET(16620, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB),
NAME_FUNC_OFFSET(16637, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB),
NAME_FUNC_OFFSET(16655, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB),
NAME_FUNC_OFFSET(16672, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB),
NAME_FUNC_OFFSET(16690, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB),
NAME_FUNC_OFFSET(16708, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB),
NAME_FUNC_OFFSET(16725, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB),
NAME_FUNC_OFFSET(16743, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB),
NAME_FUNC_OFFSET(16762, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB),
NAME_FUNC_OFFSET(16781, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB),
NAME_FUNC_OFFSET(16800, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB),
NAME_FUNC_OFFSET(16822, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB),
NAME_FUNC_OFFSET(16835, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB),
NAME_FUNC_OFFSET(16848, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB),
NAME_FUNC_OFFSET(16864, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB),
NAME_FUNC_OFFSET(16880, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB),
NAME_FUNC_OFFSET(16893, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB),
NAME_FUNC_OFFSET(16916, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB),
NAME_FUNC_OFFSET(16936, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB),
NAME_FUNC_OFFSET(16955, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB),
NAME_FUNC_OFFSET(16966, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB),
NAME_FUNC_OFFSET(16978, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB),
NAME_FUNC_OFFSET(16992, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB),
NAME_FUNC_OFFSET(17005, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB),
NAME_FUNC_OFFSET(17021, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB),
NAME_FUNC_OFFSET(17032, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB),
NAME_FUNC_OFFSET(17045, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB),
NAME_FUNC_OFFSET(17064, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB),
NAME_FUNC_OFFSET(17084, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB),
NAME_FUNC_OFFSET(17097, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB),
NAME_FUNC_OFFSET(17107, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB),
NAME_FUNC_OFFSET(17123, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB),
NAME_FUNC_OFFSET(17142, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB),
NAME_FUNC_OFFSET(17160, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB),
NAME_FUNC_OFFSET(17181, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB),
NAME_FUNC_OFFSET(17196, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB),
NAME_FUNC_OFFSET(17211, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB),
NAME_FUNC_OFFSET(17225, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB),
NAME_FUNC_OFFSET(17240, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB),
NAME_FUNC_OFFSET(17252, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB),
NAME_FUNC_OFFSET(17265, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB),
NAME_FUNC_OFFSET(17277, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB),
NAME_FUNC_OFFSET(17290, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB),
NAME_FUNC_OFFSET(17302, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB),
NAME_FUNC_OFFSET(17315, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB),
NAME_FUNC_OFFSET(17327, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB),
NAME_FUNC_OFFSET(17340, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB),
NAME_FUNC_OFFSET(17352, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB),
NAME_FUNC_OFFSET(17365, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB),
NAME_FUNC_OFFSET(17377, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB),
NAME_FUNC_OFFSET(17390, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB),
NAME_FUNC_OFFSET(17402, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB),
NAME_FUNC_OFFSET(17415, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB),
NAME_FUNC_OFFSET(17427, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB),
NAME_FUNC_OFFSET(17440, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB),
NAME_FUNC_OFFSET(17459, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB),
NAME_FUNC_OFFSET(17478, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB),
NAME_FUNC_OFFSET(17497, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB),
NAME_FUNC_OFFSET(17510, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB),
NAME_FUNC_OFFSET(17528, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB),
NAME_FUNC_OFFSET(17549, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB),
NAME_FUNC_OFFSET(17567, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB),
NAME_FUNC_OFFSET(17587, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
NAME_FUNC_OFFSET(17601, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
NAME_FUNC_OFFSET(17618, gl_dispatch_stub_572, gl_dispatch_stub_572, NULL, _gloffset_SampleMaskSGIS),
NAME_FUNC_OFFSET(17634, gl_dispatch_stub_573, gl_dispatch_stub_573, NULL, _gloffset_SamplePatternSGIS),
NAME_FUNC_OFFSET(17653, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
NAME_FUNC_OFFSET(17671, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
NAME_FUNC_OFFSET(13602, glProvokingVertexEXT, glProvokingVertexEXT, NULL, _gloffset_ProvokingVertexEXT),
NAME_FUNC_OFFSET(13623, gl_dispatch_stub_774, gl_dispatch_stub_774, NULL, _gloffset_StencilFuncSeparateATI),
NAME_FUNC_OFFSET(13648, gl_dispatch_stub_775, gl_dispatch_stub_775, NULL, _gloffset_ProgramEnvParameters4fvEXT),
NAME_FUNC_OFFSET(13677, gl_dispatch_stub_776, gl_dispatch_stub_776, NULL, _gloffset_ProgramLocalParameters4fvEXT),
NAME_FUNC_OFFSET(13708, gl_dispatch_stub_777, gl_dispatch_stub_777, NULL, _gloffset_GetQueryObjecti64vEXT),
NAME_FUNC_OFFSET(13732, gl_dispatch_stub_778, gl_dispatch_stub_778, NULL, _gloffset_GetQueryObjectui64vEXT),
NAME_FUNC_OFFSET(13757, glArrayElement, glArrayElement, NULL, _gloffset_ArrayElement),
NAME_FUNC_OFFSET(13775, glBindTexture, glBindTexture, NULL, _gloffset_BindTexture),
NAME_FUNC_OFFSET(13792, glDrawArrays, glDrawArrays, NULL, _gloffset_DrawArrays),
NAME_FUNC_OFFSET(13808, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, _gloffset_AreTexturesResident),
NAME_FUNC_OFFSET(13833, glCopyTexImage1D, glCopyTexImage1D, NULL, _gloffset_CopyTexImage1D),
NAME_FUNC_OFFSET(13853, glCopyTexImage2D, glCopyTexImage2D, NULL, _gloffset_CopyTexImage2D),
NAME_FUNC_OFFSET(13873, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, _gloffset_CopyTexSubImage1D),
NAME_FUNC_OFFSET(13896, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, _gloffset_CopyTexSubImage2D),
NAME_FUNC_OFFSET(13919, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, _gloffset_DeleteTextures),
NAME_FUNC_OFFSET(13939, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, _gloffset_GenTextures),
NAME_FUNC_OFFSET(13956, glGetPointerv, glGetPointerv, NULL, _gloffset_GetPointerv),
NAME_FUNC_OFFSET(13973, glIsTexture, glIsTextureEXT, glIsTextureEXT, _gloffset_IsTexture),
NAME_FUNC_OFFSET(13988, glPrioritizeTextures, glPrioritizeTextures, NULL, _gloffset_PrioritizeTextures),
NAME_FUNC_OFFSET(14012, glTexSubImage1D, glTexSubImage1D, NULL, _gloffset_TexSubImage1D),
NAME_FUNC_OFFSET(14031, glTexSubImage2D, glTexSubImage2D, NULL, _gloffset_TexSubImage2D),
NAME_FUNC_OFFSET(14050, glBlendColor, glBlendColor, NULL, _gloffset_BlendColor),
NAME_FUNC_OFFSET(14066, glBlendEquation, glBlendEquation, NULL, _gloffset_BlendEquation),
NAME_FUNC_OFFSET(14085, glDrawRangeElements, glDrawRangeElements, NULL, _gloffset_DrawRangeElements),
NAME_FUNC_OFFSET(14108, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
NAME_FUNC_OFFSET(14124, glColorTable, glColorTable, NULL, _gloffset_ColorTable),
NAME_FUNC_OFFSET(14140, glColorTableParameterfv, glColorTableParameterfv, NULL, _gloffset_ColorTableParameterfv),
NAME_FUNC_OFFSET(14167, glColorTableParameteriv, glColorTableParameteriv, NULL, _gloffset_ColorTableParameteriv),
NAME_FUNC_OFFSET(14194, glCopyColorTable, glCopyColorTable, NULL, _gloffset_CopyColorTable),
NAME_FUNC_OFFSET(14214, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
NAME_FUNC_OFFSET(14233, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, _gloffset_GetColorTable),
NAME_FUNC_OFFSET(14252, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
NAME_FUNC_OFFSET(14282, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, _gloffset_GetColorTableParameterfv),
NAME_FUNC_OFFSET(14312, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
NAME_FUNC_OFFSET(14342, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, _gloffset_GetColorTableParameteriv),
NAME_FUNC_OFFSET(14372, glColorSubTable, glColorSubTable, NULL, _gloffset_ColorSubTable),
NAME_FUNC_OFFSET(14391, glCopyColorSubTable, glCopyColorSubTable, NULL, _gloffset_CopyColorSubTable),
NAME_FUNC_OFFSET(14414, glConvolutionFilter1D, glConvolutionFilter1D, NULL, _gloffset_ConvolutionFilter1D),
NAME_FUNC_OFFSET(14439, glConvolutionFilter2D, glConvolutionFilter2D, NULL, _gloffset_ConvolutionFilter2D),
NAME_FUNC_OFFSET(14464, glConvolutionParameterf, glConvolutionParameterf, NULL, _gloffset_ConvolutionParameterf),
NAME_FUNC_OFFSET(14491, glConvolutionParameterfv, glConvolutionParameterfv, NULL, _gloffset_ConvolutionParameterfv),
NAME_FUNC_OFFSET(14519, glConvolutionParameteri, glConvolutionParameteri, NULL, _gloffset_ConvolutionParameteri),
NAME_FUNC_OFFSET(14546, glConvolutionParameteriv, glConvolutionParameteriv, NULL, _gloffset_ConvolutionParameteriv),
NAME_FUNC_OFFSET(14574, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, _gloffset_CopyConvolutionFilter1D),
NAME_FUNC_OFFSET(14603, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, _gloffset_CopyConvolutionFilter2D),
NAME_FUNC_OFFSET(14632, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, _gloffset_GetConvolutionFilter),
NAME_FUNC_OFFSET(14658, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, _gloffset_GetConvolutionParameterfv),
NAME_FUNC_OFFSET(14689, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, _gloffset_GetConvolutionParameteriv),
NAME_FUNC_OFFSET(14720, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, _gloffset_GetSeparableFilter),
NAME_FUNC_OFFSET(14744, glSeparableFilter2D, glSeparableFilter2D, NULL, _gloffset_SeparableFilter2D),
NAME_FUNC_OFFSET(14767, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, _gloffset_GetHistogram),
NAME_FUNC_OFFSET(14785, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, _gloffset_GetHistogramParameterfv),
NAME_FUNC_OFFSET(14814, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, _gloffset_GetHistogramParameteriv),
NAME_FUNC_OFFSET(14843, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, _gloffset_GetMinmax),
NAME_FUNC_OFFSET(14858, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, _gloffset_GetMinmaxParameterfv),
NAME_FUNC_OFFSET(14884, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, _gloffset_GetMinmaxParameteriv),
NAME_FUNC_OFFSET(14910, glHistogram, glHistogram, NULL, _gloffset_Histogram),
NAME_FUNC_OFFSET(14925, glMinmax, glMinmax, NULL, _gloffset_Minmax),
NAME_FUNC_OFFSET(14937, glResetHistogram, glResetHistogram, NULL, _gloffset_ResetHistogram),
NAME_FUNC_OFFSET(14957, glResetMinmax, glResetMinmax, NULL, _gloffset_ResetMinmax),
NAME_FUNC_OFFSET(14974, glTexImage3D, glTexImage3D, NULL, _gloffset_TexImage3D),
NAME_FUNC_OFFSET(14990, glTexSubImage3D, glTexSubImage3D, NULL, _gloffset_TexSubImage3D),
NAME_FUNC_OFFSET(15009, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, _gloffset_CopyTexSubImage3D),
NAME_FUNC_OFFSET(15032, glActiveTextureARB, glActiveTextureARB, NULL, _gloffset_ActiveTextureARB),
NAME_FUNC_OFFSET(15048, glClientActiveTextureARB, glClientActiveTextureARB, NULL, _gloffset_ClientActiveTextureARB),
NAME_FUNC_OFFSET(15070, glMultiTexCoord1dARB, glMultiTexCoord1dARB, NULL, _gloffset_MultiTexCoord1dARB),
NAME_FUNC_OFFSET(15088, glMultiTexCoord1dvARB, glMultiTexCoord1dvARB, NULL, _gloffset_MultiTexCoord1dvARB),
NAME_FUNC_OFFSET(15107, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, _gloffset_MultiTexCoord1fARB),
NAME_FUNC_OFFSET(15125, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, _gloffset_MultiTexCoord1fvARB),
NAME_FUNC_OFFSET(15144, glMultiTexCoord1iARB, glMultiTexCoord1iARB, NULL, _gloffset_MultiTexCoord1iARB),
NAME_FUNC_OFFSET(15162, glMultiTexCoord1ivARB, glMultiTexCoord1ivARB, NULL, _gloffset_MultiTexCoord1ivARB),
NAME_FUNC_OFFSET(15181, glMultiTexCoord1sARB, glMultiTexCoord1sARB, NULL, _gloffset_MultiTexCoord1sARB),
NAME_FUNC_OFFSET(15199, glMultiTexCoord1svARB, glMultiTexCoord1svARB, NULL, _gloffset_MultiTexCoord1svARB),
NAME_FUNC_OFFSET(15218, glMultiTexCoord2dARB, glMultiTexCoord2dARB, NULL, _gloffset_MultiTexCoord2dARB),
NAME_FUNC_OFFSET(15236, glMultiTexCoord2dvARB, glMultiTexCoord2dvARB, NULL, _gloffset_MultiTexCoord2dvARB),
NAME_FUNC_OFFSET(15255, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, _gloffset_MultiTexCoord2fARB),
NAME_FUNC_OFFSET(15273, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, _gloffset_MultiTexCoord2fvARB),
NAME_FUNC_OFFSET(15292, glMultiTexCoord2iARB, glMultiTexCoord2iARB, NULL, _gloffset_MultiTexCoord2iARB),
NAME_FUNC_OFFSET(15310, glMultiTexCoord2ivARB, glMultiTexCoord2ivARB, NULL, _gloffset_MultiTexCoord2ivARB),
NAME_FUNC_OFFSET(15329, glMultiTexCoord2sARB, glMultiTexCoord2sARB, NULL, _gloffset_MultiTexCoord2sARB),
NAME_FUNC_OFFSET(15347, glMultiTexCoord2svARB, glMultiTexCoord2svARB, NULL, _gloffset_MultiTexCoord2svARB),
NAME_FUNC_OFFSET(15366, glMultiTexCoord3dARB, glMultiTexCoord3dARB, NULL, _gloffset_MultiTexCoord3dARB),
NAME_FUNC_OFFSET(15384, glMultiTexCoord3dvARB, glMultiTexCoord3dvARB, NULL, _gloffset_MultiTexCoord3dvARB),
NAME_FUNC_OFFSET(15403, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, _gloffset_MultiTexCoord3fARB),
NAME_FUNC_OFFSET(15421, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, _gloffset_MultiTexCoord3fvARB),
NAME_FUNC_OFFSET(15440, glMultiTexCoord3iARB, glMultiTexCoord3iARB, NULL, _gloffset_MultiTexCoord3iARB),
NAME_FUNC_OFFSET(15458, glMultiTexCoord3ivARB, glMultiTexCoord3ivARB, NULL, _gloffset_MultiTexCoord3ivARB),
NAME_FUNC_OFFSET(15477, glMultiTexCoord3sARB, glMultiTexCoord3sARB, NULL, _gloffset_MultiTexCoord3sARB),
NAME_FUNC_OFFSET(15495, glMultiTexCoord3svARB, glMultiTexCoord3svARB, NULL, _gloffset_MultiTexCoord3svARB),
NAME_FUNC_OFFSET(15514, glMultiTexCoord4dARB, glMultiTexCoord4dARB, NULL, _gloffset_MultiTexCoord4dARB),
NAME_FUNC_OFFSET(15532, glMultiTexCoord4dvARB, glMultiTexCoord4dvARB, NULL, _gloffset_MultiTexCoord4dvARB),
NAME_FUNC_OFFSET(15551, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, _gloffset_MultiTexCoord4fARB),
NAME_FUNC_OFFSET(15569, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, _gloffset_MultiTexCoord4fvARB),
NAME_FUNC_OFFSET(15588, glMultiTexCoord4iARB, glMultiTexCoord4iARB, NULL, _gloffset_MultiTexCoord4iARB),
NAME_FUNC_OFFSET(15606, glMultiTexCoord4ivARB, glMultiTexCoord4ivARB, NULL, _gloffset_MultiTexCoord4ivARB),
NAME_FUNC_OFFSET(15625, glMultiTexCoord4sARB, glMultiTexCoord4sARB, NULL, _gloffset_MultiTexCoord4sARB),
NAME_FUNC_OFFSET(15643, glMultiTexCoord4svARB, glMultiTexCoord4svARB, NULL, _gloffset_MultiTexCoord4svARB),
NAME_FUNC_OFFSET(15662, glStencilOpSeparate, glStencilOpSeparate, NULL, _gloffset_StencilOpSeparate),
NAME_FUNC_OFFSET(15685, glLoadTransposeMatrixdARB, glLoadTransposeMatrixdARB, NULL, _gloffset_LoadTransposeMatrixdARB),
NAME_FUNC_OFFSET(15708, glLoadTransposeMatrixfARB, glLoadTransposeMatrixfARB, NULL, _gloffset_LoadTransposeMatrixfARB),
NAME_FUNC_OFFSET(15731, glMultTransposeMatrixdARB, glMultTransposeMatrixdARB, NULL, _gloffset_MultTransposeMatrixdARB),
NAME_FUNC_OFFSET(15754, glMultTransposeMatrixfARB, glMultTransposeMatrixfARB, NULL, _gloffset_MultTransposeMatrixfARB),
NAME_FUNC_OFFSET(15777, glSampleCoverageARB, glSampleCoverageARB, NULL, _gloffset_SampleCoverageARB),
NAME_FUNC_OFFSET(15794, glCompressedTexImage1DARB, glCompressedTexImage1DARB, NULL, _gloffset_CompressedTexImage1DARB),
NAME_FUNC_OFFSET(15817, glCompressedTexImage2DARB, glCompressedTexImage2DARB, NULL, _gloffset_CompressedTexImage2DARB),
NAME_FUNC_OFFSET(15840, glCompressedTexImage3DARB, glCompressedTexImage3DARB, NULL, _gloffset_CompressedTexImage3DARB),
NAME_FUNC_OFFSET(15863, glCompressedTexSubImage1DARB, glCompressedTexSubImage1DARB, NULL, _gloffset_CompressedTexSubImage1DARB),
NAME_FUNC_OFFSET(15889, glCompressedTexSubImage2DARB, glCompressedTexSubImage2DARB, NULL, _gloffset_CompressedTexSubImage2DARB),
NAME_FUNC_OFFSET(15915, glCompressedTexSubImage3DARB, glCompressedTexSubImage3DARB, NULL, _gloffset_CompressedTexSubImage3DARB),
NAME_FUNC_OFFSET(15941, glGetCompressedTexImageARB, glGetCompressedTexImageARB, NULL, _gloffset_GetCompressedTexImageARB),
NAME_FUNC_OFFSET(15965, glDisableVertexAttribArrayARB, glDisableVertexAttribArrayARB, NULL, _gloffset_DisableVertexAttribArrayARB),
NAME_FUNC_OFFSET(15992, glEnableVertexAttribArrayARB, glEnableVertexAttribArrayARB, NULL, _gloffset_EnableVertexAttribArrayARB),
NAME_FUNC_OFFSET(16018, glGetVertexAttribdvARB, glGetVertexAttribdvARB, NULL, _gloffset_GetVertexAttribdvARB),
NAME_FUNC_OFFSET(16038, glGetVertexAttribfvARB, glGetVertexAttribfvARB, NULL, _gloffset_GetVertexAttribfvARB),
NAME_FUNC_OFFSET(16058, glGetVertexAttribivARB, glGetVertexAttribivARB, NULL, _gloffset_GetVertexAttribivARB),
NAME_FUNC_OFFSET(16078, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, _gloffset_ProgramEnvParameter4dARB),
NAME_FUNC_OFFSET(16101, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, _gloffset_ProgramEnvParameter4dvARB),
NAME_FUNC_OFFSET(16125, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, _gloffset_ProgramEnvParameter4fARB),
NAME_FUNC_OFFSET(16148, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, _gloffset_ProgramEnvParameter4fvARB),
NAME_FUNC_OFFSET(16172, glVertexAttrib1dARB, glVertexAttrib1dARB, NULL, _gloffset_VertexAttrib1dARB),
NAME_FUNC_OFFSET(16189, glVertexAttrib1dvARB, glVertexAttrib1dvARB, NULL, _gloffset_VertexAttrib1dvARB),
NAME_FUNC_OFFSET(16207, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, _gloffset_VertexAttrib1fARB),
NAME_FUNC_OFFSET(16224, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, _gloffset_VertexAttrib1fvARB),
NAME_FUNC_OFFSET(16242, glVertexAttrib1sARB, glVertexAttrib1sARB, NULL, _gloffset_VertexAttrib1sARB),
NAME_FUNC_OFFSET(16259, glVertexAttrib1svARB, glVertexAttrib1svARB, NULL, _gloffset_VertexAttrib1svARB),
NAME_FUNC_OFFSET(16277, glVertexAttrib2dARB, glVertexAttrib2dARB, NULL, _gloffset_VertexAttrib2dARB),
NAME_FUNC_OFFSET(16294, glVertexAttrib2dvARB, glVertexAttrib2dvARB, NULL, _gloffset_VertexAttrib2dvARB),
NAME_FUNC_OFFSET(16312, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, _gloffset_VertexAttrib2fARB),
NAME_FUNC_OFFSET(16329, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, _gloffset_VertexAttrib2fvARB),
NAME_FUNC_OFFSET(16347, glVertexAttrib2sARB, glVertexAttrib2sARB, NULL, _gloffset_VertexAttrib2sARB),
NAME_FUNC_OFFSET(16364, glVertexAttrib2svARB, glVertexAttrib2svARB, NULL, _gloffset_VertexAttrib2svARB),
NAME_FUNC_OFFSET(16382, glVertexAttrib3dARB, glVertexAttrib3dARB, NULL, _gloffset_VertexAttrib3dARB),
NAME_FUNC_OFFSET(16399, glVertexAttrib3dvARB, glVertexAttrib3dvARB, NULL, _gloffset_VertexAttrib3dvARB),
NAME_FUNC_OFFSET(16417, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, _gloffset_VertexAttrib3fARB),
NAME_FUNC_OFFSET(16434, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, _gloffset_VertexAttrib3fvARB),
NAME_FUNC_OFFSET(16452, glVertexAttrib3sARB, glVertexAttrib3sARB, NULL, _gloffset_VertexAttrib3sARB),
NAME_FUNC_OFFSET(16469, glVertexAttrib3svARB, glVertexAttrib3svARB, NULL, _gloffset_VertexAttrib3svARB),
NAME_FUNC_OFFSET(16487, glVertexAttrib4NbvARB, glVertexAttrib4NbvARB, NULL, _gloffset_VertexAttrib4NbvARB),
NAME_FUNC_OFFSET(16506, glVertexAttrib4NivARB, glVertexAttrib4NivARB, NULL, _gloffset_VertexAttrib4NivARB),
NAME_FUNC_OFFSET(16525, glVertexAttrib4NsvARB, glVertexAttrib4NsvARB, NULL, _gloffset_VertexAttrib4NsvARB),
NAME_FUNC_OFFSET(16544, glVertexAttrib4NubARB, glVertexAttrib4NubARB, NULL, _gloffset_VertexAttrib4NubARB),
NAME_FUNC_OFFSET(16563, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB),
NAME_FUNC_OFFSET(16583, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB),
NAME_FUNC_OFFSET(16603, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB),
NAME_FUNC_OFFSET(16623, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB),
NAME_FUNC_OFFSET(16641, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB),
NAME_FUNC_OFFSET(16658, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB),
NAME_FUNC_OFFSET(16676, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB),
NAME_FUNC_OFFSET(16693, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB),
NAME_FUNC_OFFSET(16711, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB),
NAME_FUNC_OFFSET(16729, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB),
NAME_FUNC_OFFSET(16746, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB),
NAME_FUNC_OFFSET(16764, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB),
NAME_FUNC_OFFSET(16783, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB),
NAME_FUNC_OFFSET(16802, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB),
NAME_FUNC_OFFSET(16821, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB),
NAME_FUNC_OFFSET(16843, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB),
NAME_FUNC_OFFSET(16856, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB),
NAME_FUNC_OFFSET(16869, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB),
NAME_FUNC_OFFSET(16885, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB),
NAME_FUNC_OFFSET(16901, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB),
NAME_FUNC_OFFSET(16914, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB),
NAME_FUNC_OFFSET(16937, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB),
NAME_FUNC_OFFSET(16957, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB),
NAME_FUNC_OFFSET(16976, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB),
NAME_FUNC_OFFSET(16987, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB),
NAME_FUNC_OFFSET(16999, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB),
NAME_FUNC_OFFSET(17013, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB),
NAME_FUNC_OFFSET(17026, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB),
NAME_FUNC_OFFSET(17042, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB),
NAME_FUNC_OFFSET(17053, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB),
NAME_FUNC_OFFSET(17066, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB),
NAME_FUNC_OFFSET(17085, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB),
NAME_FUNC_OFFSET(17105, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB),
NAME_FUNC_OFFSET(17118, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB),
NAME_FUNC_OFFSET(17128, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB),
NAME_FUNC_OFFSET(17144, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB),
NAME_FUNC_OFFSET(17163, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB),
NAME_FUNC_OFFSET(17181, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB),
NAME_FUNC_OFFSET(17202, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB),
NAME_FUNC_OFFSET(17217, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB),
NAME_FUNC_OFFSET(17232, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB),
NAME_FUNC_OFFSET(17246, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB),
NAME_FUNC_OFFSET(17261, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB),
NAME_FUNC_OFFSET(17273, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB),
NAME_FUNC_OFFSET(17286, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB),
NAME_FUNC_OFFSET(17298, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB),
NAME_FUNC_OFFSET(17311, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB),
NAME_FUNC_OFFSET(17323, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB),
NAME_FUNC_OFFSET(17336, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB),
NAME_FUNC_OFFSET(17348, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB),
NAME_FUNC_OFFSET(17361, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB),
NAME_FUNC_OFFSET(17373, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB),
NAME_FUNC_OFFSET(17386, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB),
NAME_FUNC_OFFSET(17398, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB),
NAME_FUNC_OFFSET(17411, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB),
NAME_FUNC_OFFSET(17423, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB),
NAME_FUNC_OFFSET(17436, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB),
NAME_FUNC_OFFSET(17448, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB),
NAME_FUNC_OFFSET(17461, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB),
NAME_FUNC_OFFSET(17480, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB),
NAME_FUNC_OFFSET(17499, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB),
NAME_FUNC_OFFSET(17518, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB),
NAME_FUNC_OFFSET(17531, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB),
NAME_FUNC_OFFSET(17549, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB),
NAME_FUNC_OFFSET(17570, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB),
NAME_FUNC_OFFSET(17588, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB),
NAME_FUNC_OFFSET(17608, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
NAME_FUNC_OFFSET(17622, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
NAME_FUNC_OFFSET(17639, gl_dispatch_stub_572, gl_dispatch_stub_572, NULL, _gloffset_SampleMaskSGIS),
NAME_FUNC_OFFSET(17655, gl_dispatch_stub_573, gl_dispatch_stub_573, NULL, _gloffset_SamplePatternSGIS),
NAME_FUNC_OFFSET(17674, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
NAME_FUNC_OFFSET(17692, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
NAME_FUNC_OFFSET(17714, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
NAME_FUNC_OFFSET(17733, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
NAME_FUNC_OFFSET(17755, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
NAME_FUNC_OFFSET(17778, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
NAME_FUNC_OFFSET(17797, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
NAME_FUNC_OFFSET(17817, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
NAME_FUNC_OFFSET(17836, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
NAME_FUNC_OFFSET(17856, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
NAME_FUNC_OFFSET(17875, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
NAME_FUNC_OFFSET(17895, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
NAME_FUNC_OFFSET(17914, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
NAME_FUNC_OFFSET(17934, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
NAME_FUNC_OFFSET(17953, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
NAME_FUNC_OFFSET(17973, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
NAME_FUNC_OFFSET(17993, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
NAME_FUNC_OFFSET(18014, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
NAME_FUNC_OFFSET(18034, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
NAME_FUNC_OFFSET(18055, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
NAME_FUNC_OFFSET(18075, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
NAME_FUNC_OFFSET(18096, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
NAME_FUNC_OFFSET(18120, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
NAME_FUNC_OFFSET(18138, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
NAME_FUNC_OFFSET(18158, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
NAME_FUNC_OFFSET(18176, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
NAME_FUNC_OFFSET(18188, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
NAME_FUNC_OFFSET(18201, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
NAME_FUNC_OFFSET(18213, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
NAME_FUNC_OFFSET(18226, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
NAME_FUNC_OFFSET(18246, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
NAME_FUNC_OFFSET(18270, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
NAME_FUNC_OFFSET(18284, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
NAME_FUNC_OFFSET(18301, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
NAME_FUNC_OFFSET(18316, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
NAME_FUNC_OFFSET(18334, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
NAME_FUNC_OFFSET(18348, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
NAME_FUNC_OFFSET(18365, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
NAME_FUNC_OFFSET(18380, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
NAME_FUNC_OFFSET(18398, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
NAME_FUNC_OFFSET(18412, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
NAME_FUNC_OFFSET(18429, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
NAME_FUNC_OFFSET(18444, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
NAME_FUNC_OFFSET(18462, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
NAME_FUNC_OFFSET(18476, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
NAME_FUNC_OFFSET(18493, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
NAME_FUNC_OFFSET(18508, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
NAME_FUNC_OFFSET(18526, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
NAME_FUNC_OFFSET(18540, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
NAME_FUNC_OFFSET(18557, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
NAME_FUNC_OFFSET(18572, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
NAME_FUNC_OFFSET(18590, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
NAME_FUNC_OFFSET(18604, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
NAME_FUNC_OFFSET(18621, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
NAME_FUNC_OFFSET(18636, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
NAME_FUNC_OFFSET(18654, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
NAME_FUNC_OFFSET(18668, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
NAME_FUNC_OFFSET(18685, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
NAME_FUNC_OFFSET(18700, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
NAME_FUNC_OFFSET(18718, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
NAME_FUNC_OFFSET(18732, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
NAME_FUNC_OFFSET(18749, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
NAME_FUNC_OFFSET(18764, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
NAME_FUNC_OFFSET(18782, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
NAME_FUNC_OFFSET(18799, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
NAME_FUNC_OFFSET(18819, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
NAME_FUNC_OFFSET(18836, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
NAME_FUNC_OFFSET(18862, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
NAME_FUNC_OFFSET(18891, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
NAME_FUNC_OFFSET(18906, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
NAME_FUNC_OFFSET(18924, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
NAME_FUNC_OFFSET(18943, gl_dispatch_stub_753, gl_dispatch_stub_753, NULL, _gloffset_BlendEquationSeparateEXT),
NAME_FUNC_OFFSET(18967, gl_dispatch_stub_753, gl_dispatch_stub_753, NULL, _gloffset_BlendEquationSeparateEXT),
NAME_FUNC_OFFSET(18994, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT),
NAME_FUNC_OFFSET(19012, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT),
NAME_FUNC_OFFSET(19031, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT),
NAME_FUNC_OFFSET(19056, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT),
NAME_FUNC_OFFSET(19077, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT),
NAME_FUNC_OFFSET(19099, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT),
NAME_FUNC_OFFSET(19125, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT),
NAME_FUNC_OFFSET(19148, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT),
NAME_FUNC_OFFSET(19171, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT),
NAME_FUNC_OFFSET(19194, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT),
NAME_FUNC_OFFSET(19212, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT),
NAME_FUNC_OFFSET(19231, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT),
NAME_FUNC_OFFSET(19248, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT),
NAME_FUNC_OFFSET(19286, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT),
NAME_FUNC_OFFSET(19315, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT),
NAME_FUNC_OFFSET(19331, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT),
NAME_FUNC_OFFSET(19348, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT),
NAME_FUNC_OFFSET(19370, gl_dispatch_stub_771, gl_dispatch_stub_771, NULL, _gloffset_BlitFramebufferEXT),
NAME_FUNC_OFFSET(19388, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT),
NAME_FUNC_OFFSET(17713, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
NAME_FUNC_OFFSET(17735, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
NAME_FUNC_OFFSET(17754, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
NAME_FUNC_OFFSET(17776, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
NAME_FUNC_OFFSET(17799, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
NAME_FUNC_OFFSET(17818, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
NAME_FUNC_OFFSET(17838, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
NAME_FUNC_OFFSET(17857, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
NAME_FUNC_OFFSET(17877, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
NAME_FUNC_OFFSET(17896, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
NAME_FUNC_OFFSET(17916, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
NAME_FUNC_OFFSET(17935, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
NAME_FUNC_OFFSET(17955, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
NAME_FUNC_OFFSET(17974, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
NAME_FUNC_OFFSET(17994, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
NAME_FUNC_OFFSET(18014, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
NAME_FUNC_OFFSET(18035, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
NAME_FUNC_OFFSET(18055, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
NAME_FUNC_OFFSET(18076, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
NAME_FUNC_OFFSET(18096, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
NAME_FUNC_OFFSET(18117, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
NAME_FUNC_OFFSET(18141, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
NAME_FUNC_OFFSET(18159, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
NAME_FUNC_OFFSET(18179, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
NAME_FUNC_OFFSET(18197, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
NAME_FUNC_OFFSET(18209, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
NAME_FUNC_OFFSET(18222, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
NAME_FUNC_OFFSET(18234, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
NAME_FUNC_OFFSET(18247, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
NAME_FUNC_OFFSET(18267, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
NAME_FUNC_OFFSET(18291, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
NAME_FUNC_OFFSET(18305, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
NAME_FUNC_OFFSET(18322, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
NAME_FUNC_OFFSET(18337, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
NAME_FUNC_OFFSET(18355, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
NAME_FUNC_OFFSET(18369, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
NAME_FUNC_OFFSET(18386, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
NAME_FUNC_OFFSET(18401, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
NAME_FUNC_OFFSET(18419, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
NAME_FUNC_OFFSET(18433, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
NAME_FUNC_OFFSET(18450, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
NAME_FUNC_OFFSET(18465, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
NAME_FUNC_OFFSET(18483, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
NAME_FUNC_OFFSET(18497, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
NAME_FUNC_OFFSET(18514, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
NAME_FUNC_OFFSET(18529, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
NAME_FUNC_OFFSET(18547, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
NAME_FUNC_OFFSET(18561, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
NAME_FUNC_OFFSET(18578, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
NAME_FUNC_OFFSET(18593, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
NAME_FUNC_OFFSET(18611, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
NAME_FUNC_OFFSET(18625, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
NAME_FUNC_OFFSET(18642, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
NAME_FUNC_OFFSET(18657, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
NAME_FUNC_OFFSET(18675, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
NAME_FUNC_OFFSET(18689, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
NAME_FUNC_OFFSET(18706, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
NAME_FUNC_OFFSET(18721, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
NAME_FUNC_OFFSET(18739, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
NAME_FUNC_OFFSET(18753, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
NAME_FUNC_OFFSET(18770, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
NAME_FUNC_OFFSET(18785, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
NAME_FUNC_OFFSET(18803, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
NAME_FUNC_OFFSET(18820, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
NAME_FUNC_OFFSET(18840, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
NAME_FUNC_OFFSET(18857, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
NAME_FUNC_OFFSET(18883, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
NAME_FUNC_OFFSET(18912, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
NAME_FUNC_OFFSET(18927, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
NAME_FUNC_OFFSET(18945, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
NAME_FUNC_OFFSET(18964, gl_dispatch_stub_753, gl_dispatch_stub_753, NULL, _gloffset_BlendEquationSeparateEXT),
NAME_FUNC_OFFSET(18988, gl_dispatch_stub_753, gl_dispatch_stub_753, NULL, _gloffset_BlendEquationSeparateEXT),
NAME_FUNC_OFFSET(19015, glBindFramebufferEXT, glBindFramebufferEXT, NULL, _gloffset_BindFramebufferEXT),
NAME_FUNC_OFFSET(19033, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, _gloffset_BindRenderbufferEXT),
NAME_FUNC_OFFSET(19052, glCheckFramebufferStatusEXT, glCheckFramebufferStatusEXT, NULL, _gloffset_CheckFramebufferStatusEXT),
NAME_FUNC_OFFSET(19077, glDeleteFramebuffersEXT, glDeleteFramebuffersEXT, NULL, _gloffset_DeleteFramebuffersEXT),
NAME_FUNC_OFFSET(19098, glDeleteRenderbuffersEXT, glDeleteRenderbuffersEXT, NULL, _gloffset_DeleteRenderbuffersEXT),
NAME_FUNC_OFFSET(19120, glFramebufferRenderbufferEXT, glFramebufferRenderbufferEXT, NULL, _gloffset_FramebufferRenderbufferEXT),
NAME_FUNC_OFFSET(19146, glFramebufferTexture1DEXT, glFramebufferTexture1DEXT, NULL, _gloffset_FramebufferTexture1DEXT),
NAME_FUNC_OFFSET(19169, glFramebufferTexture2DEXT, glFramebufferTexture2DEXT, NULL, _gloffset_FramebufferTexture2DEXT),
NAME_FUNC_OFFSET(19192, glFramebufferTexture3DEXT, glFramebufferTexture3DEXT, NULL, _gloffset_FramebufferTexture3DEXT),
NAME_FUNC_OFFSET(19215, glGenFramebuffersEXT, glGenFramebuffersEXT, NULL, _gloffset_GenFramebuffersEXT),
NAME_FUNC_OFFSET(19233, glGenRenderbuffersEXT, glGenRenderbuffersEXT, NULL, _gloffset_GenRenderbuffersEXT),
NAME_FUNC_OFFSET(19252, glGenerateMipmapEXT, glGenerateMipmapEXT, NULL, _gloffset_GenerateMipmapEXT),
NAME_FUNC_OFFSET(19269, glGetFramebufferAttachmentParameterivEXT, glGetFramebufferAttachmentParameterivEXT, NULL, _gloffset_GetFramebufferAttachmentParameterivEXT),
NAME_FUNC_OFFSET(19307, glGetRenderbufferParameterivEXT, glGetRenderbufferParameterivEXT, NULL, _gloffset_GetRenderbufferParameterivEXT),
NAME_FUNC_OFFSET(19336, glIsFramebufferEXT, glIsFramebufferEXT, NULL, _gloffset_IsFramebufferEXT),
NAME_FUNC_OFFSET(19352, glIsRenderbufferEXT, glIsRenderbufferEXT, NULL, _gloffset_IsRenderbufferEXT),
NAME_FUNC_OFFSET(19369, glRenderbufferStorageEXT, glRenderbufferStorageEXT, NULL, _gloffset_RenderbufferStorageEXT),
NAME_FUNC_OFFSET(19391, gl_dispatch_stub_771, gl_dispatch_stub_771, NULL, _gloffset_BlitFramebufferEXT),
NAME_FUNC_OFFSET(19409, glFramebufferTextureLayerEXT, glFramebufferTextureLayerEXT, NULL, _gloffset_FramebufferTextureLayerEXT),
NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0)
};

View file

@ -641,6 +641,8 @@ _mesa_init_exec_table(struct _glapi_table *exec)
/* ???. GL_EXT_depth_bounds_test */
SET_DepthBoundsEXT(exec, _mesa_DepthBoundsEXT);
SET_ProvokingVertexEXT(exec, _mesa_ProvokingVertexEXT);
/* ARB 1. GL_ARB_multitexture */
#if _HAVE_FULL_GL
SET_ActiveTextureARB(exec, _mesa_ActiveTextureARB);

View file

@ -592,6 +592,9 @@ _mesa_init_constants(GLcontext *ctx)
/* GL_ATI_envmap_bumpmap */
ctx->Const.SupportedBumpUnits = SUPPORTED_ATI_BUMP_UNITS;
/* GL_EXT_provoking_vertex */
ctx->Const.QuadsFollowProvokingVertexConvention = GL_TRUE;
/* sanity checks */
ASSERT(ctx->Const.MaxTextureUnits == MIN2(ctx->Const.MaxTextureImageUnits,
ctx->Const.MaxTextureCoordUnits));

View file

@ -352,6 +352,9 @@ typedef enum
OPCODE_EVAL_P1,
OPCODE_EVAL_P2,
/* GL_EXT_provoking_vertex */
OPCODE_PROVOKING_VERTEX,
/* The following three are meta instructions */
OPCODE_ERROR, /* raise compiled-in error */
OPCODE_CONTINUE,
@ -5705,6 +5708,25 @@ save_BlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
#endif
/** GL_EXT_provoking_vertex */
static void GLAPIENTRY
save_ProvokingVertexEXT(GLenum mode)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
n = ALLOC_INSTRUCTION(ctx, OPCODE_PROVOKING_VERTEX, 1);
if (n) {
n[1].e = mode;
}
if (ctx->ExecuteFlag) {
/*CALL_ProvokingVertexEXT(ctx->Exec, (mode));*/
_mesa_ProvokingVertexEXT(mode);
}
}
/**
* Save an error-generating command into display list.
*
@ -6269,6 +6291,9 @@ execute_list(GLcontext *ctx, GLuint list)
case OPCODE_SHADE_MODEL:
CALL_ShadeModel(ctx->Exec, (n[1].e));
break;
case OPCODE_PROVOKING_VERTEX:
CALL_ProvokingVertexEXT(ctx->Exec, (n[1].e));
break;
case OPCODE_STENCIL_FUNC:
CALL_StencilFunc(ctx->Exec, (n[1].e, n[2].i, n[3].ui));
break;
@ -8247,6 +8272,9 @@ _mesa_init_dlist_table(struct _glapi_table *table)
/* ARB 59. GL_ARB_copy_buffer */
SET_CopyBufferSubData(table, _mesa_CopyBufferSubData); /* no dlist save */
/* 364. GL_EXT_provoking_vertex */
SET_ProvokingVertexEXT(table, save_ProvokingVertexEXT);
}
@ -8483,6 +8511,11 @@ print_list(GLcontext *ctx, GLuint list)
_mesa_printf("EVAL_P2 %d %d\n", n[1].i, n[2].i);
break;
case OPCODE_PROVOKING_VERTEX:
_mesa_printf("ProvokingVertex %s\n",
_mesa_lookup_enum_by_nr(n[1].ui));
break;
/*
* meta opcodes/commands
*/

File diff suppressed because it is too large Load diff

View file

@ -109,6 +109,7 @@ static const struct {
{ OFF, "GL_EXT_pixel_buffer_object", F(EXT_pixel_buffer_object) },
{ OFF, "GL_EXT_point_parameters", F(EXT_point_parameters) },
{ ON, "GL_EXT_polygon_offset", F(EXT_polygon_offset) },
{ OFF, "GL_EXT_provoking_vertex", F(EXT_provoking_vertex) },
{ ON, "GL_EXT_rescale_normal", F(EXT_rescale_normal) },
{ OFF, "GL_EXT_secondary_color", F(EXT_secondary_color) },
{ ON, "GL_EXT_separate_specular_color", F(EXT_separate_specular_color) },
@ -266,6 +267,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx)
ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE;
#endif
ctx->Extensions.EXT_point_parameters = GL_TRUE;
ctx->Extensions.EXT_provoking_vertex = GL_TRUE;
ctx->Extensions.EXT_shadow_funcs = GL_TRUE;
ctx->Extensions.EXT_secondary_color = GL_TRUE;
ctx->Extensions.EXT_shared_texture_palette = GL_TRUE;

View file

@ -1835,6 +1835,14 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
CHECK_EXT1(EXT_framebuffer_blit, "GetBooleanv");
params[0] = INT_TO_BOOLEAN(ctx->ReadBuffer->Name);
break;
case GL_PROVOKING_VERTEX_EXT:
CHECK_EXT1(EXT_provoking_vertex, "GetBooleanv");
params[0] = ctx->Light.ProvokingVertex;
break;
case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT:
CHECK_EXT1(EXT_provoking_vertex, "GetBooleanv");
params[0] = ctx->Const.QuadsFollowProvokingVertexConvention;
break;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetBooleanv");
params[0] = INT_TO_BOOLEAN(ctx->Const.FragmentProgram.MaxUniformComponents);
@ -3649,6 +3657,14 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
CHECK_EXT1(EXT_framebuffer_blit, "GetFloatv");
params[0] = (GLfloat)(ctx->ReadBuffer->Name);
break;
case GL_PROVOKING_VERTEX_EXT:
CHECK_EXT1(EXT_provoking_vertex, "GetFloatv");
params[0] = BOOLEAN_TO_FLOAT(ctx->Light.ProvokingVertex);
break;
case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT:
CHECK_EXT1(EXT_provoking_vertex, "GetFloatv");
params[0] = BOOLEAN_TO_FLOAT(ctx->Const.QuadsFollowProvokingVertexConvention);
break;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetFloatv");
params[0] = (GLfloat)(ctx->Const.FragmentProgram.MaxUniformComponents);
@ -5463,6 +5479,14 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
CHECK_EXT1(EXT_framebuffer_blit, "GetIntegerv");
params[0] = ctx->ReadBuffer->Name;
break;
case GL_PROVOKING_VERTEX_EXT:
CHECK_EXT1(EXT_provoking_vertex, "GetIntegerv");
params[0] = BOOLEAN_TO_INT(ctx->Light.ProvokingVertex);
break;
case GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT:
CHECK_EXT1(EXT_provoking_vertex, "GetIntegerv");
params[0] = BOOLEAN_TO_INT(ctx->Const.QuadsFollowProvokingVertexConvention);
break;
case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB:
CHECK_EXT1(ARB_fragment_shader, "GetIntegerv");
params[0] = ctx->Const.FragmentProgram.MaxUniformComponents;

View file

@ -976,6 +976,13 @@ StateVars = [
( "GL_READ_FRAMEBUFFER_BINDING_EXT", GLint, ["ctx->ReadBuffer->Name"], "",
["EXT_framebuffer_blit"] ),
# GL_EXT_provoking_vertex
( "GL_PROVOKING_VERTEX_EXT", GLboolean,
["ctx->Light.ProvokingVertex"], "", ["EXT_provoking_vertex"] ),
( "GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT", GLboolean,
["ctx->Const.QuadsFollowProvokingVertexConvention"], "",
["EXT_provoking_vertex"] ),
# GL_ARB_fragment_shader
( "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB", GLint,
["ctx->Const.FragmentProgram.MaxUniformComponents"], "",

View file

@ -1,8 +1,9 @@
/*
* Mesa 3-D graphics library
* Version: 7.0
* Version: 7.5
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
* Copyright (C) 2009 VMware, Inc. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@ -63,6 +64,37 @@ _mesa_ShadeModel( GLenum mode )
}
/**
* Set the provoking vertex (the vertex which specifies the prim's
* color when flat shading) to either the first or last vertex of the
* triangle or line.
*/
void GLAPIENTRY
_mesa_ProvokingVertexEXT(GLenum mode)
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
if (MESA_VERBOSE&VERBOSE_API)
_mesa_debug(ctx, "glProvokingVertexEXT 0x%x\n", mode);
switch (mode) {
case GL_FIRST_VERTEX_CONVENTION_EXT:
case GL_LAST_VERTEX_CONVENTION_EXT:
break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glProvokingVertexEXT(0x%x)", mode);
return;
}
if (ctx->Light.ProvokingVertex == mode)
return;
FLUSH_VERTICES(ctx, _NEW_LIGHT);
ctx->Light.ProvokingVertex = mode;
}
/**
* Helper function called by _mesa_Lightfv and _mesa_PopAttrib to set
* per-light state.
@ -1348,6 +1380,7 @@ _mesa_init_lighting( GLcontext *ctx )
init_lightmodel( &ctx->Light.Model );
init_material( &ctx->Light.Material );
ctx->Light.ShadeModel = GL_SMOOTH;
ctx->Light.ProvokingVertex = GL_LAST_VERTEX_CONVENTION_EXT;
ctx->Light.Enabled = GL_FALSE;
ctx->Light.ColorMaterialFace = GL_FRONT_AND_BACK;
ctx->Light.ColorMaterialMode = GL_AMBIENT_AND_DIFFUSE;

View file

@ -1,13 +1,9 @@
/**
* \file light.h
* Lighting.
*/
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 7.5
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
* Copyright (C) 2009 VMware, Inc. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@ -37,6 +33,10 @@
extern void GLAPIENTRY
_mesa_ShadeModel( GLenum mode );
extern void GLAPIENTRY
_mesa_ProvokingVertexEXT(GLenum mode);
#if _HAVE_FULL_GL
extern void GLAPIENTRY
_mesa_ColorMaterial( GLenum face, GLenum mode );

View file

@ -770,6 +770,7 @@ struct gl_light_attrib
GLboolean Enabled; /**< Lighting enabled flag */
GLenum ShadeModel; /**< GL_FLAT or GL_SMOOTH */
GLenum ProvokingVertex; /**< GL_EXT_provoking_vertex */
GLenum ColorMaterialFace; /**< GL_FRONT, BACK or FRONT_AND_BACK */
GLenum ColorMaterialMode; /**< GL_AMBIENT, GL_DIFFUSE, etc */
GLbitfield ColorMaterialBitmask; /**< bitmask formed from Face and Mode */
@ -2424,6 +2425,9 @@ struct gl_constants
GLuint MaxVarying; /**< Number of float[4] varying parameters */
GLbitfield SupportedBumpUnits; /**> units supporting GL_ATI_envmap_bumpmap as targets */
/**< GL_EXT_provoking_vertex */
GLboolean QuadsFollowProvokingVertexConvention;
};
@ -2494,6 +2498,7 @@ struct gl_extensions
GLboolean EXT_pixel_buffer_object;
GLboolean EXT_point_parameters;
GLboolean EXT_polygon_offset;
GLboolean EXT_provoking_vertex;
GLboolean EXT_rescale_normal;
GLboolean EXT_shadow_funcs;
GLboolean EXT_secondary_color;

View file

@ -998,16 +998,17 @@ gl_dispatch_functions_start:
GL_STUB(gl_dispatch_stub_771, _gloffset_BlitFramebufferEXT)
HIDDEN(gl_dispatch_stub_771)
GL_STUB(glFramebufferTextureLayerEXT, _gloffset_FramebufferTextureLayerEXT)
GL_STUB(gl_dispatch_stub_773, _gloffset_StencilFuncSeparateATI)
HIDDEN(gl_dispatch_stub_773)
GL_STUB(gl_dispatch_stub_774, _gloffset_ProgramEnvParameters4fvEXT)
GL_STUB(glProvokingVertexEXT, _gloffset_ProvokingVertexEXT)
GL_STUB(gl_dispatch_stub_774, _gloffset_StencilFuncSeparateATI)
HIDDEN(gl_dispatch_stub_774)
GL_STUB(gl_dispatch_stub_775, _gloffset_ProgramLocalParameters4fvEXT)
GL_STUB(gl_dispatch_stub_775, _gloffset_ProgramEnvParameters4fvEXT)
HIDDEN(gl_dispatch_stub_775)
GL_STUB(gl_dispatch_stub_776, _gloffset_GetQueryObjecti64vEXT)
GL_STUB(gl_dispatch_stub_776, _gloffset_ProgramLocalParameters4fvEXT)
HIDDEN(gl_dispatch_stub_776)
GL_STUB(gl_dispatch_stub_777, _gloffset_GetQueryObjectui64vEXT)
GL_STUB(gl_dispatch_stub_777, _gloffset_GetQueryObjecti64vEXT)
HIDDEN(gl_dispatch_stub_777)
GL_STUB(gl_dispatch_stub_778, _gloffset_GetQueryObjectui64vEXT)
HIDDEN(gl_dispatch_stub_778)
GL_STUB_ALIAS(glArrayElementEXT, glArrayElement)
GL_STUB_ALIAS(glBindTextureEXT, glBindTexture)
GL_STUB_ALIAS(glDrawArraysEXT, glDrawArrays)

View file

@ -102,6 +102,9 @@ static void update_raster_state( struct st_context *st )
if (ctx->Light.ShadeModel == GL_FLAT)
raster->flatshade = 1;
if (ctx->Light.ProvokingVertex == GL_FIRST_VERTEX_CONVENTION_EXT)
raster->flatshade_first = 1;
/* _NEW_LIGHT | _NEW_PROGRAM
*
* Back-face colors can come from traditional lighting (when

View file

@ -163,6 +163,7 @@ void st_init_extensions(struct st_context *st)
ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;
ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE;
ctx->Extensions.EXT_point_parameters = GL_TRUE;
ctx->Extensions.EXT_provoking_vertex = GL_TRUE;
ctx->Extensions.EXT_secondary_color = GL_TRUE;
ctx->Extensions.EXT_stencil_wrap = GL_TRUE;
ctx->Extensions.EXT_texture_env_add = GL_TRUE;

View file

@ -82,7 +82,10 @@ static void TAG(render_lines)( GLcontext *ctx,
INIT(GL_LINES);
for (j=start+1; j<count; j+=2 ) {
RESET_STIPPLE;
RENDER_LINE( ELT(j-1), ELT(j) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT)
RENDER_LINE( ELT(j-1), ELT(j) );
else
RENDER_LINE( ELT(j), ELT(j-1) );
}
POSTFIX;
}
@ -103,9 +106,12 @@ static void TAG(render_line_strip)( GLcontext *ctx,
RESET_STIPPLE;
}
for (j=start+1; j<count; j++ )
RENDER_LINE( ELT(j-1), ELT(j) );
for (j=start+1; j<count; j++ ) {
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT)
RENDER_LINE( ELT(j-1), ELT(j) );
else
RENDER_LINE( ELT(j), ELT(j-1) );
}
POSTFIX;
}
@ -125,15 +131,24 @@ static void TAG(render_line_loop)( GLcontext *ctx,
if (start+1 < count) {
if (TEST_PRIM_BEGIN(flags)) {
RESET_STIPPLE;
RENDER_LINE( ELT(start), ELT(start+1) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT)
RENDER_LINE( ELT(start), ELT(start+1) );
else
RENDER_LINE( ELT(start+1), ELT(start) );
}
for ( i = start+2 ; i < count ; i++) {
RENDER_LINE( ELT(i-1), ELT(i) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT)
RENDER_LINE( ELT(i-1), ELT(i) );
else
RENDER_LINE( ELT(i), ELT(i-1) );
}
if ( TEST_PRIM_END(flags)) {
RENDER_LINE( ELT(count-1), ELT(start) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT)
RENDER_LINE( ELT(count-1), ELT(start) );
else
RENDER_LINE( ELT(start), ELT(count-1) );
}
}
@ -156,11 +171,17 @@ static void TAG(render_triangles)( GLcontext *ctx,
/* Leave the edgeflags as supplied by the user.
*/
RESET_STIPPLE;
RENDER_TRI( ELT(j-2), ELT(j-1), ELT(j) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT)
RENDER_TRI( ELT(j-2), ELT(j-1), ELT(j) );
else
RENDER_TRI( ELT(j-1), ELT(j), ELT(j-2) );
}
} else {
for (j=start+2; j<count; j+=3) {
RENDER_TRI( ELT(j-2), ELT(j-1), ELT(j) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT)
RENDER_TRI( ELT(j-2), ELT(j-1), ELT(j) );
else
RENDER_TRI( ELT(j-1), ELT(j), ELT(j-2) );
}
}
POSTFIX;
@ -180,26 +201,38 @@ static void TAG(render_tri_strip)( GLcontext *ctx,
INIT(GL_TRIANGLE_STRIP);
if (NEED_EDGEFLAG_SETUP) {
for (j=start+2;j<count;j++,parity^=1) {
GLuint ej2 = ELT(j-2+parity);
GLuint ej1 = ELT(j-1-parity);
GLuint ej = ELT(j);
GLboolean ef2 = EDGEFLAG_GET( ej2 );
GLboolean ef1 = EDGEFLAG_GET( ej1 );
GLboolean ef = EDGEFLAG_GET( ej );
GLuint ej2, ej1, ej;
GLboolean ef2, ef1, ef;
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT) {
ej2 = ELT(j-2+parity);
ej1 = ELT(j-1-parity);
ej = ELT(j);
}
else {
ej2 = ELT(j-1+parity);
ej1 = ELT(j-parity);
ej = ELT(j-2);
}
ef2 = EDGEFLAG_GET( ej2 );
ef1 = EDGEFLAG_GET( ej1 );
ef = EDGEFLAG_GET( ej );
if (TEST_PRIM_BEGIN(flags)) {
RESET_STIPPLE;
}
EDGEFLAG_SET( ej2, GL_TRUE );
EDGEFLAG_SET( ej1, GL_TRUE );
EDGEFLAG_SET( ej, GL_TRUE );
RENDER_TRI( ej2, ej1, ej );
RENDER_TRI( ej2, ej1, ej );
EDGEFLAG_SET( ej2, ef2 );
EDGEFLAG_SET( ej1, ef1 );
EDGEFLAG_SET( ej, ef );
}
} else {
for (j=start+2; j<count ; j++, parity^=1) {
RENDER_TRI( ELT(j-2+parity), ELT(j-1-parity), ELT(j) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT)
RENDER_TRI( ELT(j-2+parity), ELT(j-1-parity), ELT(j) );
else
RENDER_TRI( ELT(j-1+parity), ELT(j-parity), ELT(j-2) );
}
}
POSTFIX;
@ -232,14 +265,20 @@ static void TAG(render_tri_fan)( GLcontext *ctx,
EDGEFLAG_SET( ejs, GL_TRUE );
EDGEFLAG_SET( ej1, GL_TRUE );
EDGEFLAG_SET( ej, GL_TRUE );
RENDER_TRI( ejs, ej1, ej);
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT)
RENDER_TRI( ejs, ej1, ej);
else
RENDER_TRI( ej, ejs, ej1);
EDGEFLAG_SET( ejs, efs );
EDGEFLAG_SET( ej1, ef1 );
EDGEFLAG_SET( ej, ef );
}
} else {
for (j=start+2;j<count;j++) {
RENDER_TRI( ELT(start), ELT(j-1), ELT(j) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT)
RENDER_TRI( ELT(start), ELT(j-1), ELT(j) );
else
RENDER_TRI( ELT(j), ELT(start), ELT(j-1) );
}
}
@ -331,11 +370,19 @@ static void TAG(render_quads)( GLcontext *ctx,
/* Use user-specified edgeflags for quads.
*/
RESET_STIPPLE;
RENDER_QUAD( ELT(j-3), ELT(j-2), ELT(j-1), ELT(j) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT ||
!ctx->Const.QuadsFollowProvokingVertexConvention)
RENDER_QUAD( ELT(j-3), ELT(j-2), ELT(j-1), ELT(j) );
else
RENDER_QUAD( ELT(j-2), ELT(j-1), ELT(j), ELT(j-3) );
}
} else {
for (j=start+3; j<count; j+=4) {
RENDER_QUAD( ELT(j-3), ELT(j-2), ELT(j-1), ELT(j) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT ||
!ctx->Const.QuadsFollowProvokingVertexConvention)
RENDER_QUAD( ELT(j-3), ELT(j-2), ELT(j-1), ELT(j) );
else
RENDER_QUAD( ELT(j-2), ELT(j-1), ELT(j), ELT(j-3) );
}
}
POSTFIX;
@ -367,7 +414,11 @@ static void TAG(render_quad_strip)( GLcontext *ctx,
EDGEFLAG_SET( ELT(j-2), GL_TRUE );
EDGEFLAG_SET( ELT(j-1), GL_TRUE );
EDGEFLAG_SET( ELT(j), GL_TRUE );
RENDER_QUAD( ELT(j-1), ELT(j-3), ELT(j-2), ELT(j) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT ||
!ctx->Const.QuadsFollowProvokingVertexConvention)
RENDER_QUAD( ELT(j-1), ELT(j-3), ELT(j-2), ELT(j) );
else
RENDER_QUAD( ELT(j-2), ELT(j), ELT(j-1), ELT(j-3) );
EDGEFLAG_SET( ELT(j-3), ef3 );
EDGEFLAG_SET( ELT(j-2), ef2 );
EDGEFLAG_SET( ELT(j-1), ef1 );
@ -375,7 +426,11 @@ static void TAG(render_quad_strip)( GLcontext *ctx,
}
} else {
for (j=start+3;j<count;j+=2) {
RENDER_QUAD( ELT(j-1), ELT(j-3), ELT(j-2), ELT(j) );
if (ctx->Light.ProvokingVertex == GL_LAST_VERTEX_CONVENTION_EXT ||
!ctx->Const.QuadsFollowProvokingVertexConvention)
RENDER_QUAD( ELT(j-1), ELT(j-3), ELT(j-2), ELT(j) );
else
RENDER_QUAD( ELT(j-2), ELT(j), ELT(j-1), ELT(j-3) );
}
}
POSTFIX;

View file

@ -29256,25 +29256,16 @@ GL_PREFIX(FramebufferTextureLayerEXT):
.size GL_PREFIX(FramebufferTextureLayerEXT), .-GL_PREFIX(FramebufferTextureLayerEXT)
.p2align 4,,15
.globl GL_PREFIX(_dispatch_stub_773)
.type GL_PREFIX(_dispatch_stub_773), @function
HIDDEN(GL_PREFIX(_dispatch_stub_773))
GL_PREFIX(_dispatch_stub_773):
.globl GL_PREFIX(ProvokingVertexEXT)
.type GL_PREFIX(ProvokingVertexEXT), @function
GL_PREFIX(ProvokingVertexEXT):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
movq 6184(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
pushq %rsi
pushq %rdx
pushq %rcx
pushq %rbp
call _x86_64_get_dispatch@PLT
popq %rbp
popq %rcx
popq %rdx
popq %rsi
popq %rdi
movq 6184(%rax), %r11
jmp *%r11
@ -29286,20 +29277,12 @@ GL_PREFIX(_dispatch_stub_773):
jmp *%r11
1:
pushq %rdi
pushq %rsi
pushq %rdx
pushq %rcx
pushq %rbp
call _glapi_get_dispatch
popq %rbp
popq %rcx
popq %rdx
popq %rsi
popq %rdi
movq 6184(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(_dispatch_stub_773), .-GL_PREFIX(_dispatch_stub_773)
.size GL_PREFIX(ProvokingVertexEXT), .-GL_PREFIX(ProvokingVertexEXT)
.p2align 4,,15
.globl GL_PREFIX(_dispatch_stub_774)
@ -29406,7 +29389,11 @@ GL_PREFIX(_dispatch_stub_776):
pushq %rdi
pushq %rsi
pushq %rdx
pushq %rcx
pushq %rbp
call _x86_64_get_dispatch@PLT
popq %rbp
popq %rcx
popq %rdx
popq %rsi
popq %rdi
@ -29422,7 +29409,11 @@ GL_PREFIX(_dispatch_stub_776):
pushq %rdi
pushq %rsi
pushq %rdx
pushq %rcx
pushq %rbp
call _glapi_get_dispatch
popq %rbp
popq %rcx
popq %rdx
popq %rsi
popq %rdi
@ -29469,6 +29460,44 @@ GL_PREFIX(_dispatch_stub_777):
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(_dispatch_stub_777), .-GL_PREFIX(_dispatch_stub_777)
.p2align 4,,15
.globl GL_PREFIX(_dispatch_stub_778)
.type GL_PREFIX(_dispatch_stub_778), @function
HIDDEN(GL_PREFIX(_dispatch_stub_778))
GL_PREFIX(_dispatch_stub_778):
#if defined(GLX_USE_TLS)
call _x86_64_get_dispatch@PLT
movq 6224(%rax), %r11
jmp *%r11
#elif defined(PTHREADS)
pushq %rdi
pushq %rsi
pushq %rdx
call _x86_64_get_dispatch@PLT
popq %rdx
popq %rsi
popq %rdi
movq 6224(%rax), %r11
jmp *%r11
#else
movq _glapi_Dispatch(%rip), %rax
testq %rax, %rax
je 1f
movq 6224(%rax), %r11
jmp *%r11
1:
pushq %rdi
pushq %rsi
pushq %rdx
call _glapi_get_dispatch
popq %rdx
popq %rsi
popq %rdi
movq 6224(%rax), %r11
jmp *%r11
#endif /* defined(GLX_USE_TLS) */
.size GL_PREFIX(_dispatch_stub_778), .-GL_PREFIX(_dispatch_stub_778)
.globl GL_PREFIX(ArrayElementEXT) ; .set GL_PREFIX(ArrayElementEXT), GL_PREFIX(ArrayElement)
.globl GL_PREFIX(BindTextureEXT) ; .set GL_PREFIX(BindTextureEXT), GL_PREFIX(BindTexture)
.globl GL_PREFIX(DrawArraysEXT) ; .set GL_PREFIX(DrawArraysEXT), GL_PREFIX(DrawArrays)

View file

@ -952,16 +952,17 @@ GLNAME(gl_dispatch_functions_start):
GL_STUB(_dispatch_stub_771, _gloffset_BlitFramebufferEXT, _dispatch_stub_771@40)
HIDDEN(GL_PREFIX(_dispatch_stub_771, _dispatch_stub_771@40))
GL_STUB(FramebufferTextureLayerEXT, _gloffset_FramebufferTextureLayerEXT, FramebufferTextureLayerEXT@20)
GL_STUB(_dispatch_stub_773, _gloffset_StencilFuncSeparateATI, _dispatch_stub_773@16)
HIDDEN(GL_PREFIX(_dispatch_stub_773, _dispatch_stub_773@16))
GL_STUB(_dispatch_stub_774, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_774@16)
GL_STUB(ProvokingVertexEXT, _gloffset_ProvokingVertexEXT, ProvokingVertexEXT@4)
GL_STUB(_dispatch_stub_774, _gloffset_StencilFuncSeparateATI, _dispatch_stub_774@16)
HIDDEN(GL_PREFIX(_dispatch_stub_774, _dispatch_stub_774@16))
GL_STUB(_dispatch_stub_775, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_775@16)
GL_STUB(_dispatch_stub_775, _gloffset_ProgramEnvParameters4fvEXT, _dispatch_stub_775@16)
HIDDEN(GL_PREFIX(_dispatch_stub_775, _dispatch_stub_775@16))
GL_STUB(_dispatch_stub_776, _gloffset_GetQueryObjecti64vEXT, _dispatch_stub_776@12)
HIDDEN(GL_PREFIX(_dispatch_stub_776, _dispatch_stub_776@12))
GL_STUB(_dispatch_stub_777, _gloffset_GetQueryObjectui64vEXT, _dispatch_stub_777@12)
GL_STUB(_dispatch_stub_776, _gloffset_ProgramLocalParameters4fvEXT, _dispatch_stub_776@16)
HIDDEN(GL_PREFIX(_dispatch_stub_776, _dispatch_stub_776@16))
GL_STUB(_dispatch_stub_777, _gloffset_GetQueryObjecti64vEXT, _dispatch_stub_777@12)
HIDDEN(GL_PREFIX(_dispatch_stub_777, _dispatch_stub_777@12))
GL_STUB(_dispatch_stub_778, _gloffset_GetQueryObjectui64vEXT, _dispatch_stub_778@12)
HIDDEN(GL_PREFIX(_dispatch_stub_778, _dispatch_stub_778@12))
GL_STUB_ALIAS(ArrayElementEXT, _gloffset_ArrayElement, ArrayElementEXT@4, ArrayElement, ArrayElement@4)
GL_STUB_ALIAS(BindTextureEXT, _gloffset_BindTexture, BindTextureEXT@8, BindTexture, BindTexture@8)
GL_STUB_ALIAS(DrawArraysEXT, _gloffset_DrawArrays, DrawArraysEXT@12, DrawArrays, DrawArrays@12)