From: Marek Olšák Date: Sat, 26 Sep 2020 09:21:03 +0000 (-0400) Subject: mesa: remove api_loopback to remove call indirections X-Git-Tag: upstream/21.0.0~4562 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bd70b61f2f63660eb4642f5a0f20f20e6f2ffc17;p=platform%2Fupstream%2Fmesa.git mesa: remove api_loopback to remove call indirections This is an optimization for SPECviewperf. The increase in lines of code is only 14%. Reviewed-by: Ian Romanick Part-of: --- diff --git a/src/mapi/glapi/gen/GL3x.xml b/src/mapi/glapi/gen/GL3x.xml index 6c25692..f950646 100644 --- a/src/mapi/glapi/gen/GL3x.xml +++ b/src/mapi/glapi/gen/GL3x.xml @@ -330,7 +330,7 @@ - + @@ -350,7 +350,7 @@ - + @@ -370,22 +370,22 @@ - + - + - + - + diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 432749a..e172c8c 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -1168,24 +1168,24 @@ - + - + - + - + @@ -1202,81 +1202,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1294,31 +1294,31 @@ - + - + - + - + - @@ -1326,31 +1326,31 @@ - + - + - + - + - + @@ -1360,7 +1360,7 @@ - + @@ -1369,11 +1369,11 @@ - + - + @@ -1388,42 +1388,42 @@ - + - + - + - + - + - + - + - + @@ -1440,24 +1440,24 @@ - + - + - + - + @@ -1594,14 +1594,14 @@ - + - + @@ -1614,43 +1614,43 @@ - + - + - + - + - + - + - + @@ -1665,30 +1665,30 @@ - + - + - + - + - + - + @@ -1704,33 +1704,33 @@ - + - + - + - + - + - + @@ -1747,36 +1747,36 @@ - + - + - + - + - + - + @@ -1794,36 +1794,36 @@ - + - + - + - + - + - + @@ -1839,33 +1839,33 @@ - + - + - + - + - + - + @@ -1882,36 +1882,36 @@ - + - + - + - + - + - + @@ -1929,26 +1929,26 @@ - + - + - + - + @@ -2074,7 +2074,7 @@ - + @@ -2089,14 +2089,14 @@ - + - + - + - + @@ -2512,12 +2512,12 @@ - + - + @@ -3386,11 +3386,11 @@ - + - + @@ -4302,12 +4302,12 @@ - + - + @@ -4324,35 +4324,35 @@ - + - + - + - + - + - + @@ -4371,38 +4371,38 @@ - + - + - + - + - + - + @@ -4422,33 +4422,33 @@ - + - + - + - + - + @@ -4456,7 +4456,7 @@ - + @@ -4477,7 +4477,7 @@ - + @@ -4485,13 +4485,13 @@ - + - + @@ -4499,7 +4499,7 @@ - + @@ -4749,11 +4749,11 @@ - + - + @@ -4809,24 +4809,24 @@ - + - + - + - + @@ -4843,57 +4843,57 @@ - + - + - + - + - + - + - + - + - + - + @@ -5671,11 +5671,11 @@ - + - + @@ -5688,22 +5688,22 @@ - + - + - + - + @@ -5717,24 +5717,24 @@ - + - + - + - + @@ -5749,68 +5749,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -5826,34 +5826,34 @@ - + - + - + - + - + - + @@ -11998,32 +11998,32 @@ - - + - - + - @@ -12031,13 +12031,13 @@ - + - @@ -12046,7 +12046,7 @@ - + @@ -12106,32 +12106,32 @@ - - + - - + - @@ -12139,13 +12139,13 @@ - + - @@ -12154,13 +12154,13 @@ - + - @@ -12169,97 +12169,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py index cb70782..9f7c8ca 100644 --- a/src/mapi/glapi/gen/gl_genexec.py +++ b/src/mapi/glapi/gen/gl_genexec.py @@ -48,7 +48,6 @@ header = """/** #include "main/accum.h" -#include "main/api_loopback.h" #include "main/api_exec.h" #include "main/arbprogram.h" #include "main/atifragshader.h" diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources index 345ea9c..05c809c 100644 --- a/src/mesa/Makefile.sources +++ b/src/mesa/Makefile.sources @@ -12,8 +12,6 @@ MAIN_FILES = \ main/api_arrayelt.h \ main/api_exec.c \ main/api_exec.h \ - main/api_loopback.c \ - main/api_loopback.h \ main/arbprogram.c \ main/arbprogram.h \ main/arrayobj.c \ diff --git a/src/mesa/main/api_loopback.c b/src/mesa/main/api_loopback.c deleted file mode 100644 index cb7e1d3..0000000 --- a/src/mesa/main/api_loopback.c +++ /dev/null @@ -1,1718 +0,0 @@ -/** - * \file api_loopback.c - * - * \author Keith Whitwell - */ - -/* - * Mesa 3-D graphics library - * - * Copyright (C) 1999-2004 Brian Paul 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"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "glheader.h" -#include "macros.h" -#include "api_loopback.h" -#include "mtypes.h" -#include "glapi/glapi.h" -#include "main/dispatch.h" -#include "main/context.h" - -static struct _glapi_table * -get_dispatch(void) -{ - GET_CURRENT_CONTEXT(ctx); - return ctx->CurrentServerDispatch; -} - - -/* KW: A set of functions to convert unusual Color/Normal/Vertex/etc - * calls to a smaller set of driver-provided formats. Currently just - * go back to dispatch to find these (eg. call glNormal3f directly), - * hence 'loopback'. - * - * The driver must supply all of the remaining entry points, which are - * listed in dd.h. The easiest way for a driver to do this is to - * install the supplied software t&l module. - */ -#define COLORF(r,g,b,a) CALL_Color4f(get_dispatch(), (r,g,b,a)) -#define VERTEX2(x,y) CALL_Vertex2f(get_dispatch(), (x,y)) -#define VERTEX3(x,y,z) CALL_Vertex3f(get_dispatch(), (x,y,z)) -#define VERTEX4(x,y,z,w) CALL_Vertex4f(get_dispatch(), (x,y,z,w)) -#define NORMAL(x,y,z) CALL_Normal3f(get_dispatch(), (x,y,z)) -#define TEXCOORD1(s) CALL_TexCoord1f(get_dispatch(), (s)) -#define TEXCOORD2(s,t) CALL_TexCoord2f(get_dispatch(), (s,t)) -#define TEXCOORD3(s,t,u) CALL_TexCoord3f(get_dispatch(), (s,t,u)) -#define TEXCOORD4(s,t,u,v) CALL_TexCoord4f(get_dispatch(), (s,t,u,v)) -#define INDEX(c) CALL_Indexf(get_dispatch(), (c)) -#define MULTI_TEXCOORD1(z,s) CALL_MultiTexCoord1fARB(get_dispatch(), (z,s)) -#define MULTI_TEXCOORD2(z,s,t) CALL_MultiTexCoord2fARB(get_dispatch(), (z,s,t)) -#define MULTI_TEXCOORD3(z,s,t,u) CALL_MultiTexCoord3fARB(get_dispatch(), (z,s,t,u)) -#define MULTI_TEXCOORD4(z,s,t,u,v) CALL_MultiTexCoord4fARB(get_dispatch(), (z,s,t,u,v)) -#define EVALCOORD1(x) CALL_EvalCoord1f(get_dispatch(), (x)) -#define EVALCOORD2(x,y) CALL_EvalCoord2f(get_dispatch(), (x,y)) -#define MATERIALFV(a,b,c) CALL_Materialfv(get_dispatch(), (a,b,c)) -#define RECTF(a,b,c,d) CALL_Rectf(get_dispatch(), (a,b,c,d)) - -#define FOGCOORDF(x) CALL_FogCoordfEXT(get_dispatch(), (x)) -#define SECONDARYCOLORF(a,b,c) CALL_SecondaryColor3fEXT(get_dispatch(), (a,b,c)) - -#define ATTRIB1NV(index,x) CALL_VertexAttrib1fNV(get_dispatch(), (index,x)) -#define ATTRIB2NV(index,x,y) CALL_VertexAttrib2fNV(get_dispatch(), (index,x,y)) -#define ATTRIB3NV(index,x,y,z) CALL_VertexAttrib3fNV(get_dispatch(), (index,x,y,z)) -#define ATTRIB4NV(index,x,y,z,w) CALL_VertexAttrib4fNV(get_dispatch(), (index,x,y,z,w)) - -#define ATTRIB1ARB(index,x) CALL_VertexAttrib1fARB(get_dispatch(), (index,x)) -#define ATTRIB2ARB(index,x,y) CALL_VertexAttrib2fARB(get_dispatch(), (index,x,y)) -#define ATTRIB3ARB(index,x,y,z) CALL_VertexAttrib3fARB(get_dispatch(), (index,x,y,z)) -#define ATTRIB4ARB(index,x,y,z,w) CALL_VertexAttrib4fARB(get_dispatch(), (index,x,y,z,w)) - -#define ATTRIBI_1I(index,x) CALL_VertexAttribI1iEXT(get_dispatch(), (index,x)) -#define ATTRIBI_1UI(index,x) CALL_VertexAttribI1uiEXT(get_dispatch(), (index,x)) -#define ATTRIBI_4I(index,x,y,z,w) CALL_VertexAttribI4iEXT(get_dispatch(), (index,x,y,z,w)) - -#define ATTRIBI_4UI(index,x,y,z,w) CALL_VertexAttribI4uiEXT(get_dispatch(), (index,x,y,z,w)) - -void GLAPIENTRY -_mesa_Color3b( GLbyte red, GLbyte green, GLbyte blue ) -{ - COLORF( BYTE_TO_FLOAT(red), - BYTE_TO_FLOAT(green), - BYTE_TO_FLOAT(blue), - 1.0 ); -} - -void GLAPIENTRY -_mesa_Color3d( GLdouble red, GLdouble green, GLdouble blue ) -{ - COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, 1.0 ); -} - -void GLAPIENTRY -_mesa_Color3i( GLint red, GLint green, GLint blue ) -{ - COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green), - INT_TO_FLOAT(blue), 1.0); -} - -void GLAPIENTRY -_mesa_Color3s( GLshort red, GLshort green, GLshort blue ) -{ - COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green), - SHORT_TO_FLOAT(blue), 1.0); -} - -void GLAPIENTRY -_mesa_Color3ui( GLuint red, GLuint green, GLuint blue ) -{ - COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green), - UINT_TO_FLOAT(blue), 1.0 ); -} - -void GLAPIENTRY -_mesa_Color3us( GLushort red, GLushort green, GLushort blue ) -{ - COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green), - USHORT_TO_FLOAT(blue), 1.0 ); -} - -void GLAPIENTRY -_mesa_Color3ub( GLubyte red, GLubyte green, GLubyte blue ) -{ - COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green), - UBYTE_TO_FLOAT(blue), 1.0 ); -} - - -void GLAPIENTRY -_mesa_Color3bv( const GLbyte *v ) -{ - COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), - BYTE_TO_FLOAT(v[2]), 1.0 ); -} - -void GLAPIENTRY -_mesa_Color3dv( const GLdouble *v ) -{ - COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0 ); -} - -void GLAPIENTRY -_mesa_Color3iv( const GLint *v ) -{ - COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), - INT_TO_FLOAT(v[2]), 1.0 ); -} - -void GLAPIENTRY -_mesa_Color3sv( const GLshort *v ) -{ - COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), - SHORT_TO_FLOAT(v[2]), 1.0 ); -} - -void GLAPIENTRY -_mesa_Color3uiv( const GLuint *v ) -{ - COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), - UINT_TO_FLOAT(v[2]), 1.0 ); -} - -void GLAPIENTRY -_mesa_Color3usv( const GLushort *v ) -{ - COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), - USHORT_TO_FLOAT(v[2]), 1.0 ); -} - -void GLAPIENTRY -_mesa_Color3ubv( const GLubyte *v ) -{ - COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), - UBYTE_TO_FLOAT(v[2]), 1.0 ); -} - - -void GLAPIENTRY -_mesa_Color4b( GLbyte red, GLbyte green, GLbyte blue, - GLbyte alpha ) -{ - COLORF( BYTE_TO_FLOAT(red), BYTE_TO_FLOAT(green), - BYTE_TO_FLOAT(blue), BYTE_TO_FLOAT(alpha) ); -} - -void GLAPIENTRY -_mesa_Color4d( GLdouble red, GLdouble green, GLdouble blue, - GLdouble alpha ) -{ - COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, (GLfloat) alpha ); -} - -void GLAPIENTRY -_mesa_Color4i( GLint red, GLint green, GLint blue, GLint alpha ) -{ - COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green), - INT_TO_FLOAT(blue), INT_TO_FLOAT(alpha) ); -} - -void GLAPIENTRY -_mesa_Color4s( GLshort red, GLshort green, GLshort blue, - GLshort alpha ) -{ - COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green), - SHORT_TO_FLOAT(blue), SHORT_TO_FLOAT(alpha) ); -} - -void GLAPIENTRY -_mesa_Color4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha ) -{ - COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green), - UINT_TO_FLOAT(blue), UINT_TO_FLOAT(alpha) ); -} - -void GLAPIENTRY -_mesa_Color4us( GLushort red, GLushort green, GLushort blue, GLushort alpha ) -{ - COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green), - USHORT_TO_FLOAT(blue), USHORT_TO_FLOAT(alpha) ); -} - -void GLAPIENTRY -_mesa_Color4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) -{ - COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green), - UBYTE_TO_FLOAT(blue), UBYTE_TO_FLOAT(alpha) ); -} - - -void GLAPIENTRY -_mesa_Color4iv( const GLint *v ) -{ - COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), - INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]) ); -} - - -void GLAPIENTRY -_mesa_Color4bv( const GLbyte *v ) -{ - COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), - BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]) ); -} - -void GLAPIENTRY -_mesa_Color4dv( const GLdouble *v ) -{ - COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] ); -} - - -void GLAPIENTRY -_mesa_Color4sv( const GLshort *v) -{ - COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), - SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]) ); -} - - -void GLAPIENTRY -_mesa_Color4uiv( const GLuint *v) -{ - COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), - UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]) ); -} - -void GLAPIENTRY -_mesa_Color4usv( const GLushort *v) -{ - COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), - USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]) ); -} - -void GLAPIENTRY -_mesa_Color4ubv( const GLubyte *v) -{ - COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), - UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]) ); -} - - -void GLAPIENTRY -_mesa_FogCoordd( GLdouble d ) -{ - FOGCOORDF( (GLfloat) d ); -} - -void GLAPIENTRY -_mesa_FogCoorddv( const GLdouble *v ) -{ - FOGCOORDF( (GLfloat) *v ); -} - - -void GLAPIENTRY -_mesa_Indexd( GLdouble c ) -{ - INDEX( (GLfloat) c ); -} - -void GLAPIENTRY -_mesa_Indexi( GLint c ) -{ - INDEX( (GLfloat) c ); -} - -void GLAPIENTRY -_mesa_Indexs( GLshort c ) -{ - INDEX( (GLfloat) c ); -} - -void GLAPIENTRY -_mesa_Indexub( GLubyte c ) -{ - INDEX( (GLfloat) c ); -} - -void GLAPIENTRY -_mesa_Indexdv( const GLdouble *c ) -{ - INDEX( (GLfloat) *c ); -} - -void GLAPIENTRY -_mesa_Indexiv( const GLint *c ) -{ - INDEX( (GLfloat) *c ); -} - -void GLAPIENTRY -_mesa_Indexsv( const GLshort *c ) -{ - INDEX( (GLfloat) *c ); -} - -void GLAPIENTRY -_mesa_Indexubv( const GLubyte *c ) -{ - INDEX( (GLfloat) *c ); -} - - -void GLAPIENTRY -_mesa_EdgeFlagv(const GLboolean *flag) -{ - CALL_EdgeFlag(get_dispatch(), (*flag)); -} - - -void GLAPIENTRY -_mesa_Normal3b( GLbyte nx, GLbyte ny, GLbyte nz ) -{ - NORMAL( BYTE_TO_FLOAT(nx), BYTE_TO_FLOAT(ny), BYTE_TO_FLOAT(nz) ); -} - -void GLAPIENTRY -_mesa_Normal3d( GLdouble nx, GLdouble ny, GLdouble nz ) -{ - NORMAL((GLfloat) nx, (GLfloat) ny, (GLfloat) nz); -} - -void GLAPIENTRY -_mesa_Normal3i( GLint nx, GLint ny, GLint nz ) -{ - NORMAL( INT_TO_FLOAT(nx), INT_TO_FLOAT(ny), INT_TO_FLOAT(nz) ); -} - -void GLAPIENTRY -_mesa_Normal3s( GLshort nx, GLshort ny, GLshort nz ) -{ - NORMAL( SHORT_TO_FLOAT(nx), SHORT_TO_FLOAT(ny), SHORT_TO_FLOAT(nz) ); -} - -void GLAPIENTRY -_mesa_Normal3bv( const GLbyte *v ) -{ - NORMAL( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]) ); -} - -void GLAPIENTRY -_mesa_Normal3dv( const GLdouble *v ) -{ - NORMAL( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); -} - -void GLAPIENTRY -_mesa_Normal3iv( const GLint *v ) -{ - NORMAL( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]) ); -} - -void GLAPIENTRY -_mesa_Normal3sv( const GLshort *v ) -{ - NORMAL( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]) ); -} - -void GLAPIENTRY -_mesa_TexCoord1d( GLdouble s ) -{ - TEXCOORD1((GLfloat) s); -} - -void GLAPIENTRY -_mesa_TexCoord1i( GLint s ) -{ - TEXCOORD1((GLfloat) s); -} - -void GLAPIENTRY -_mesa_TexCoord1s( GLshort s ) -{ - TEXCOORD1((GLfloat) s); -} - -void GLAPIENTRY -_mesa_TexCoord2d( GLdouble s, GLdouble t ) -{ - TEXCOORD2((GLfloat) s,(GLfloat) t); -} - -void GLAPIENTRY -_mesa_TexCoord2s( GLshort s, GLshort t ) -{ - TEXCOORD2((GLfloat) s,(GLfloat) t); -} - -void GLAPIENTRY -_mesa_TexCoord2i( GLint s, GLint t ) -{ - TEXCOORD2((GLfloat) s,(GLfloat) t); -} - -void GLAPIENTRY -_mesa_TexCoord3d( GLdouble s, GLdouble t, GLdouble r ) -{ - TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); -} - -void GLAPIENTRY -_mesa_TexCoord3i( GLint s, GLint t, GLint r ) -{ - TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); -} - -void GLAPIENTRY -_mesa_TexCoord3s( GLshort s, GLshort t, GLshort r ) -{ - TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); -} - -void GLAPIENTRY -_mesa_TexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ) -{ - TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); -} - -void GLAPIENTRY -_mesa_TexCoord4i( GLint s, GLint t, GLint r, GLint q ) -{ - TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); -} - -void GLAPIENTRY -_mesa_TexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ) -{ - TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); -} - -void GLAPIENTRY -_mesa_TexCoord1dv( const GLdouble *v ) -{ - TEXCOORD1((GLfloat) v[0]); -} - -void GLAPIENTRY -_mesa_TexCoord1iv( const GLint *v ) -{ - TEXCOORD1((GLfloat) v[0]); -} - -void GLAPIENTRY -_mesa_TexCoord1sv( const GLshort *v ) -{ - TEXCOORD1((GLfloat) v[0]); -} - -void GLAPIENTRY -_mesa_TexCoord2dv( const GLdouble *v ) -{ - TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); -} - -void GLAPIENTRY -_mesa_TexCoord2iv( const GLint *v ) -{ - TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); -} - -void GLAPIENTRY -_mesa_TexCoord2sv( const GLshort *v ) -{ - TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); -} - -void GLAPIENTRY -_mesa_TexCoord3dv( const GLdouble *v ) -{ - TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); -} - -void GLAPIENTRY -_mesa_TexCoord3iv( const GLint *v ) -{ - TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); -} - -void GLAPIENTRY -_mesa_TexCoord3sv( const GLshort *v ) -{ - TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); -} - -void GLAPIENTRY -_mesa_TexCoord4dv( const GLdouble *v ) -{ - TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); -} - -void GLAPIENTRY -_mesa_TexCoord4iv( const GLint *v ) -{ - TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); -} - -void GLAPIENTRY -_mesa_TexCoord4sv( const GLshort *v ) -{ - TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); -} - -void GLAPIENTRY -_mesa_Vertex2d( GLdouble x, GLdouble y ) -{ - VERTEX2( (GLfloat) x, (GLfloat) y ); -} - -void GLAPIENTRY -_mesa_Vertex2i( GLint x, GLint y ) -{ - VERTEX2( (GLfloat) x, (GLfloat) y ); -} - -void GLAPIENTRY -_mesa_Vertex2s( GLshort x, GLshort y ) -{ - VERTEX2( (GLfloat) x, (GLfloat) y ); -} - -void GLAPIENTRY -_mesa_Vertex3d( GLdouble x, GLdouble y, GLdouble z ) -{ - VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); -} - -void GLAPIENTRY -_mesa_Vertex3i( GLint x, GLint y, GLint z ) -{ - VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); -} - -void GLAPIENTRY -_mesa_Vertex3s( GLshort x, GLshort y, GLshort z ) -{ - VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); -} - -void GLAPIENTRY -_mesa_Vertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ) -{ - VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); -} - -void GLAPIENTRY -_mesa_Vertex4i( GLint x, GLint y, GLint z, GLint w ) -{ - VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); -} - -void GLAPIENTRY -_mesa_Vertex4s( GLshort x, GLshort y, GLshort z, GLshort w ) -{ - VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); -} - -void GLAPIENTRY -_mesa_Vertex2dv( const GLdouble *v ) -{ - VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); -} - -void GLAPIENTRY -_mesa_Vertex2iv( const GLint *v ) -{ - VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); -} - -void GLAPIENTRY -_mesa_Vertex2sv( const GLshort *v ) -{ - VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); -} - -void GLAPIENTRY -_mesa_Vertex3dv( const GLdouble *v ) -{ - VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); -} - -void GLAPIENTRY -_mesa_Vertex3iv( const GLint *v ) -{ - VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); -} - -void GLAPIENTRY -_mesa_Vertex3sv( const GLshort *v ) -{ - VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); -} - -void GLAPIENTRY -_mesa_Vertex4dv( const GLdouble *v ) -{ - VERTEX4( (GLfloat) v[0], (GLfloat) v[1], - (GLfloat) v[2], (GLfloat) v[3] ); -} - -void GLAPIENTRY -_mesa_Vertex4iv( const GLint *v ) -{ - VERTEX4( (GLfloat) v[0], (GLfloat) v[1], - (GLfloat) v[2], (GLfloat) v[3] ); -} - -void GLAPIENTRY -_mesa_Vertex4sv( const GLshort *v ) -{ - VERTEX4( (GLfloat) v[0], (GLfloat) v[1], - (GLfloat) v[2], (GLfloat) v[3] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord1d(GLenum target, GLdouble s) -{ - MULTI_TEXCOORD1( target, (GLfloat) s ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord1dv(GLenum target, const GLdouble *v) -{ - MULTI_TEXCOORD1( target, (GLfloat) v[0] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord1i(GLenum target, GLint s) -{ - MULTI_TEXCOORD1( target, (GLfloat) s ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord1iv(GLenum target, const GLint *v) -{ - MULTI_TEXCOORD1( target, (GLfloat) v[0] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord1s(GLenum target, GLshort s) -{ - MULTI_TEXCOORD1( target, (GLfloat) s ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord1sv(GLenum target, const GLshort *v) -{ - MULTI_TEXCOORD1( target, (GLfloat) v[0] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord2d(GLenum target, GLdouble s, GLdouble t) -{ - MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord2dv(GLenum target, const GLdouble *v) -{ - MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord2i(GLenum target, GLint s, GLint t) -{ - MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord2iv(GLenum target, const GLint *v) -{ - MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord2s(GLenum target, GLshort s, GLshort t) -{ - MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord2sv(GLenum target, const GLshort *v) -{ - MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r) -{ - MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord3dv(GLenum target, const GLdouble *v) -{ - MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r) -{ - MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord3iv(GLenum target, const GLint *v) -{ - MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r) -{ - MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord3sv(GLenum target, const GLshort *v) -{ - MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) -{ - MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, - (GLfloat) r, (GLfloat) q ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord4dv(GLenum target, const GLdouble *v) -{ - MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], - (GLfloat) v[2], (GLfloat) v[3] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q) -{ - MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, - (GLfloat) r, (GLfloat) q ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord4iv(GLenum target, const GLint *v) -{ - MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], - (GLfloat) v[2], (GLfloat) v[3] ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) -{ - MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, - (GLfloat) r, (GLfloat) q ); -} - -void GLAPIENTRY -_mesa_MultiTexCoord4sv(GLenum target, const GLshort *v) -{ - MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], - (GLfloat) v[2], (GLfloat) v[3] ); -} - -void GLAPIENTRY -_mesa_EvalCoord2dv( const GLdouble *u ) -{ - EVALCOORD2( (GLfloat) u[0], (GLfloat) u[1] ); -} - -void GLAPIENTRY -_mesa_EvalCoord2d( GLdouble u, GLdouble v ) -{ - EVALCOORD2( (GLfloat) u, (GLfloat) v ); -} - -void GLAPIENTRY -_mesa_EvalCoord1dv( const GLdouble *u ) -{ - EVALCOORD1( (GLfloat) *u ); -} - -void GLAPIENTRY -_mesa_EvalCoord1d( GLdouble u ) -{ - EVALCOORD1( (GLfloat) u ); -} - -void GLAPIENTRY -_mesa_Materialf( GLenum face, GLenum pname, GLfloat param ) -{ - GLfloat fparam[4]; - fparam[0] = param; - MATERIALFV( face, pname, fparam ); -} - -void GLAPIENTRY -_mesa_Materiali(GLenum face, GLenum pname, GLint param ) -{ - GLfloat p[4]; - p[0] = (GLfloat) param; - MATERIALFV(face, pname, p); -} - -void GLAPIENTRY -_mesa_Materialiv(GLenum face, GLenum pname, const GLint *params ) -{ - GLfloat fparam[4]; - switch (pname) { - case GL_AMBIENT: - case GL_DIFFUSE: - case GL_SPECULAR: - case GL_EMISSION: - case GL_AMBIENT_AND_DIFFUSE: - fparam[0] = INT_TO_FLOAT( params[0] ); - fparam[1] = INT_TO_FLOAT( params[1] ); - fparam[2] = INT_TO_FLOAT( params[2] ); - fparam[3] = INT_TO_FLOAT( params[3] ); - break; - case GL_SHININESS: - fparam[0] = (GLfloat) params[0]; - break; - case GL_COLOR_INDEXES: - fparam[0] = (GLfloat) params[0]; - fparam[1] = (GLfloat) params[1]; - fparam[2] = (GLfloat) params[2]; - break; - default: - ; - } - MATERIALFV(face, pname, fparam); -} - - -void GLAPIENTRY -_mesa_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) -{ - RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); -} - -void GLAPIENTRY -_mesa_Rectdv(const GLdouble *v1, const GLdouble *v2) -{ - RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); -} - -void GLAPIENTRY -_mesa_Rectfv(const GLfloat *v1, const GLfloat *v2) -{ - RECTF(v1[0], v1[1], v2[0], v2[1]); -} - -void GLAPIENTRY -_mesa_Recti(GLint x1, GLint y1, GLint x2, GLint y2) -{ - RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); -} - -void GLAPIENTRY -_mesa_Rectiv(const GLint *v1, const GLint *v2) -{ - RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); -} - -void GLAPIENTRY -_mesa_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) -{ - RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); -} - -void GLAPIENTRY -_mesa_Rectsv(const GLshort *v1, const GLshort *v2) -{ - RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); -} - -void GLAPIENTRY -_mesa_SecondaryColor3b( GLbyte red, GLbyte green, GLbyte blue ) -{ - SECONDARYCOLORF( BYTE_TO_FLOAT(red), - BYTE_TO_FLOAT(green), - BYTE_TO_FLOAT(blue) ); -} - -void GLAPIENTRY -_mesa_SecondaryColor3d( GLdouble red, GLdouble green, GLdouble blue ) -{ - SECONDARYCOLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue ); -} - -void GLAPIENTRY -_mesa_SecondaryColor3i( GLint red, GLint green, GLint blue ) -{ - SECONDARYCOLORF( INT_TO_FLOAT(red), - INT_TO_FLOAT(green), - INT_TO_FLOAT(blue)); -} - -void GLAPIENTRY -_mesa_SecondaryColor3s( GLshort red, GLshort green, GLshort blue ) -{ - SECONDARYCOLORF(SHORT_TO_FLOAT(red), - SHORT_TO_FLOAT(green), - SHORT_TO_FLOAT(blue)); -} - -void GLAPIENTRY -_mesa_SecondaryColor3ui( GLuint red, GLuint green, GLuint blue ) -{ - SECONDARYCOLORF(UINT_TO_FLOAT(red), - UINT_TO_FLOAT(green), - UINT_TO_FLOAT(blue)); -} - -void GLAPIENTRY -_mesa_SecondaryColor3us( GLushort red, GLushort green, GLushort blue ) -{ - SECONDARYCOLORF(USHORT_TO_FLOAT(red), - USHORT_TO_FLOAT(green), - USHORT_TO_FLOAT(blue)); -} - -void GLAPIENTRY -_mesa_SecondaryColor3ub( GLubyte red, GLubyte green, GLubyte blue ) -{ - SECONDARYCOLORF(UBYTE_TO_FLOAT(red), - UBYTE_TO_FLOAT(green), - UBYTE_TO_FLOAT(blue)); -} - -void GLAPIENTRY -_mesa_SecondaryColor3bv( const GLbyte *v ) -{ - SECONDARYCOLORF(BYTE_TO_FLOAT(v[0]), - BYTE_TO_FLOAT(v[1]), - BYTE_TO_FLOAT(v[2])); -} - -void GLAPIENTRY -_mesa_SecondaryColor3dv( const GLdouble *v ) -{ - SECONDARYCOLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); -} -void GLAPIENTRY -_mesa_SecondaryColor3iv( const GLint *v ) -{ - SECONDARYCOLORF(INT_TO_FLOAT(v[0]), - INT_TO_FLOAT(v[1]), - INT_TO_FLOAT(v[2])); -} - -void GLAPIENTRY -_mesa_SecondaryColor3sv( const GLshort *v ) -{ - SECONDARYCOLORF(SHORT_TO_FLOAT(v[0]), - SHORT_TO_FLOAT(v[1]), - SHORT_TO_FLOAT(v[2])); -} - -void GLAPIENTRY -_mesa_SecondaryColor3uiv( const GLuint *v ) -{ - SECONDARYCOLORF(UINT_TO_FLOAT(v[0]), - UINT_TO_FLOAT(v[1]), - UINT_TO_FLOAT(v[2])); -} - -void GLAPIENTRY -_mesa_SecondaryColor3usv( const GLushort *v ) -{ - SECONDARYCOLORF(USHORT_TO_FLOAT(v[0]), - USHORT_TO_FLOAT(v[1]), - USHORT_TO_FLOAT(v[2])); -} - -void GLAPIENTRY -_mesa_SecondaryColor3ubv( const GLubyte *v ) -{ - SECONDARYCOLORF(UBYTE_TO_FLOAT(v[0]), - UBYTE_TO_FLOAT(v[1]), - UBYTE_TO_FLOAT(v[2])); -} - - -/* - * GL_NV_vertex_program: - * Always loop-back to one of the VertexAttrib[1234]f[v]NV functions. - * Note that attribute indexes DO alias conventional vertex attributes. - */ - -void GLAPIENTRY -_mesa_VertexAttrib1sNV(GLuint index, GLshort x) -{ - ATTRIB1NV(index, (GLfloat) x); -} - -void GLAPIENTRY -_mesa_VertexAttrib1dNV(GLuint index, GLdouble x) -{ - ATTRIB1NV(index, (GLfloat) x); -} - -void GLAPIENTRY -_mesa_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y) -{ - ATTRIB2NV(index, (GLfloat) x, y); -} - -void GLAPIENTRY -_mesa_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y) -{ - ATTRIB2NV(index, (GLfloat) x, (GLfloat) y); -} - -void GLAPIENTRY -_mesa_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z) -{ - ATTRIB3NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z); -} - -void GLAPIENTRY -_mesa_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z) -{ - ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); -} - -void GLAPIENTRY -_mesa_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) -{ - ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); -} - -void GLAPIENTRY -_mesa_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); -} - -void GLAPIENTRY -_mesa_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) -{ - ATTRIB4NV(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), - UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); -} - -void GLAPIENTRY -_mesa_VertexAttrib1svNV(GLuint index, const GLshort *v) -{ - ATTRIB1NV(index, (GLfloat) v[0]); -} - -void GLAPIENTRY -_mesa_VertexAttrib1dvNV(GLuint index, const GLdouble *v) -{ - ATTRIB1NV(index, (GLfloat) v[0]); -} - -void GLAPIENTRY -_mesa_VertexAttrib2svNV(GLuint index, const GLshort *v) -{ - ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]); -} - -void GLAPIENTRY -_mesa_VertexAttrib2dvNV(GLuint index, const GLdouble *v) -{ - ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]); -} - -void GLAPIENTRY -_mesa_VertexAttrib3svNV(GLuint index, const GLshort *v) -{ - ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); -} - -void GLAPIENTRY -_mesa_VertexAttrib3dvNV(GLuint index, const GLdouble *v) -{ - ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4svNV(GLuint index, const GLshort *v) -{ - ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], - (GLfloat)v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4dvNV(GLuint index, const GLdouble *v) -{ - ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4ubvNV(GLuint index, const GLubyte *v) -{ - ATTRIB4NV(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), - UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); -} - - -void GLAPIENTRY -_mesa_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - _mesa_VertexAttrib1svNV(index + i, v + i); -} - -void GLAPIENTRY -_mesa_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - ATTRIB1NV(index + i, v[i]); -} - -void GLAPIENTRY -_mesa_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - _mesa_VertexAttrib1dvNV(index + i, v + i); -} - -void GLAPIENTRY -_mesa_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - _mesa_VertexAttrib2svNV(index + i, v + 2 * i); -} - -void GLAPIENTRY -_mesa_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - ATTRIB2NV(index + i, v[2 * i], v[2 * i + 1]); -} - -void GLAPIENTRY -_mesa_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - _mesa_VertexAttrib2dvNV(index + i, v + 2 * i); -} - -void GLAPIENTRY -_mesa_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - _mesa_VertexAttrib3svNV(index + i, v + 3 * i); -} - -void GLAPIENTRY -_mesa_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - ATTRIB3NV(index + i, v[3 * i], v[3 * i + 1], v[3 * i + 2]); -} - -void GLAPIENTRY -_mesa_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - _mesa_VertexAttrib3dvNV(index + i, v + 3 * i); -} - -void GLAPIENTRY -_mesa_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - _mesa_VertexAttrib4svNV(index + i, v + 4 * i); -} - -void GLAPIENTRY -_mesa_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - ATTRIB4NV(index + i, v[4 * i], v[4 * i + 1], v[4 * i + 2], v[4 * i + 3]); -} - -void GLAPIENTRY -_mesa_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - _mesa_VertexAttrib4dvNV(index + i, v + 4 * i); -} - -void GLAPIENTRY -_mesa_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v) -{ - GLint i; - for (i = n - 1; i >= 0; i--) - _mesa_VertexAttrib4ubvNV(index + i, v + 4 * i); -} - - -/* - * GL_ARB_vertex_program - * Always loop-back to one of the VertexAttrib[1234]f[v]ARB functions. - * Note that attribute indexes do NOT alias conventional attributes. - */ - -void GLAPIENTRY -_mesa_VertexAttrib1s(GLuint index, GLshort x) -{ - ATTRIB1ARB(index, (GLfloat) x); -} - -void GLAPIENTRY -_mesa_VertexAttrib1d(GLuint index, GLdouble x) -{ - ATTRIB1ARB(index, (GLfloat) x); -} - -void GLAPIENTRY -_mesa_VertexAttrib2s(GLuint index, GLshort x, GLshort y) -{ - ATTRIB2ARB(index, (GLfloat) x, y); -} - -void GLAPIENTRY -_mesa_VertexAttrib2d(GLuint index, GLdouble x, GLdouble y) -{ - ATTRIB2ARB(index, (GLfloat) x, (GLfloat) y); -} - -void GLAPIENTRY -_mesa_VertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z) -{ - ATTRIB3ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z); -} - -void GLAPIENTRY -_mesa_VertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z) -{ - ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); -} - -void GLAPIENTRY -_mesa_VertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) -{ - ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); -} - -void GLAPIENTRY -_mesa_VertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); -} - -void GLAPIENTRY -_mesa_VertexAttrib1sv(GLuint index, const GLshort *v) -{ - ATTRIB1ARB(index, (GLfloat) v[0]); -} - -void GLAPIENTRY -_mesa_VertexAttrib1dv(GLuint index, const GLdouble *v) -{ - ATTRIB1ARB(index, (GLfloat) v[0]); -} - -void GLAPIENTRY -_mesa_VertexAttrib2sv(GLuint index, const GLshort *v) -{ - ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]); -} - -void GLAPIENTRY -_mesa_VertexAttrib2dv(GLuint index, const GLdouble *v) -{ - ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]); -} - -void GLAPIENTRY -_mesa_VertexAttrib3sv(GLuint index, const GLshort *v) -{ - ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); -} - -void GLAPIENTRY -_mesa_VertexAttrib3dv(GLuint index, const GLdouble *v) -{ - ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4sv(GLuint index, const GLshort *v) -{ - ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], - (GLfloat)v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4dv(GLuint index, const GLdouble *v) -{ - ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4bv(GLuint index, const GLbyte * v) -{ - ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4iv(GLuint index, const GLint * v) -{ - ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4ubv(GLuint index, const GLubyte * v) -{ - ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4usv(GLuint index, const GLushort * v) -{ - ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4uiv(GLuint index, const GLuint * v) -{ - ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttrib4Nbv(GLuint index, const GLbyte * v) -{ - ATTRIB4ARB(index, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), - BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3])); -} - -void GLAPIENTRY -_mesa_VertexAttrib4Nsv(GLuint index, const GLshort * v) -{ - ATTRIB4ARB(index, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), - SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3])); -} - -void GLAPIENTRY -_mesa_VertexAttrib4Niv(GLuint index, const GLint * v) -{ - ATTRIB4ARB(index, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), - INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3])); -} - -void GLAPIENTRY -_mesa_VertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) -{ - ATTRIB4ARB(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), - UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); -} - -void GLAPIENTRY -_mesa_VertexAttrib4Nubv(GLuint index, const GLubyte * v) -{ - ATTRIB4ARB(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), - UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); -} - -void GLAPIENTRY -_mesa_VertexAttrib4Nusv(GLuint index, const GLushort * v) -{ - ATTRIB4ARB(index, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), - USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3])); -} - -void GLAPIENTRY -_mesa_VertexAttrib4Nuiv(GLuint index, const GLuint * v) -{ - ATTRIB4ARB(index, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), - UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3])); -} - - - -/** - * GL_EXT_gpu_shader / GL 3.0 signed/unsigned integer-valued attributes. - * Note that attribute indexes do NOT alias conventional attributes. - */ - -void GLAPIENTRY -_mesa_VertexAttribI1iv(GLuint index, const GLint *v) -{ - ATTRIBI_1I(index, v[0]); -} - -void GLAPIENTRY -_mesa_VertexAttribI1uiv(GLuint index, const GLuint *v) -{ - ATTRIBI_1UI(index, v[0]); -} - -void GLAPIENTRY -_mesa_VertexAttribI4bv(GLuint index, const GLbyte *v) -{ - ATTRIBI_4I(index, v[0], v[1], v[2], v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttribI4sv(GLuint index, const GLshort *v) -{ - ATTRIBI_4I(index, v[0], v[1], v[2], v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttribI4ubv(GLuint index, const GLubyte *v) -{ - ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]); -} - -void GLAPIENTRY -_mesa_VertexAttribI4usv(GLuint index, const GLushort *v) -{ - ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]); -} - -/* - * This code never registers handlers for any of the entry points - * listed in vtxfmt.h. - */ -void -_mesa_loopback_init_api_table(const struct gl_context *ctx, - struct _glapi_table *dest) -{ - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_Color4ub(dest, _mesa_Color4ub); - SET_Materialf(dest, _mesa_Materialf); - } - if (ctx->API == API_OPENGL_COMPAT) { - SET_Color3b(dest, _mesa_Color3b); - SET_Color3d(dest, _mesa_Color3d); - SET_Color3i(dest, _mesa_Color3i); - SET_Color3s(dest, _mesa_Color3s); - SET_Color3ui(dest, _mesa_Color3ui); - SET_Color3us(dest, _mesa_Color3us); - SET_Color3ub(dest, _mesa_Color3ub); - SET_Color4b(dest, _mesa_Color4b); - SET_Color4d(dest, _mesa_Color4d); - SET_Color4i(dest, _mesa_Color4i); - SET_Color4s(dest, _mesa_Color4s); - SET_Color4ui(dest, _mesa_Color4ui); - SET_Color4us(dest, _mesa_Color4us); - SET_Color3bv(dest, _mesa_Color3bv); - SET_Color3dv(dest, _mesa_Color3dv); - SET_Color3iv(dest, _mesa_Color3iv); - SET_Color3sv(dest, _mesa_Color3sv); - SET_Color3uiv(dest, _mesa_Color3uiv); - SET_Color3usv(dest, _mesa_Color3usv); - SET_Color3ubv(dest, _mesa_Color3ubv); - SET_Color4bv(dest, _mesa_Color4bv); - SET_Color4dv(dest, _mesa_Color4dv); - SET_Color4iv(dest, _mesa_Color4iv); - SET_Color4sv(dest, _mesa_Color4sv); - SET_Color4uiv(dest, _mesa_Color4uiv); - SET_Color4usv(dest, _mesa_Color4usv); - SET_Color4ubv(dest, _mesa_Color4ubv); - - SET_SecondaryColor3b(dest, _mesa_SecondaryColor3b); - SET_SecondaryColor3d(dest, _mesa_SecondaryColor3d); - SET_SecondaryColor3i(dest, _mesa_SecondaryColor3i); - SET_SecondaryColor3s(dest, _mesa_SecondaryColor3s); - SET_SecondaryColor3ui(dest, _mesa_SecondaryColor3ui); - SET_SecondaryColor3us(dest, _mesa_SecondaryColor3us); - SET_SecondaryColor3ub(dest, _mesa_SecondaryColor3ub); - SET_SecondaryColor3bv(dest, _mesa_SecondaryColor3bv); - SET_SecondaryColor3dv(dest, _mesa_SecondaryColor3dv); - SET_SecondaryColor3iv(dest, _mesa_SecondaryColor3iv); - SET_SecondaryColor3sv(dest, _mesa_SecondaryColor3sv); - SET_SecondaryColor3uiv(dest, _mesa_SecondaryColor3uiv); - SET_SecondaryColor3usv(dest, _mesa_SecondaryColor3usv); - SET_SecondaryColor3ubv(dest, _mesa_SecondaryColor3ubv); - - SET_EdgeFlagv(dest, _mesa_EdgeFlagv); - - SET_Indexd(dest, _mesa_Indexd); - SET_Indexi(dest, _mesa_Indexi); - SET_Indexs(dest, _mesa_Indexs); - SET_Indexub(dest, _mesa_Indexub); - SET_Indexdv(dest, _mesa_Indexdv); - SET_Indexiv(dest, _mesa_Indexiv); - SET_Indexsv(dest, _mesa_Indexsv); - SET_Indexubv(dest, _mesa_Indexubv); - SET_Normal3b(dest, _mesa_Normal3b); - SET_Normal3d(dest, _mesa_Normal3d); - SET_Normal3i(dest, _mesa_Normal3i); - SET_Normal3s(dest, _mesa_Normal3s); - SET_Normal3bv(dest, _mesa_Normal3bv); - SET_Normal3dv(dest, _mesa_Normal3dv); - SET_Normal3iv(dest, _mesa_Normal3iv); - SET_Normal3sv(dest, _mesa_Normal3sv); - SET_TexCoord1d(dest, _mesa_TexCoord1d); - SET_TexCoord1i(dest, _mesa_TexCoord1i); - SET_TexCoord1s(dest, _mesa_TexCoord1s); - SET_TexCoord2d(dest, _mesa_TexCoord2d); - SET_TexCoord2s(dest, _mesa_TexCoord2s); - SET_TexCoord2i(dest, _mesa_TexCoord2i); - SET_TexCoord3d(dest, _mesa_TexCoord3d); - SET_TexCoord3i(dest, _mesa_TexCoord3i); - SET_TexCoord3s(dest, _mesa_TexCoord3s); - SET_TexCoord4d(dest, _mesa_TexCoord4d); - SET_TexCoord4i(dest, _mesa_TexCoord4i); - SET_TexCoord4s(dest, _mesa_TexCoord4s); - SET_TexCoord1dv(dest, _mesa_TexCoord1dv); - SET_TexCoord1iv(dest, _mesa_TexCoord1iv); - SET_TexCoord1sv(dest, _mesa_TexCoord1sv); - SET_TexCoord2dv(dest, _mesa_TexCoord2dv); - SET_TexCoord2iv(dest, _mesa_TexCoord2iv); - SET_TexCoord2sv(dest, _mesa_TexCoord2sv); - SET_TexCoord3dv(dest, _mesa_TexCoord3dv); - SET_TexCoord3iv(dest, _mesa_TexCoord3iv); - SET_TexCoord3sv(dest, _mesa_TexCoord3sv); - SET_TexCoord4dv(dest, _mesa_TexCoord4dv); - SET_TexCoord4iv(dest, _mesa_TexCoord4iv); - SET_TexCoord4sv(dest, _mesa_TexCoord4sv); - SET_Vertex2d(dest, _mesa_Vertex2d); - SET_Vertex2i(dest, _mesa_Vertex2i); - SET_Vertex2s(dest, _mesa_Vertex2s); - SET_Vertex3d(dest, _mesa_Vertex3d); - SET_Vertex3i(dest, _mesa_Vertex3i); - SET_Vertex3s(dest, _mesa_Vertex3s); - SET_Vertex4d(dest, _mesa_Vertex4d); - SET_Vertex4i(dest, _mesa_Vertex4i); - SET_Vertex4s(dest, _mesa_Vertex4s); - SET_Vertex2dv(dest, _mesa_Vertex2dv); - SET_Vertex2iv(dest, _mesa_Vertex2iv); - SET_Vertex2sv(dest, _mesa_Vertex2sv); - SET_Vertex3dv(dest, _mesa_Vertex3dv); - SET_Vertex3iv(dest, _mesa_Vertex3iv); - SET_Vertex3sv(dest, _mesa_Vertex3sv); - SET_Vertex4dv(dest, _mesa_Vertex4dv); - SET_Vertex4iv(dest, _mesa_Vertex4iv); - SET_Vertex4sv(dest, _mesa_Vertex4sv); - SET_MultiTexCoord1d(dest, _mesa_MultiTexCoord1d); - SET_MultiTexCoord1dv(dest, _mesa_MultiTexCoord1dv); - SET_MultiTexCoord1i(dest, _mesa_MultiTexCoord1i); - SET_MultiTexCoord1iv(dest, _mesa_MultiTexCoord1iv); - SET_MultiTexCoord1s(dest, _mesa_MultiTexCoord1s); - SET_MultiTexCoord1sv(dest, _mesa_MultiTexCoord1sv); - SET_MultiTexCoord2d(dest, _mesa_MultiTexCoord2d); - SET_MultiTexCoord2dv(dest, _mesa_MultiTexCoord2dv); - SET_MultiTexCoord2i(dest, _mesa_MultiTexCoord2i); - SET_MultiTexCoord2iv(dest, _mesa_MultiTexCoord2iv); - SET_MultiTexCoord2s(dest, _mesa_MultiTexCoord2s); - SET_MultiTexCoord2sv(dest, _mesa_MultiTexCoord2sv); - SET_MultiTexCoord3d(dest, _mesa_MultiTexCoord3d); - SET_MultiTexCoord3dv(dest, _mesa_MultiTexCoord3dv); - SET_MultiTexCoord3i(dest, _mesa_MultiTexCoord3i); - SET_MultiTexCoord3iv(dest, _mesa_MultiTexCoord3iv); - SET_MultiTexCoord3s(dest, _mesa_MultiTexCoord3s); - SET_MultiTexCoord3sv(dest, _mesa_MultiTexCoord3sv); - SET_MultiTexCoord4d(dest, _mesa_MultiTexCoord4d); - SET_MultiTexCoord4dv(dest, _mesa_MultiTexCoord4dv); - SET_MultiTexCoord4i(dest, _mesa_MultiTexCoord4i); - SET_MultiTexCoord4iv(dest, _mesa_MultiTexCoord4iv); - SET_MultiTexCoord4s(dest, _mesa_MultiTexCoord4s); - SET_MultiTexCoord4sv(dest, _mesa_MultiTexCoord4sv); - SET_EvalCoord2dv(dest, _mesa_EvalCoord2dv); - SET_EvalCoord2d(dest, _mesa_EvalCoord2d); - SET_EvalCoord1dv(dest, _mesa_EvalCoord1dv); - SET_EvalCoord1d(dest, _mesa_EvalCoord1d); - SET_Materiali(dest, _mesa_Materiali); - SET_Materialiv(dest, _mesa_Materialiv); - SET_Rectd(dest, _mesa_Rectd); - SET_Rectdv(dest, _mesa_Rectdv); - SET_Rectfv(dest, _mesa_Rectfv); - SET_Recti(dest, _mesa_Recti); - SET_Rectiv(dest, _mesa_Rectiv); - SET_Rects(dest, _mesa_Rects); - SET_Rectsv(dest, _mesa_Rectsv); - SET_FogCoordd(dest, _mesa_FogCoordd); - SET_FogCoorddv(dest, _mesa_FogCoorddv); - } - - if (ctx->API == API_OPENGL_COMPAT) { - SET_VertexAttrib1sNV(dest, _mesa_VertexAttrib1sNV); - SET_VertexAttrib1dNV(dest, _mesa_VertexAttrib1dNV); - SET_VertexAttrib2sNV(dest, _mesa_VertexAttrib2sNV); - SET_VertexAttrib2dNV(dest, _mesa_VertexAttrib2dNV); - SET_VertexAttrib3sNV(dest, _mesa_VertexAttrib3sNV); - SET_VertexAttrib3dNV(dest, _mesa_VertexAttrib3dNV); - SET_VertexAttrib4sNV(dest, _mesa_VertexAttrib4sNV); - SET_VertexAttrib4dNV(dest, _mesa_VertexAttrib4dNV); - SET_VertexAttrib4ubNV(dest, _mesa_VertexAttrib4ubNV); - SET_VertexAttrib1svNV(dest, _mesa_VertexAttrib1svNV); - SET_VertexAttrib1dvNV(dest, _mesa_VertexAttrib1dvNV); - SET_VertexAttrib2svNV(dest, _mesa_VertexAttrib2svNV); - SET_VertexAttrib2dvNV(dest, _mesa_VertexAttrib2dvNV); - SET_VertexAttrib3svNV(dest, _mesa_VertexAttrib3svNV); - SET_VertexAttrib3dvNV(dest, _mesa_VertexAttrib3dvNV); - SET_VertexAttrib4svNV(dest, _mesa_VertexAttrib4svNV); - SET_VertexAttrib4dvNV(dest, _mesa_VertexAttrib4dvNV); - SET_VertexAttrib4ubvNV(dest, _mesa_VertexAttrib4ubvNV); - SET_VertexAttribs1svNV(dest, _mesa_VertexAttribs1svNV); - SET_VertexAttribs1fvNV(dest, _mesa_VertexAttribs1fvNV); - SET_VertexAttribs1dvNV(dest, _mesa_VertexAttribs1dvNV); - SET_VertexAttribs2svNV(dest, _mesa_VertexAttribs2svNV); - SET_VertexAttribs2fvNV(dest, _mesa_VertexAttribs2fvNV); - SET_VertexAttribs2dvNV(dest, _mesa_VertexAttribs2dvNV); - SET_VertexAttribs3svNV(dest, _mesa_VertexAttribs3svNV); - SET_VertexAttribs3fvNV(dest, _mesa_VertexAttribs3fvNV); - SET_VertexAttribs3dvNV(dest, _mesa_VertexAttribs3dvNV); - SET_VertexAttribs4svNV(dest, _mesa_VertexAttribs4svNV); - SET_VertexAttribs4fvNV(dest, _mesa_VertexAttribs4fvNV); - SET_VertexAttribs4dvNV(dest, _mesa_VertexAttribs4dvNV); - SET_VertexAttribs4ubvNV(dest, _mesa_VertexAttribs4ubvNV); - } - - if (_mesa_is_desktop_gl(ctx)) { - SET_VertexAttrib1s(dest, _mesa_VertexAttrib1s); - SET_VertexAttrib1d(dest, _mesa_VertexAttrib1d); - SET_VertexAttrib2s(dest, _mesa_VertexAttrib2s); - SET_VertexAttrib2d(dest, _mesa_VertexAttrib2d); - SET_VertexAttrib3s(dest, _mesa_VertexAttrib3s); - SET_VertexAttrib3d(dest, _mesa_VertexAttrib3d); - SET_VertexAttrib4s(dest, _mesa_VertexAttrib4s); - SET_VertexAttrib4d(dest, _mesa_VertexAttrib4d); - SET_VertexAttrib1sv(dest, _mesa_VertexAttrib1sv); - SET_VertexAttrib1dv(dest, _mesa_VertexAttrib1dv); - SET_VertexAttrib2sv(dest, _mesa_VertexAttrib2sv); - SET_VertexAttrib2dv(dest, _mesa_VertexAttrib2dv); - SET_VertexAttrib3sv(dest, _mesa_VertexAttrib3sv); - SET_VertexAttrib3dv(dest, _mesa_VertexAttrib3dv); - SET_VertexAttrib4sv(dest, _mesa_VertexAttrib4sv); - SET_VertexAttrib4dv(dest, _mesa_VertexAttrib4dv); - SET_VertexAttrib4Nub(dest, _mesa_VertexAttrib4Nub); - SET_VertexAttrib4Nubv(dest, _mesa_VertexAttrib4Nubv); - SET_VertexAttrib4bv(dest, _mesa_VertexAttrib4bv); - SET_VertexAttrib4iv(dest, _mesa_VertexAttrib4iv); - SET_VertexAttrib4ubv(dest, _mesa_VertexAttrib4ubv); - SET_VertexAttrib4usv(dest, _mesa_VertexAttrib4usv); - SET_VertexAttrib4uiv(dest, _mesa_VertexAttrib4uiv); - SET_VertexAttrib4Nbv(dest, _mesa_VertexAttrib4Nbv); - SET_VertexAttrib4Nsv(dest, _mesa_VertexAttrib4Nsv); - SET_VertexAttrib4Nusv(dest, _mesa_VertexAttrib4Nusv); - SET_VertexAttrib4Niv(dest, _mesa_VertexAttrib4Niv); - SET_VertexAttrib4Nuiv(dest, _mesa_VertexAttrib4Nuiv); - - /* GL_EXT_gpu_shader4, GL 3.0 */ - SET_VertexAttribI1iv(dest, _mesa_VertexAttribI1iv); - SET_VertexAttribI1uiv(dest, _mesa_VertexAttribI1uiv); - SET_VertexAttribI4bv(dest, _mesa_VertexAttribI4bv); - SET_VertexAttribI4sv(dest, _mesa_VertexAttribI4sv); - SET_VertexAttribI4ubv(dest, _mesa_VertexAttribI4ubv); - SET_VertexAttribI4usv(dest, _mesa_VertexAttribI4usv); - } -} diff --git a/src/mesa/main/api_loopback.h b/src/mesa/main/api_loopback.h deleted file mode 100644 index 272c7e5..0000000 --- a/src/mesa/main/api_loopback.h +++ /dev/null @@ -1,463 +0,0 @@ -/* - * Mesa 3-D graphics library - * - * Copyright (C) 1999-2001 Brian Paul 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"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - - - -#ifndef API_LOOPBACK_H -#define API_LOOPBACK_H - -#include "main/glheader.h" - -struct _glapi_table; -struct gl_context; - -extern void -_mesa_loopback_init_api_table(const struct gl_context *ctx, - struct _glapi_table *dest); -void GLAPIENTRY -_mesa_Color3b( GLbyte red, GLbyte green, GLbyte blue ); -void GLAPIENTRY -_mesa_Color3d( GLdouble red, GLdouble green, GLdouble blue ); -void GLAPIENTRY -_mesa_Color3i( GLint red, GLint green, GLint blue ); -void GLAPIENTRY -_mesa_Color3s( GLshort red, GLshort green, GLshort blue ); -void GLAPIENTRY -_mesa_Color3ui( GLuint red, GLuint green, GLuint blue ); -void GLAPIENTRY -_mesa_Color3us( GLushort red, GLushort green, GLushort blue ); -void GLAPIENTRY -_mesa_Color3ub( GLubyte red, GLubyte green, GLubyte blue ); -void GLAPIENTRY -_mesa_Color3bv( const GLbyte *v ); -void GLAPIENTRY -_mesa_Color3dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_Color3iv( const GLint *v ); -void GLAPIENTRY -_mesa_Color3sv( const GLshort *v ); -void GLAPIENTRY -_mesa_Color3uiv( const GLuint *v ); -void GLAPIENTRY -_mesa_Color3usv( const GLushort *v ); -void GLAPIENTRY -_mesa_Color3ubv( const GLubyte *v ); -void GLAPIENTRY -_mesa_Color4b( GLbyte red, GLbyte green, GLbyte blue, - GLbyte alpha ); -void GLAPIENTRY -_mesa_Color4d( GLdouble red, GLdouble green, GLdouble blue, - GLdouble alpha ); -void GLAPIENTRY -_mesa_Color4i( GLint red, GLint green, GLint blue, GLint alpha ); -void GLAPIENTRY -_mesa_Color4s( GLshort red, GLshort green, GLshort blue, - GLshort alpha ); -void GLAPIENTRY -_mesa_Color4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha ); -void GLAPIENTRY -_mesa_Color4us( GLushort red, GLushort green, GLushort blue, - GLushort alpha ); -void GLAPIENTRY -_mesa_Color4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); -void GLAPIENTRY -_mesa_Color4iv( const GLint *v ); -void GLAPIENTRY -_mesa_Color4bv( const GLbyte *v ); -void GLAPIENTRY -_mesa_Color4dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_Color4sv( const GLshort *v); -void GLAPIENTRY -_mesa_Color4uiv( const GLuint *v); -void GLAPIENTRY -_mesa_Color4usv( const GLushort *v); -void GLAPIENTRY -_mesa_Color4ubv( const GLubyte *v); -void GLAPIENTRY -_mesa_FogCoordd( GLdouble d ); -void GLAPIENTRY -_mesa_FogCoorddv( const GLdouble *v ); -void GLAPIENTRY -_mesa_Indexd( GLdouble c ); -void GLAPIENTRY -_mesa_Indexi( GLint c ); -void GLAPIENTRY -_mesa_Indexs( GLshort c ); -void GLAPIENTRY -_mesa_Indexub( GLubyte c ); -void GLAPIENTRY -_mesa_Indexdv( const GLdouble *c ); -void GLAPIENTRY -_mesa_Indexiv( const GLint *c ); -void GLAPIENTRY -_mesa_Indexsv( const GLshort *c ); -void GLAPIENTRY -_mesa_Indexubv( const GLubyte *c ); -void GLAPIENTRY -_mesa_EdgeFlagv(const GLboolean *flag); -void GLAPIENTRY -_mesa_Normal3b( GLbyte nx, GLbyte ny, GLbyte nz ); -void GLAPIENTRY -_mesa_Normal3d( GLdouble nx, GLdouble ny, GLdouble nz ); -void GLAPIENTRY -_mesa_Normal3i( GLint nx, GLint ny, GLint nz ); -void GLAPIENTRY -_mesa_Normal3s( GLshort nx, GLshort ny, GLshort nz ); -void GLAPIENTRY -_mesa_Normal3bv( const GLbyte *v ); -void GLAPIENTRY -_mesa_Normal3dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_Normal3iv( const GLint *v ); -void GLAPIENTRY -_mesa_Normal3sv( const GLshort *v ); -void GLAPIENTRY -_mesa_TexCoord1d( GLdouble s ); -void GLAPIENTRY -_mesa_TexCoord1i( GLint s ); -void GLAPIENTRY -_mesa_TexCoord1s( GLshort s ); -void GLAPIENTRY -_mesa_TexCoord2d( GLdouble s, GLdouble t ); -void GLAPIENTRY -_mesa_TexCoord2s( GLshort s, GLshort t ); -void GLAPIENTRY -_mesa_TexCoord2i( GLint s, GLint t ); -void GLAPIENTRY -_mesa_TexCoord3d( GLdouble s, GLdouble t, GLdouble r ); -void GLAPIENTRY -_mesa_TexCoord3i( GLint s, GLint t, GLint r ); -void GLAPIENTRY -_mesa_TexCoord3s( GLshort s, GLshort t, GLshort r ); -void GLAPIENTRY -_mesa_TexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); -void GLAPIENTRY -_mesa_TexCoord4i( GLint s, GLint t, GLint r, GLint q ); -void GLAPIENTRY -_mesa_TexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); -void GLAPIENTRY -_mesa_TexCoord1dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_TexCoord1iv( const GLint *v ); -void GLAPIENTRY -_mesa_TexCoord1sv( const GLshort *v ); -void GLAPIENTRY -_mesa_TexCoord2dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_TexCoord2iv( const GLint *v ); -void GLAPIENTRY -_mesa_TexCoord2sv( const GLshort *v ); -void GLAPIENTRY -_mesa_TexCoord3dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_TexCoord3iv( const GLint *v ); -void GLAPIENTRY -_mesa_TexCoord3sv( const GLshort *v ); -void GLAPIENTRY -_mesa_TexCoord4dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_TexCoord4iv( const GLint *v ); -void GLAPIENTRY -_mesa_TexCoord4sv( const GLshort *v ); -void GLAPIENTRY -_mesa_Vertex2d( GLdouble x, GLdouble y ); -void GLAPIENTRY -_mesa_Vertex2i( GLint x, GLint y ); -void GLAPIENTRY -_mesa_Vertex2s( GLshort x, GLshort y ); -void GLAPIENTRY -_mesa_Vertex3d( GLdouble x, GLdouble y, GLdouble z ); -void GLAPIENTRY -_mesa_Vertex3i( GLint x, GLint y, GLint z ); -void GLAPIENTRY -_mesa_Vertex3s( GLshort x, GLshort y, GLshort z ); -void GLAPIENTRY -_mesa_Vertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); -void GLAPIENTRY -_mesa_Vertex4i( GLint x, GLint y, GLint z, GLint w ); -void GLAPIENTRY -_mesa_Vertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); -void GLAPIENTRY -_mesa_Vertex2dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_Vertex2iv( const GLint *v ); -void GLAPIENTRY -_mesa_Vertex2sv( const GLshort *v ); -void GLAPIENTRY -_mesa_Vertex3dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_Vertex3iv( const GLint *v ); -void GLAPIENTRY -_mesa_Vertex3sv( const GLshort *v ); -void GLAPIENTRY -_mesa_Vertex4dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_Vertex4iv( const GLint *v ); -void GLAPIENTRY -_mesa_Vertex4sv( const GLshort *v ); -void GLAPIENTRY -_mesa_MultiTexCoord1d(GLenum target, GLdouble s); -void GLAPIENTRY -_mesa_MultiTexCoord1dv(GLenum target, const GLdouble *v); -void GLAPIENTRY -_mesa_MultiTexCoord1i(GLenum target, GLint s); -void GLAPIENTRY -_mesa_MultiTexCoord1iv(GLenum target, const GLint *v); -void GLAPIENTRY -_mesa_MultiTexCoord1s(GLenum target, GLshort s); -void GLAPIENTRY -_mesa_MultiTexCoord1sv(GLenum target, const GLshort *v); -void GLAPIENTRY -_mesa_MultiTexCoord2d(GLenum target, GLdouble s, GLdouble t); -void GLAPIENTRY -_mesa_MultiTexCoord2dv(GLenum target, const GLdouble *v); -void GLAPIENTRY -_mesa_MultiTexCoord2i(GLenum target, GLint s, GLint t); -void GLAPIENTRY -_mesa_MultiTexCoord2iv(GLenum target, const GLint *v); -void GLAPIENTRY -_mesa_MultiTexCoord2s(GLenum target, GLshort s, GLshort t); -void GLAPIENTRY -_mesa_MultiTexCoord2sv(GLenum target, const GLshort *v); -void GLAPIENTRY -_mesa_MultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r); -void GLAPIENTRY -_mesa_MultiTexCoord3dv(GLenum target, const GLdouble *v); -void GLAPIENTRY -_mesa_MultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r); -void GLAPIENTRY -_mesa_MultiTexCoord3iv(GLenum target, const GLint *v); -void GLAPIENTRY -_mesa_MultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r); -void GLAPIENTRY -_mesa_MultiTexCoord3sv(GLenum target, const GLshort *v); -void GLAPIENTRY -_mesa_MultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, - GLdouble q); -void GLAPIENTRY -_mesa_MultiTexCoord4dv(GLenum target, const GLdouble *v); -void GLAPIENTRY -_mesa_MultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q); -void GLAPIENTRY -_mesa_MultiTexCoord4iv(GLenum target, const GLint *v); -void GLAPIENTRY -_mesa_MultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, - GLshort q); -void GLAPIENTRY -_mesa_MultiTexCoord4sv(GLenum target, const GLshort *v); -void GLAPIENTRY -_mesa_EvalCoord2dv( const GLdouble *u ); -void GLAPIENTRY -_mesa_EvalCoord2d( GLdouble u, GLdouble v ); -void GLAPIENTRY -_mesa_EvalCoord1dv( const GLdouble *u ); -void GLAPIENTRY -_mesa_EvalCoord1d( GLdouble u ); -void GLAPIENTRY -_mesa_Materialf( GLenum face, GLenum pname, GLfloat param ); -void GLAPIENTRY -_mesa_Materiali(GLenum face, GLenum pname, GLint param ); -void GLAPIENTRY -_mesa_Materialiv(GLenum face, GLenum pname, const GLint *params ); -void GLAPIENTRY -_mesa_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -void GLAPIENTRY -_mesa_Rectdv(const GLdouble *v1, const GLdouble *v2); -void GLAPIENTRY -_mesa_Rectfv(const GLfloat *v1, const GLfloat *v2); -void GLAPIENTRY -_mesa_Recti(GLint x1, GLint y1, GLint x2, GLint y2); -void GLAPIENTRY -_mesa_Rectiv(const GLint *v1, const GLint *v2); -void GLAPIENTRY -_mesa_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2); -void GLAPIENTRY -_mesa_Rectsv(const GLshort *v1, const GLshort *v2); -void GLAPIENTRY -_mesa_SecondaryColor3b( GLbyte red, GLbyte green, GLbyte blue ); -void GLAPIENTRY -_mesa_SecondaryColor3d( GLdouble red, GLdouble green, GLdouble blue ); -void GLAPIENTRY -_mesa_SecondaryColor3i( GLint red, GLint green, GLint blue ); -void GLAPIENTRY -_mesa_SecondaryColor3s( GLshort red, GLshort green, GLshort blue ); -void GLAPIENTRY -_mesa_SecondaryColor3ui( GLuint red, GLuint green, GLuint blue ); -void GLAPIENTRY -_mesa_SecondaryColor3us( GLushort red, GLushort green, GLushort blue ); -void GLAPIENTRY -_mesa_SecondaryColor3ub( GLubyte red, GLubyte green, GLubyte blue ); -void GLAPIENTRY -_mesa_SecondaryColor3bv( const GLbyte *v ); -void GLAPIENTRY -_mesa_SecondaryColor3dv( const GLdouble *v ); -void GLAPIENTRY -_mesa_SecondaryColor3iv( const GLint *v ); -void GLAPIENTRY -_mesa_SecondaryColor3sv( const GLshort *v ); -void GLAPIENTRY -_mesa_SecondaryColor3uiv( const GLuint *v ); -void GLAPIENTRY -_mesa_SecondaryColor3usv( const GLushort *v ); -void GLAPIENTRY -_mesa_SecondaryColor3ubv( const GLubyte *v ); -void GLAPIENTRY -_mesa_VertexAttrib1sNV(GLuint index, GLshort x); -void GLAPIENTRY -_mesa_VertexAttrib1dNV(GLuint index, GLdouble x); -void GLAPIENTRY -_mesa_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y); -void GLAPIENTRY -_mesa_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y); -void GLAPIENTRY -_mesa_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z); -void GLAPIENTRY -_mesa_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z); -void GLAPIENTRY -_mesa_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, - GLshort w); -void GLAPIENTRY -_mesa_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, - GLdouble w); -void GLAPIENTRY -_mesa_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, - GLubyte w); -void GLAPIENTRY -_mesa_VertexAttrib1svNV(GLuint index, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttrib1dvNV(GLuint index, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttrib2svNV(GLuint index, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttrib2dvNV(GLuint index, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttrib3svNV(GLuint index, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttrib3dvNV(GLuint index, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttrib4svNV(GLuint index, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttrib4dvNV(GLuint index, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttrib4ubvNV(GLuint index, const GLubyte *v); -void GLAPIENTRY -_mesa_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v); -void GLAPIENTRY -_mesa_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v); -void GLAPIENTRY -_mesa_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v); -void GLAPIENTRY -_mesa_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v); -void GLAPIENTRY -_mesa_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v); -void GLAPIENTRY -_mesa_VertexAttrib1s(GLuint index, GLshort x); -void GLAPIENTRY -_mesa_VertexAttrib1d(GLuint index, GLdouble x); -void GLAPIENTRY -_mesa_VertexAttrib2s(GLuint index, GLshort x, GLshort y); -void GLAPIENTRY -_mesa_VertexAttrib2d(GLuint index, GLdouble x, GLdouble y); -void GLAPIENTRY -_mesa_VertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z); -void GLAPIENTRY -_mesa_VertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z); -void GLAPIENTRY -_mesa_VertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, - GLshort w); -void GLAPIENTRY -_mesa_VertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, - GLdouble w); -void GLAPIENTRY -_mesa_VertexAttrib1sv(GLuint index, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttrib1dv(GLuint index, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttrib2sv(GLuint index, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttrib2dv(GLuint index, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttrib3sv(GLuint index, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttrib3dv(GLuint index, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttrib4sv(GLuint index, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttrib4dv(GLuint index, const GLdouble *v); -void GLAPIENTRY -_mesa_VertexAttrib4bv(GLuint index, const GLbyte * v); -void GLAPIENTRY -_mesa_VertexAttrib4iv(GLuint index, const GLint * v); -void GLAPIENTRY -_mesa_VertexAttrib4ubv(GLuint index, const GLubyte * v); -void GLAPIENTRY -_mesa_VertexAttrib4usv(GLuint index, const GLushort * v); -void GLAPIENTRY -_mesa_VertexAttrib4uiv(GLuint index, const GLuint * v); -void GLAPIENTRY -_mesa_VertexAttrib4Nbv(GLuint index, const GLbyte * v); -void GLAPIENTRY -_mesa_VertexAttrib4Nsv(GLuint index, const GLshort * v); -void GLAPIENTRY -_mesa_VertexAttrib4Niv(GLuint index, const GLint * v); -void GLAPIENTRY -_mesa_VertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, - GLubyte w); -void GLAPIENTRY -_mesa_VertexAttrib4Nubv(GLuint index, const GLubyte * v); -void GLAPIENTRY -_mesa_VertexAttrib4Nusv(GLuint index, const GLushort * v); -void GLAPIENTRY -_mesa_VertexAttrib4Nuiv(GLuint index, const GLuint * v); -void GLAPIENTRY -_mesa_VertexAttribI1iv(GLuint index, const GLint *v); -void GLAPIENTRY -_mesa_VertexAttribI1uiv(GLuint index, const GLuint *v); -void GLAPIENTRY -_mesa_VertexAttribI4bv(GLuint index, const GLbyte *v); -void GLAPIENTRY -_mesa_VertexAttribI4sv(GLuint index, const GLshort *v); -void GLAPIENTRY -_mesa_VertexAttribI4ubv(GLuint index, const GLubyte *v); -void GLAPIENTRY -_mesa_VertexAttribI4usv(GLuint index, const GLushort *v); - -#endif /* API_LOOPBACK_H */ diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index d72a9df..4021328 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -80,7 +80,6 @@ #include "accum.h" #include "api_exec.h" -#include "api_loopback.h" #include "arrayobj.h" #include "attrib.h" #include "bbox.h" @@ -1084,7 +1083,7 @@ _mesa_alloc_dispatch_table(void) * OPERATION." * * The table entries for specifying vertex attributes are set up by - * install_vtxfmt() and _mesa_loopback_init_api_table(), and End() and dlists + * install_vtxfmt(), and End() and dlists * are set by install_vtxfmt() as well. */ static struct _glapi_table * @@ -1130,8 +1129,6 @@ create_beginend_table(const struct gl_context *ctx) COPY_DISPATCH(ObjectPurgeableAPPLE); COPY_DISPATCH(ObjectUnpurgeableAPPLE); - _mesa_loopback_init_api_table(ctx, table); - return table; } diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 322cad3..417f259 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -1538,6 +1538,216 @@ typedef struct { void (GLAPIENTRYP SecondaryColor3hNV)( GLhalfNV, GLhalfNV, GLhalfNV ); void (GLAPIENTRYP SecondaryColor3hvNV)( const GLhalfNV * ); + void (GLAPIENTRYP Color3b)( GLbyte red, GLbyte green, GLbyte blue ); + void (GLAPIENTRYP Color3d)( GLdouble red, GLdouble green, GLdouble blue ); + void (GLAPIENTRYP Color3i)( GLint red, GLint green, GLint blue ); + void (GLAPIENTRYP Color3s)( GLshort red, GLshort green, GLshort blue ); + void (GLAPIENTRYP Color3ui)( GLuint red, GLuint green, GLuint blue ); + void (GLAPIENTRYP Color3us)( GLushort red, GLushort green, GLushort blue ); + void (GLAPIENTRYP Color3ub)( GLubyte red, GLubyte green, GLubyte blue ); + void (GLAPIENTRYP Color3bv)( const GLbyte *v ); + void (GLAPIENTRYP Color3dv)( const GLdouble *v ); + void (GLAPIENTRYP Color3iv)( const GLint *v ); + void (GLAPIENTRYP Color3sv)( const GLshort *v ); + void (GLAPIENTRYP Color3uiv)( const GLuint *v ); + void (GLAPIENTRYP Color3usv)( const GLushort *v ); + void (GLAPIENTRYP Color3ubv)( const GLubyte *v ); + void (GLAPIENTRYP Color4b)( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha ); + void (GLAPIENTRYP Color4d)( GLdouble red, GLdouble green, GLdouble blue, + GLdouble alpha ); + void (GLAPIENTRYP Color4i)( GLint red, GLint green, GLint blue, GLint alpha ); + void (GLAPIENTRYP Color4s)( GLshort red, GLshort green, GLshort blue, + GLshort alpha ); + void (GLAPIENTRYP Color4ui)( GLuint red, GLuint green, GLuint blue, GLuint alpha ); + void (GLAPIENTRYP Color4us)( GLushort red, GLushort green, GLushort blue, + GLushort alpha ); + void (GLAPIENTRYP Color4ub)( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); + void (GLAPIENTRYP Color4iv)( const GLint *v ); + void (GLAPIENTRYP Color4bv)( const GLbyte *v ); + void (GLAPIENTRYP Color4dv)( const GLdouble *v ); + void (GLAPIENTRYP Color4sv)( const GLshort *v); + void (GLAPIENTRYP Color4uiv)( const GLuint *v); + void (GLAPIENTRYP Color4usv)( const GLushort *v); + void (GLAPIENTRYP Color4ubv)( const GLubyte *v); + void (GLAPIENTRYP FogCoordd)( GLdouble d ); + void (GLAPIENTRYP FogCoorddv)( const GLdouble *v ); + void (GLAPIENTRYP Indexd)( GLdouble c ); + void (GLAPIENTRYP Indexi)( GLint c ); + void (GLAPIENTRYP Indexs)( GLshort c ); + void (GLAPIENTRYP Indexub)( GLubyte c ); + void (GLAPIENTRYP Indexdv)( const GLdouble *c ); + void (GLAPIENTRYP Indexiv)( const GLint *c ); + void (GLAPIENTRYP Indexsv)( const GLshort *c ); + void (GLAPIENTRYP Indexubv)( const GLubyte *c ); + void (GLAPIENTRYP EdgeFlagv)(const GLboolean *flag); + void (GLAPIENTRYP Normal3b)( GLbyte nx, GLbyte ny, GLbyte nz ); + void (GLAPIENTRYP Normal3d)( GLdouble nx, GLdouble ny, GLdouble nz ); + void (GLAPIENTRYP Normal3i)( GLint nx, GLint ny, GLint nz ); + void (GLAPIENTRYP Normal3s)( GLshort nx, GLshort ny, GLshort nz ); + void (GLAPIENTRYP Normal3bv)( const GLbyte *v ); + void (GLAPIENTRYP Normal3dv)( const GLdouble *v ); + void (GLAPIENTRYP Normal3iv)( const GLint *v ); + void (GLAPIENTRYP Normal3sv)( const GLshort *v ); + void (GLAPIENTRYP TexCoord1d)( GLdouble s ); + void (GLAPIENTRYP TexCoord1i)( GLint s ); + void (GLAPIENTRYP TexCoord1s)( GLshort s ); + void (GLAPIENTRYP TexCoord2d)( GLdouble s, GLdouble t ); + void (GLAPIENTRYP TexCoord2s)( GLshort s, GLshort t ); + void (GLAPIENTRYP TexCoord2i)( GLint s, GLint t ); + void (GLAPIENTRYP TexCoord3d)( GLdouble s, GLdouble t, GLdouble r ); + void (GLAPIENTRYP TexCoord3i)( GLint s, GLint t, GLint r ); + void (GLAPIENTRYP TexCoord3s)( GLshort s, GLshort t, GLshort r ); + void (GLAPIENTRYP TexCoord4d)( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); + void (GLAPIENTRYP TexCoord4i)( GLint s, GLint t, GLint r, GLint q ); + void (GLAPIENTRYP TexCoord4s)( GLshort s, GLshort t, GLshort r, GLshort q ); + void (GLAPIENTRYP TexCoord1dv)( const GLdouble *v ); + void (GLAPIENTRYP TexCoord1iv)( const GLint *v ); + void (GLAPIENTRYP TexCoord1sv)( const GLshort *v ); + void (GLAPIENTRYP TexCoord2dv)( const GLdouble *v ); + void (GLAPIENTRYP TexCoord2iv)( const GLint *v ); + void (GLAPIENTRYP TexCoord2sv)( const GLshort *v ); + void (GLAPIENTRYP TexCoord3dv)( const GLdouble *v ); + void (GLAPIENTRYP TexCoord3iv)( const GLint *v ); + void (GLAPIENTRYP TexCoord3sv)( const GLshort *v ); + void (GLAPIENTRYP TexCoord4dv)( const GLdouble *v ); + void (GLAPIENTRYP TexCoord4iv)( const GLint *v ); + void (GLAPIENTRYP TexCoord4sv)( const GLshort *v ); + void (GLAPIENTRYP Vertex2d)( GLdouble x, GLdouble y ); + void (GLAPIENTRYP Vertex2i)( GLint x, GLint y ); + void (GLAPIENTRYP Vertex2s)( GLshort x, GLshort y ); + void (GLAPIENTRYP Vertex3d)( GLdouble x, GLdouble y, GLdouble z ); + void (GLAPIENTRYP Vertex3i)( GLint x, GLint y, GLint z ); + void (GLAPIENTRYP Vertex3s)( GLshort x, GLshort y, GLshort z ); + void (GLAPIENTRYP Vertex4d)( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); + void (GLAPIENTRYP Vertex4i)( GLint x, GLint y, GLint z, GLint w ); + void (GLAPIENTRYP Vertex4s)( GLshort x, GLshort y, GLshort z, GLshort w ); + void (GLAPIENTRYP Vertex2dv)( const GLdouble *v ); + void (GLAPIENTRYP Vertex2iv)( const GLint *v ); + void (GLAPIENTRYP Vertex2sv)( const GLshort *v ); + void (GLAPIENTRYP Vertex3dv)( const GLdouble *v ); + void (GLAPIENTRYP Vertex3iv)( const GLint *v ); + void (GLAPIENTRYP Vertex3sv)( const GLshort *v ); + void (GLAPIENTRYP Vertex4dv)( const GLdouble *v ); + void (GLAPIENTRYP Vertex4iv)( const GLint *v ); + void (GLAPIENTRYP Vertex4sv)( const GLshort *v ); + void (GLAPIENTRYP MultiTexCoord1d)(GLenum target, GLdouble s); + void (GLAPIENTRYP MultiTexCoord1dv)(GLenum target, const GLdouble *v); + void (GLAPIENTRYP MultiTexCoord1i)(GLenum target, GLint s); + void (GLAPIENTRYP MultiTexCoord1iv)(GLenum target, const GLint *v); + void (GLAPIENTRYP MultiTexCoord1s)(GLenum target, GLshort s); + void (GLAPIENTRYP MultiTexCoord1sv)(GLenum target, const GLshort *v); + void (GLAPIENTRYP MultiTexCoord2d)(GLenum target, GLdouble s, GLdouble t); + void (GLAPIENTRYP MultiTexCoord2dv)(GLenum target, const GLdouble *v); + void (GLAPIENTRYP MultiTexCoord2i)(GLenum target, GLint s, GLint t); + void (GLAPIENTRYP MultiTexCoord2iv)(GLenum target, const GLint *v); + void (GLAPIENTRYP MultiTexCoord2s)(GLenum target, GLshort s, GLshort t); + void (GLAPIENTRYP MultiTexCoord2sv)(GLenum target, const GLshort *v); + void (GLAPIENTRYP MultiTexCoord3d)(GLenum target, GLdouble s, GLdouble t, GLdouble r); + void (GLAPIENTRYP MultiTexCoord3dv)(GLenum target, const GLdouble *v); + void (GLAPIENTRYP MultiTexCoord3i)(GLenum target, GLint s, GLint t, GLint r); + void (GLAPIENTRYP MultiTexCoord3iv)(GLenum target, const GLint *v); + void (GLAPIENTRYP MultiTexCoord3s)(GLenum target, GLshort s, GLshort t, GLshort r); + void (GLAPIENTRYP MultiTexCoord3sv)(GLenum target, const GLshort *v); + void (GLAPIENTRYP MultiTexCoord4d)(GLenum target, GLdouble s, GLdouble t, GLdouble r, + GLdouble q); + void (GLAPIENTRYP MultiTexCoord4dv)(GLenum target, const GLdouble *v); + void (GLAPIENTRYP MultiTexCoord4i)(GLenum target, GLint s, GLint t, GLint r, GLint q); + void (GLAPIENTRYP MultiTexCoord4iv)(GLenum target, const GLint *v); + void (GLAPIENTRYP MultiTexCoord4s)(GLenum target, GLshort s, GLshort t, GLshort r, + GLshort q); + void (GLAPIENTRYP MultiTexCoord4sv)(GLenum target, const GLshort *v); + void (GLAPIENTRYP EvalCoord2dv)( const GLdouble *u ); + void (GLAPIENTRYP EvalCoord2d)( GLdouble u, GLdouble v ); + void (GLAPIENTRYP EvalCoord1dv)( const GLdouble *u ); + void (GLAPIENTRYP EvalCoord1d)( GLdouble u ); + void (GLAPIENTRYP Materialf)( GLenum face, GLenum pname, GLfloat param ); + void (GLAPIENTRYP Materiali)(GLenum face, GLenum pname, GLint param ); + void (GLAPIENTRYP Materialiv)(GLenum face, GLenum pname, const GLint *params ); + void (GLAPIENTRYP SecondaryColor3b)( GLbyte red, GLbyte green, GLbyte blue ); + void (GLAPIENTRYP SecondaryColor3d)( GLdouble red, GLdouble green, GLdouble blue ); + void (GLAPIENTRYP SecondaryColor3i)( GLint red, GLint green, GLint blue ); + void (GLAPIENTRYP SecondaryColor3s)( GLshort red, GLshort green, GLshort blue ); + void (GLAPIENTRYP SecondaryColor3ui)( GLuint red, GLuint green, GLuint blue ); + void (GLAPIENTRYP SecondaryColor3us)( GLushort red, GLushort green, GLushort blue ); + void (GLAPIENTRYP SecondaryColor3ub)( GLubyte red, GLubyte green, GLubyte blue ); + void (GLAPIENTRYP SecondaryColor3bv)( const GLbyte *v ); + void (GLAPIENTRYP SecondaryColor3dv)( const GLdouble *v ); + void (GLAPIENTRYP SecondaryColor3iv)( const GLint *v ); + void (GLAPIENTRYP SecondaryColor3sv)( const GLshort *v ); + void (GLAPIENTRYP SecondaryColor3uiv)( const GLuint *v ); + void (GLAPIENTRYP SecondaryColor3usv)( const GLushort *v ); + void (GLAPIENTRYP SecondaryColor3ubv)( const GLubyte *v ); + void (GLAPIENTRYP VertexAttrib1sNV)(GLuint index, GLshort x); + void (GLAPIENTRYP VertexAttrib1dNV)(GLuint index, GLdouble x); + void (GLAPIENTRYP VertexAttrib2sNV)(GLuint index, GLshort x, GLshort y); + void (GLAPIENTRYP VertexAttrib2dNV)(GLuint index, GLdouble x, GLdouble y); + void (GLAPIENTRYP VertexAttrib3sNV)(GLuint index, GLshort x, GLshort y, GLshort z); + void (GLAPIENTRYP VertexAttrib3dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z); + void (GLAPIENTRYP VertexAttrib4sNV)(GLuint index, GLshort x, GLshort y, GLshort z, + GLshort w); + void (GLAPIENTRYP VertexAttrib4dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z, + GLdouble w); + void (GLAPIENTRYP VertexAttrib4ubNV)(GLuint index, GLubyte x, GLubyte y, GLubyte z, + GLubyte w); + void (GLAPIENTRYP VertexAttrib1svNV)(GLuint index, const GLshort *v); + void (GLAPIENTRYP VertexAttrib1dvNV)(GLuint index, const GLdouble *v); + void (GLAPIENTRYP VertexAttrib2svNV)(GLuint index, const GLshort *v); + void (GLAPIENTRYP VertexAttrib2dvNV)(GLuint index, const GLdouble *v); + void (GLAPIENTRYP VertexAttrib3svNV)(GLuint index, const GLshort *v); + void (GLAPIENTRYP VertexAttrib3dvNV)(GLuint index, const GLdouble *v); + void (GLAPIENTRYP VertexAttrib4svNV)(GLuint index, const GLshort *v); + void (GLAPIENTRYP VertexAttrib4dvNV)(GLuint index, const GLdouble *v); + void (GLAPIENTRYP VertexAttrib4ubvNV)(GLuint index, const GLubyte *v); + void (GLAPIENTRYP VertexAttribs1svNV)(GLuint index, GLsizei n, const GLshort *v); + void (GLAPIENTRYP VertexAttribs1fvNV)(GLuint index, GLsizei n, const GLfloat *v); + void (GLAPIENTRYP VertexAttribs1dvNV)(GLuint index, GLsizei n, const GLdouble *v); + void (GLAPIENTRYP VertexAttribs2svNV)(GLuint index, GLsizei n, const GLshort *v); + void (GLAPIENTRYP VertexAttribs2fvNV)(GLuint index, GLsizei n, const GLfloat *v); + void (GLAPIENTRYP VertexAttribs2dvNV)(GLuint index, GLsizei n, const GLdouble *v); + void (GLAPIENTRYP VertexAttribs3svNV)(GLuint index, GLsizei n, const GLshort *v); + void (GLAPIENTRYP VertexAttribs3fvNV)(GLuint index, GLsizei n, const GLfloat *v); + void (GLAPIENTRYP VertexAttribs3dvNV)(GLuint index, GLsizei n, const GLdouble *v); + void (GLAPIENTRYP VertexAttribs4svNV)(GLuint index, GLsizei n, const GLshort *v); + void (GLAPIENTRYP VertexAttribs4fvNV)(GLuint index, GLsizei n, const GLfloat *v); + void (GLAPIENTRYP VertexAttribs4dvNV)(GLuint index, GLsizei n, const GLdouble *v); + void (GLAPIENTRYP VertexAttribs4ubvNV)(GLuint index, GLsizei n, const GLubyte *v); + void (GLAPIENTRYP VertexAttrib1s)(GLuint index, GLshort x); + void (GLAPIENTRYP VertexAttrib1d)(GLuint index, GLdouble x); + void (GLAPIENTRYP VertexAttrib2s)(GLuint index, GLshort x, GLshort y); + void (GLAPIENTRYP VertexAttrib2d)(GLuint index, GLdouble x, GLdouble y); + void (GLAPIENTRYP VertexAttrib3s)(GLuint index, GLshort x, GLshort y, GLshort z); + void (GLAPIENTRYP VertexAttrib3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z); + void (GLAPIENTRYP VertexAttrib4s)(GLuint index, GLshort x, GLshort y, GLshort z, + GLshort w); + void (GLAPIENTRYP VertexAttrib4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z, + GLdouble w); + void (GLAPIENTRYP VertexAttrib1sv)(GLuint index, const GLshort *v); + void (GLAPIENTRYP VertexAttrib1dv)(GLuint index, const GLdouble *v); + void (GLAPIENTRYP VertexAttrib2sv)(GLuint index, const GLshort *v); + void (GLAPIENTRYP VertexAttrib2dv)(GLuint index, const GLdouble *v); + void (GLAPIENTRYP VertexAttrib3sv)(GLuint index, const GLshort *v); + void (GLAPIENTRYP VertexAttrib3dv)(GLuint index, const GLdouble *v); + void (GLAPIENTRYP VertexAttrib4sv)(GLuint index, const GLshort *v); + void (GLAPIENTRYP VertexAttrib4dv)(GLuint index, const GLdouble *v); + void (GLAPIENTRYP VertexAttrib4bv)(GLuint index, const GLbyte * v); + void (GLAPIENTRYP VertexAttrib4iv)(GLuint index, const GLint * v); + void (GLAPIENTRYP VertexAttrib4ubv)(GLuint index, const GLubyte * v); + void (GLAPIENTRYP VertexAttrib4usv)(GLuint index, const GLushort * v); + void (GLAPIENTRYP VertexAttrib4uiv)(GLuint index, const GLuint * v); + void (GLAPIENTRYP VertexAttrib4Nbv)(GLuint index, const GLbyte * v); + void (GLAPIENTRYP VertexAttrib4Nsv)(GLuint index, const GLshort * v); + void (GLAPIENTRYP VertexAttrib4Niv)(GLuint index, const GLint * v); + void (GLAPIENTRYP VertexAttrib4Nub)(GLuint index, GLubyte x, GLubyte y, GLubyte z, + GLubyte w); + void (GLAPIENTRYP VertexAttrib4Nubv)(GLuint index, const GLubyte * v); + void (GLAPIENTRYP VertexAttrib4Nusv)(GLuint index, const GLushort * v); + void (GLAPIENTRYP VertexAttrib4Nuiv)(GLuint index, const GLuint * v); + void (GLAPIENTRYP VertexAttribI1iv)(GLuint index, const GLint *v); + void (GLAPIENTRYP VertexAttribI1uiv)(GLuint index, const GLuint *v); + void (GLAPIENTRYP VertexAttribI4bv)(GLuint index, const GLbyte *v); + void (GLAPIENTRYP VertexAttribI4sv)(GLuint index, const GLshort *v); + void (GLAPIENTRYP VertexAttribI4ubv)(GLuint index, const GLubyte *v); + void (GLAPIENTRYP VertexAttribI4usv)(GLuint index, const GLushort *v); } GLvertexformat; diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index c016c13..84d1be8 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -34,7 +34,6 @@ #include "api_arrayelt.h" #include "api_exec.h" -#include "api_loopback.h" #include "draw_validate.h" #include "atifragshader.h" #include "config.h" @@ -6119,6 +6118,48 @@ save_Rectf(GLfloat a, GLfloat b, GLfloat c, GLfloat d) } static void GLAPIENTRY +save_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) +{ + save_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); +} + +static void GLAPIENTRY +save_Rectdv(const GLdouble *v1, const GLdouble *v2) +{ + save_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); +} + +static void GLAPIENTRY +save_Rectfv(const GLfloat *v1, const GLfloat *v2) +{ + save_Rectf(v1[0], v1[1], v2[0], v2[1]); +} + +static void GLAPIENTRY +save_Recti(GLint x1, GLint y1, GLint x2, GLint y2) +{ + save_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); +} + +static void GLAPIENTRY +save_Rectiv(const GLint *v1, const GLint *v2) +{ + save_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); +} + +static void GLAPIENTRY +save_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) +{ + save_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); +} + +static void GLAPIENTRY +save_Rectsv(const GLshort *v1, const GLshort *v2) +{ + save_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); +} + +static void GLAPIENTRY save_PrimitiveRestartNV(void) { /* Note: this is used when outside a glBegin/End pair in a display list */ @@ -13988,8 +14029,6 @@ _mesa_initialize_save_table(const struct gl_context *ctx) */ memcpy(table, ctx->Exec, numEntries * sizeof(_glapi_proc)); - _mesa_loopback_init_api_table(ctx, table); - /* VBO functions */ vbo_initialize_save_dispatch(ctx, table); @@ -14104,6 +14143,13 @@ _mesa_initialize_save_table(const struct gl_context *ctx) SET_RasterPos4sv(table, save_RasterPos4sv); SET_ReadBuffer(table, save_ReadBuffer); SET_Rectf(table, save_Rectf); + SET_Rectd(table, save_Rectd); + SET_Rectdv(table, save_Rectdv); + SET_Rectfv(table, save_Rectfv); + SET_Recti(table, save_Recti); + SET_Rectiv(table, save_Rectiv); + SET_Rects(table, save_Rects); + SET_Rectsv(table, save_Rectsv); SET_Rotated(table, save_Rotated); SET_Rotatef(table, save_Rotatef); SET_Scaled(table, save_Scaled); diff --git a/src/mesa/main/draw.c b/src/mesa/main/draw.c index 8879fa9..74a619e 100644 --- a/src/mesa/main/draw.c +++ b/src/mesa/main/draw.c @@ -394,6 +394,49 @@ _mesa_exec_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) } +static void GLAPIENTRY +_mesa_exec_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) +{ + _mesa_exec_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); +} + +static void GLAPIENTRY +_mesa_exec_Rectdv(const GLdouble *v1, const GLdouble *v2) +{ + _mesa_exec_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); +} + +static void GLAPIENTRY +_mesa_exec_Rectfv(const GLfloat *v1, const GLfloat *v2) +{ + _mesa_exec_Rectf(v1[0], v1[1], v2[0], v2[1]); +} + +static void GLAPIENTRY +_mesa_exec_Recti(GLint x1, GLint y1, GLint x2, GLint y2) +{ + _mesa_exec_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); +} + +static void GLAPIENTRY +_mesa_exec_Rectiv(const GLint *v1, const GLint *v2) +{ + _mesa_exec_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); +} + +static void GLAPIENTRY +_mesa_exec_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) +{ + _mesa_exec_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); +} + +static void GLAPIENTRY +_mesa_exec_Rectsv(const GLshort *v1, const GLshort *v2) +{ + _mesa_exec_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); +} + + void GLAPIENTRY _mesa_EvalMesh1(GLenum mode, GLint i1, GLint i2) { @@ -1904,6 +1947,13 @@ _mesa_initialize_exec_dispatch(const struct gl_context *ctx, if (ctx->API == API_OPENGL_COMPAT) { SET_Rectf(exec, _mesa_exec_Rectf); + SET_Rectd(exec, _mesa_exec_Rectd); + SET_Rectdv(exec, _mesa_exec_Rectdv); + SET_Rectfv(exec, _mesa_exec_Rectfv); + SET_Recti(exec, _mesa_exec_Recti); + SET_Rectiv(exec, _mesa_exec_Rectiv); + SET_Rects(exec, _mesa_exec_Rects); + SET_Rectsv(exec, _mesa_exec_Rectsv); } if (ctx->API != API_OPENGLES && diff --git a/src/mesa/main/es1_conversion.c b/src/mesa/main/es1_conversion.c index 38d8bda..e6995a3 100644 --- a/src/mesa/main/es1_conversion.c +++ b/src/mesa/main/es1_conversion.c @@ -1,7 +1,6 @@ #include -#include "api_loopback.h" #include "api_exec.h" #include "blend.h" #include "clear.h" diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c index 1d6a0ba..007dd75 100644 --- a/src/mesa/main/vtxfmt.c +++ b/src/mesa/main/vtxfmt.c @@ -257,6 +257,219 @@ install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab, SET_VertexAttribL3dv(tab, vfmt->VertexAttribL3dv); SET_VertexAttribL4dv(tab, vfmt->VertexAttribL4dv); } + + if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { + SET_Color4ub(tab, vfmt->Color4ub); + SET_Materialf(tab, vfmt->Materialf); + } + if (ctx->API == API_OPENGL_COMPAT) { + SET_Color3b(tab, vfmt->Color3b); + SET_Color3d(tab, vfmt->Color3d); + SET_Color3i(tab, vfmt->Color3i); + SET_Color3s(tab, vfmt->Color3s); + SET_Color3ui(tab, vfmt->Color3ui); + SET_Color3us(tab, vfmt->Color3us); + SET_Color3ub(tab, vfmt->Color3ub); + SET_Color4b(tab, vfmt->Color4b); + SET_Color4d(tab, vfmt->Color4d); + SET_Color4i(tab, vfmt->Color4i); + SET_Color4s(tab, vfmt->Color4s); + SET_Color4ui(tab, vfmt->Color4ui); + SET_Color4us(tab, vfmt->Color4us); + SET_Color3bv(tab, vfmt->Color3bv); + SET_Color3dv(tab, vfmt->Color3dv); + SET_Color3iv(tab, vfmt->Color3iv); + SET_Color3sv(tab, vfmt->Color3sv); + SET_Color3uiv(tab, vfmt->Color3uiv); + SET_Color3usv(tab, vfmt->Color3usv); + SET_Color3ubv(tab, vfmt->Color3ubv); + SET_Color4bv(tab, vfmt->Color4bv); + SET_Color4dv(tab, vfmt->Color4dv); + SET_Color4iv(tab, vfmt->Color4iv); + SET_Color4sv(tab, vfmt->Color4sv); + SET_Color4uiv(tab, vfmt->Color4uiv); + SET_Color4usv(tab, vfmt->Color4usv); + SET_Color4ubv(tab, vfmt->Color4ubv); + + SET_SecondaryColor3b(tab, vfmt->SecondaryColor3b); + SET_SecondaryColor3d(tab, vfmt->SecondaryColor3d); + SET_SecondaryColor3i(tab, vfmt->SecondaryColor3i); + SET_SecondaryColor3s(tab, vfmt->SecondaryColor3s); + SET_SecondaryColor3ui(tab, vfmt->SecondaryColor3ui); + SET_SecondaryColor3us(tab, vfmt->SecondaryColor3us); + SET_SecondaryColor3ub(tab, vfmt->SecondaryColor3ub); + SET_SecondaryColor3bv(tab, vfmt->SecondaryColor3bv); + SET_SecondaryColor3dv(tab, vfmt->SecondaryColor3dv); + SET_SecondaryColor3iv(tab, vfmt->SecondaryColor3iv); + SET_SecondaryColor3sv(tab, vfmt->SecondaryColor3sv); + SET_SecondaryColor3uiv(tab, vfmt->SecondaryColor3uiv); + SET_SecondaryColor3usv(tab, vfmt->SecondaryColor3usv); + SET_SecondaryColor3ubv(tab, vfmt->SecondaryColor3ubv); + + SET_EdgeFlagv(tab, vfmt->EdgeFlagv); + + SET_Indexd(tab, vfmt->Indexd); + SET_Indexi(tab, vfmt->Indexi); + SET_Indexs(tab, vfmt->Indexs); + SET_Indexub(tab, vfmt->Indexub); + SET_Indexdv(tab, vfmt->Indexdv); + SET_Indexiv(tab, vfmt->Indexiv); + SET_Indexsv(tab, vfmt->Indexsv); + SET_Indexubv(tab, vfmt->Indexubv); + SET_Normal3b(tab, vfmt->Normal3b); + SET_Normal3d(tab, vfmt->Normal3d); + SET_Normal3i(tab, vfmt->Normal3i); + SET_Normal3s(tab, vfmt->Normal3s); + SET_Normal3bv(tab, vfmt->Normal3bv); + SET_Normal3dv(tab, vfmt->Normal3dv); + SET_Normal3iv(tab, vfmt->Normal3iv); + SET_Normal3sv(tab, vfmt->Normal3sv); + SET_TexCoord1d(tab, vfmt->TexCoord1d); + SET_TexCoord1i(tab, vfmt->TexCoord1i); + SET_TexCoord1s(tab, vfmt->TexCoord1s); + SET_TexCoord2d(tab, vfmt->TexCoord2d); + SET_TexCoord2s(tab, vfmt->TexCoord2s); + SET_TexCoord2i(tab, vfmt->TexCoord2i); + SET_TexCoord3d(tab, vfmt->TexCoord3d); + SET_TexCoord3i(tab, vfmt->TexCoord3i); + SET_TexCoord3s(tab, vfmt->TexCoord3s); + SET_TexCoord4d(tab, vfmt->TexCoord4d); + SET_TexCoord4i(tab, vfmt->TexCoord4i); + SET_TexCoord4s(tab, vfmt->TexCoord4s); + SET_TexCoord1dv(tab, vfmt->TexCoord1dv); + SET_TexCoord1iv(tab, vfmt->TexCoord1iv); + SET_TexCoord1sv(tab, vfmt->TexCoord1sv); + SET_TexCoord2dv(tab, vfmt->TexCoord2dv); + SET_TexCoord2iv(tab, vfmt->TexCoord2iv); + SET_TexCoord2sv(tab, vfmt->TexCoord2sv); + SET_TexCoord3dv(tab, vfmt->TexCoord3dv); + SET_TexCoord3iv(tab, vfmt->TexCoord3iv); + SET_TexCoord3sv(tab, vfmt->TexCoord3sv); + SET_TexCoord4dv(tab, vfmt->TexCoord4dv); + SET_TexCoord4iv(tab, vfmt->TexCoord4iv); + SET_TexCoord4sv(tab, vfmt->TexCoord4sv); + SET_Vertex2d(tab, vfmt->Vertex2d); + SET_Vertex2i(tab, vfmt->Vertex2i); + SET_Vertex2s(tab, vfmt->Vertex2s); + SET_Vertex3d(tab, vfmt->Vertex3d); + SET_Vertex3i(tab, vfmt->Vertex3i); + SET_Vertex3s(tab, vfmt->Vertex3s); + SET_Vertex4d(tab, vfmt->Vertex4d); + SET_Vertex4i(tab, vfmt->Vertex4i); + SET_Vertex4s(tab, vfmt->Vertex4s); + SET_Vertex2dv(tab, vfmt->Vertex2dv); + SET_Vertex2iv(tab, vfmt->Vertex2iv); + SET_Vertex2sv(tab, vfmt->Vertex2sv); + SET_Vertex3dv(tab, vfmt->Vertex3dv); + SET_Vertex3iv(tab, vfmt->Vertex3iv); + SET_Vertex3sv(tab, vfmt->Vertex3sv); + SET_Vertex4dv(tab, vfmt->Vertex4dv); + SET_Vertex4iv(tab, vfmt->Vertex4iv); + SET_Vertex4sv(tab, vfmt->Vertex4sv); + SET_MultiTexCoord1d(tab, vfmt->MultiTexCoord1d); + SET_MultiTexCoord1dv(tab, vfmt->MultiTexCoord1dv); + SET_MultiTexCoord1i(tab, vfmt->MultiTexCoord1i); + SET_MultiTexCoord1iv(tab, vfmt->MultiTexCoord1iv); + SET_MultiTexCoord1s(tab, vfmt->MultiTexCoord1s); + SET_MultiTexCoord1sv(tab, vfmt->MultiTexCoord1sv); + SET_MultiTexCoord2d(tab, vfmt->MultiTexCoord2d); + SET_MultiTexCoord2dv(tab, vfmt->MultiTexCoord2dv); + SET_MultiTexCoord2i(tab, vfmt->MultiTexCoord2i); + SET_MultiTexCoord2iv(tab, vfmt->MultiTexCoord2iv); + SET_MultiTexCoord2s(tab, vfmt->MultiTexCoord2s); + SET_MultiTexCoord2sv(tab, vfmt->MultiTexCoord2sv); + SET_MultiTexCoord3d(tab, vfmt->MultiTexCoord3d); + SET_MultiTexCoord3dv(tab, vfmt->MultiTexCoord3dv); + SET_MultiTexCoord3i(tab, vfmt->MultiTexCoord3i); + SET_MultiTexCoord3iv(tab, vfmt->MultiTexCoord3iv); + SET_MultiTexCoord3s(tab, vfmt->MultiTexCoord3s); + SET_MultiTexCoord3sv(tab, vfmt->MultiTexCoord3sv); + SET_MultiTexCoord4d(tab, vfmt->MultiTexCoord4d); + SET_MultiTexCoord4dv(tab, vfmt->MultiTexCoord4dv); + SET_MultiTexCoord4i(tab, vfmt->MultiTexCoord4i); + SET_MultiTexCoord4iv(tab, vfmt->MultiTexCoord4iv); + SET_MultiTexCoord4s(tab, vfmt->MultiTexCoord4s); + SET_MultiTexCoord4sv(tab, vfmt->MultiTexCoord4sv); + SET_EvalCoord2dv(tab, vfmt->EvalCoord2dv); + SET_EvalCoord2d(tab, vfmt->EvalCoord2d); + SET_EvalCoord1dv(tab, vfmt->EvalCoord1dv); + SET_EvalCoord1d(tab, vfmt->EvalCoord1d); + SET_Materiali(tab, vfmt->Materiali); + SET_Materialiv(tab, vfmt->Materialiv); + SET_FogCoordd(tab, vfmt->FogCoordd); + SET_FogCoorddv(tab, vfmt->FogCoorddv); + + SET_VertexAttrib1sNV(tab, vfmt->VertexAttrib1sNV); + SET_VertexAttrib1dNV(tab, vfmt->VertexAttrib1dNV); + SET_VertexAttrib2sNV(tab, vfmt->VertexAttrib2sNV); + SET_VertexAttrib2dNV(tab, vfmt->VertexAttrib2dNV); + SET_VertexAttrib3sNV(tab, vfmt->VertexAttrib3sNV); + SET_VertexAttrib3dNV(tab, vfmt->VertexAttrib3dNV); + SET_VertexAttrib4sNV(tab, vfmt->VertexAttrib4sNV); + SET_VertexAttrib4dNV(tab, vfmt->VertexAttrib4dNV); + SET_VertexAttrib4ubNV(tab, vfmt->VertexAttrib4ubNV); + SET_VertexAttrib1svNV(tab, vfmt->VertexAttrib1svNV); + SET_VertexAttrib1dvNV(tab, vfmt->VertexAttrib1dvNV); + SET_VertexAttrib2svNV(tab, vfmt->VertexAttrib2svNV); + SET_VertexAttrib2dvNV(tab, vfmt->VertexAttrib2dvNV); + SET_VertexAttrib3svNV(tab, vfmt->VertexAttrib3svNV); + SET_VertexAttrib3dvNV(tab, vfmt->VertexAttrib3dvNV); + SET_VertexAttrib4svNV(tab, vfmt->VertexAttrib4svNV); + SET_VertexAttrib4dvNV(tab, vfmt->VertexAttrib4dvNV); + SET_VertexAttrib4ubvNV(tab, vfmt->VertexAttrib4ubvNV); + SET_VertexAttribs1svNV(tab, vfmt->VertexAttribs1svNV); + SET_VertexAttribs1fvNV(tab, vfmt->VertexAttribs1fvNV); + SET_VertexAttribs1dvNV(tab, vfmt->VertexAttribs1dvNV); + SET_VertexAttribs2svNV(tab, vfmt->VertexAttribs2svNV); + SET_VertexAttribs2fvNV(tab, vfmt->VertexAttribs2fvNV); + SET_VertexAttribs2dvNV(tab, vfmt->VertexAttribs2dvNV); + SET_VertexAttribs3svNV(tab, vfmt->VertexAttribs3svNV); + SET_VertexAttribs3fvNV(tab, vfmt->VertexAttribs3fvNV); + SET_VertexAttribs3dvNV(tab, vfmt->VertexAttribs3dvNV); + SET_VertexAttribs4svNV(tab, vfmt->VertexAttribs4svNV); + SET_VertexAttribs4fvNV(tab, vfmt->VertexAttribs4fvNV); + SET_VertexAttribs4dvNV(tab, vfmt->VertexAttribs4dvNV); + SET_VertexAttribs4ubvNV(tab, vfmt->VertexAttribs4ubvNV); + } + + if (_mesa_is_desktop_gl(ctx)) { + SET_VertexAttrib1s(tab, vfmt->VertexAttrib1s); + SET_VertexAttrib1d(tab, vfmt->VertexAttrib1d); + SET_VertexAttrib2s(tab, vfmt->VertexAttrib2s); + SET_VertexAttrib2d(tab, vfmt->VertexAttrib2d); + SET_VertexAttrib3s(tab, vfmt->VertexAttrib3s); + SET_VertexAttrib3d(tab, vfmt->VertexAttrib3d); + SET_VertexAttrib4s(tab, vfmt->VertexAttrib4s); + SET_VertexAttrib4d(tab, vfmt->VertexAttrib4d); + SET_VertexAttrib1sv(tab, vfmt->VertexAttrib1sv); + SET_VertexAttrib1dv(tab, vfmt->VertexAttrib1dv); + SET_VertexAttrib2sv(tab, vfmt->VertexAttrib2sv); + SET_VertexAttrib2dv(tab, vfmt->VertexAttrib2dv); + SET_VertexAttrib3sv(tab, vfmt->VertexAttrib3sv); + SET_VertexAttrib3dv(tab, vfmt->VertexAttrib3dv); + SET_VertexAttrib4sv(tab, vfmt->VertexAttrib4sv); + SET_VertexAttrib4dv(tab, vfmt->VertexAttrib4dv); + SET_VertexAttrib4Nub(tab, vfmt->VertexAttrib4Nub); + SET_VertexAttrib4Nubv(tab, vfmt->VertexAttrib4Nubv); + SET_VertexAttrib4bv(tab, vfmt->VertexAttrib4bv); + SET_VertexAttrib4iv(tab, vfmt->VertexAttrib4iv); + SET_VertexAttrib4ubv(tab, vfmt->VertexAttrib4ubv); + SET_VertexAttrib4usv(tab, vfmt->VertexAttrib4usv); + SET_VertexAttrib4uiv(tab, vfmt->VertexAttrib4uiv); + SET_VertexAttrib4Nbv(tab, vfmt->VertexAttrib4Nbv); + SET_VertexAttrib4Nsv(tab, vfmt->VertexAttrib4Nsv); + SET_VertexAttrib4Nusv(tab, vfmt->VertexAttrib4Nusv); + SET_VertexAttrib4Niv(tab, vfmt->VertexAttrib4Niv); + SET_VertexAttrib4Nuiv(tab, vfmt->VertexAttrib4Nuiv); + + /* GL_EXT_gpu_shader4, GL 3.0 */ + SET_VertexAttribI1iv(tab, vfmt->VertexAttribI1iv); + SET_VertexAttribI1uiv(tab, vfmt->VertexAttribI1uiv); + SET_VertexAttribI4bv(tab, vfmt->VertexAttribI4bv); + SET_VertexAttribI4sv(tab, vfmt->VertexAttribI4sv); + SET_VertexAttribI4ubv(tab, vfmt->VertexAttribI4ubv); + SET_VertexAttribI4usv(tab, vfmt->VertexAttribI4usv); + } } diff --git a/src/mesa/meson.build b/src/mesa/meson.build index c0e85cd..4910f97 100644 --- a/src/mesa/meson.build +++ b/src/mesa/meson.build @@ -61,8 +61,6 @@ files_libmesa_common = files( 'main/api_arrayelt.c', 'main/api_arrayelt.h', 'main/api_exec.h', - 'main/api_loopback.c', - 'main/api_loopback.h', 'main/arbprogram.c', 'main/arbprogram.h', 'main/arrayobj.c', diff --git a/src/mesa/vbo/vbo_attrib_tmp.h b/src/mesa/vbo/vbo_attrib_tmp.h index df61622..8d65bab 100644 --- a/src/mesa/vbo/vbo_attrib_tmp.h +++ b/src/mesa/vbo/vbo_attrib_tmp.h @@ -1506,6 +1506,1746 @@ TAG(SecondaryColor3hvNV)(const GLhalfNV * v) ATTR3HV(VBO_ATTRIB_COLOR1, v); } + +static void GLAPIENTRY +TAG(Color3b)(GLbyte red, GLbyte green, GLbyte blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, BYTE_TO_FLOAT(red), + BYTE_TO_FLOAT(green), + BYTE_TO_FLOAT(blue), + 1.0); +} + +static void GLAPIENTRY +TAG(Color3d)(GLdouble red, GLdouble green, GLdouble blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, (GLfloat) red, (GLfloat) green, (GLfloat) blue, 1.0); +} + +static void GLAPIENTRY +TAG(Color3i)(GLint red, GLint green, GLint blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, INT_TO_FLOAT(red), INT_TO_FLOAT(green), + INT_TO_FLOAT(blue), 1.0); +} + +static void GLAPIENTRY +TAG(Color3s)(GLshort red, GLshort green, GLshort blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green), + SHORT_TO_FLOAT(blue), 1.0); +} + +static void GLAPIENTRY +TAG(Color3ui)(GLuint red, GLuint green, GLuint blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, UINT_TO_FLOAT(red), UINT_TO_FLOAT(green), + UINT_TO_FLOAT(blue), 1.0); +} + +static void GLAPIENTRY +TAG(Color3us)(GLushort red, GLushort green, GLushort blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green), + USHORT_TO_FLOAT(blue), 1.0); +} + +static void GLAPIENTRY +TAG(Color3ub)(GLubyte red, GLubyte green, GLubyte blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green), + UBYTE_TO_FLOAT(blue), 1.0); +} + + +static void GLAPIENTRY +TAG(Color3bv)(const GLbyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), + BYTE_TO_FLOAT(v[2]), 1.0); +} + +static void GLAPIENTRY +TAG(Color3dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0); +} + +static void GLAPIENTRY +TAG(Color3iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), + INT_TO_FLOAT(v[2]), 1.0); +} + +static void GLAPIENTRY +TAG(Color3sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), + SHORT_TO_FLOAT(v[2]), 1.0); +} + +static void GLAPIENTRY +TAG(Color3uiv)(const GLuint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), + UINT_TO_FLOAT(v[2]), 1.0); +} + +static void GLAPIENTRY +TAG(Color3usv)(const GLushort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), + USHORT_TO_FLOAT(v[2]), 1.0); +} + +static void GLAPIENTRY +TAG(Color3ubv)(const GLubyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), + UBYTE_TO_FLOAT(v[2]), 1.0); +} + + +static void GLAPIENTRY +TAG(Color4b)(GLbyte red, GLbyte green, GLbyte blue, + GLbyte alpha) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, BYTE_TO_FLOAT(red), BYTE_TO_FLOAT(green), + BYTE_TO_FLOAT(blue), BYTE_TO_FLOAT(alpha)); +} + +static void GLAPIENTRY +TAG(Color4d)(GLdouble red, GLdouble green, GLdouble blue, + GLdouble alpha) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, (GLfloat) red, (GLfloat) green, (GLfloat) blue, (GLfloat) alpha); +} + +static void GLAPIENTRY +TAG(Color4i)(GLint red, GLint green, GLint blue, GLint alpha) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, INT_TO_FLOAT(red), INT_TO_FLOAT(green), + INT_TO_FLOAT(blue), INT_TO_FLOAT(alpha)); +} + +static void GLAPIENTRY +TAG(Color4s)(GLshort red, GLshort green, GLshort blue, + GLshort alpha) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green), + SHORT_TO_FLOAT(blue), SHORT_TO_FLOAT(alpha)); +} + +static void GLAPIENTRY +TAG(Color4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, UINT_TO_FLOAT(red), UINT_TO_FLOAT(green), + UINT_TO_FLOAT(blue), UINT_TO_FLOAT(alpha)); +} + +static void GLAPIENTRY +TAG(Color4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green), + USHORT_TO_FLOAT(blue), USHORT_TO_FLOAT(alpha)); +} + +static void GLAPIENTRY +TAG(Color4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green), + UBYTE_TO_FLOAT(blue), UBYTE_TO_FLOAT(alpha)); +} + + +static void GLAPIENTRY +TAG(Color4iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), + INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3])); +} + + +static void GLAPIENTRY +TAG(Color4bv)(const GLbyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), + BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3])); +} + +static void GLAPIENTRY +TAG(Color4dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); +} + + +static void GLAPIENTRY +TAG(Color4sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), + SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3])); +} + + +static void GLAPIENTRY +TAG(Color4uiv)(const GLuint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), + UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3])); +} + +static void GLAPIENTRY +TAG(Color4usv)(const GLushort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), + USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3])); +} + +static void GLAPIENTRY +TAG(Color4ubv)(const GLubyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_COLOR0, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), + UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); +} + + +static void GLAPIENTRY +TAG(FogCoordd)(GLdouble d) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_FOG, (GLfloat) d); +} + +static void GLAPIENTRY +TAG(FogCoorddv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_FOG, (GLfloat) *v); +} + + +static void GLAPIENTRY +TAG(Indexd)(GLdouble c) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) c); +} + +static void GLAPIENTRY +TAG(Indexi)(GLint c) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) c); +} + +static void GLAPIENTRY +TAG(Indexs)(GLshort c) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) c); +} + +static void GLAPIENTRY +TAG(Indexub)(GLubyte c) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) c); +} + +static void GLAPIENTRY +TAG(Indexdv)(const GLdouble *c) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) *c); +} + +static void GLAPIENTRY +TAG(Indexiv)(const GLint *c) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) *c); +} + +static void GLAPIENTRY +TAG(Indexsv)(const GLshort *c) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) *c); +} + +static void GLAPIENTRY +TAG(Indexubv)(const GLubyte *c) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_COLOR_INDEX, (GLfloat) *c); +} + + +static void GLAPIENTRY +TAG(EdgeFlagv)(const GLboolean *flag) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_EDGEFLAG, (GLfloat)*flag); +} + + +static void GLAPIENTRY +TAG(Normal3b)(GLbyte nx, GLbyte ny, GLbyte nz) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_NORMAL, BYTE_TO_FLOAT(nx), BYTE_TO_FLOAT(ny), BYTE_TO_FLOAT(nz)); +} + +static void GLAPIENTRY +TAG(Normal3d)(GLdouble nx, GLdouble ny, GLdouble nz) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_NORMAL, (GLfloat) nx, (GLfloat) ny, (GLfloat) nz); +} + +static void GLAPIENTRY +TAG(Normal3i)(GLint nx, GLint ny, GLint nz) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_NORMAL, INT_TO_FLOAT(nx), INT_TO_FLOAT(ny), INT_TO_FLOAT(nz)); +} + +static void GLAPIENTRY +TAG(Normal3s)(GLshort nx, GLshort ny, GLshort nz) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_NORMAL, SHORT_TO_FLOAT(nx), SHORT_TO_FLOAT(ny), SHORT_TO_FLOAT(nz)); +} + +static void GLAPIENTRY +TAG(Normal3bv)(const GLbyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_NORMAL, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2])); +} + +static void GLAPIENTRY +TAG(Normal3dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_NORMAL, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(Normal3iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_NORMAL, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2])); +} + +static void GLAPIENTRY +TAG(Normal3sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_NORMAL, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2])); +} + +static void GLAPIENTRY +TAG(TexCoord1d)(GLdouble s) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) s); +} + +static void GLAPIENTRY +TAG(TexCoord1i)(GLint s) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) s); +} + +static void GLAPIENTRY +TAG(TexCoord1s)(GLshort s) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) s); +} + +static void GLAPIENTRY +TAG(TexCoord2d)(GLdouble s, GLdouble t) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t); +} + +static void GLAPIENTRY +TAG(TexCoord2s)(GLshort s, GLshort t) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t); +} + +static void GLAPIENTRY +TAG(TexCoord2i)(GLint s, GLint t) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t); +} + +static void GLAPIENTRY +TAG(TexCoord3d)(GLdouble s, GLdouble t, GLdouble r) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r); +} + +static void GLAPIENTRY +TAG(TexCoord3i)(GLint s, GLint t, GLint r) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r); +} + +static void GLAPIENTRY +TAG(TexCoord3s)(GLshort s, GLshort t, GLshort r) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r); +} + +static void GLAPIENTRY +TAG(TexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); +} + +static void GLAPIENTRY +TAG(TexCoord4i)(GLint s, GLint t, GLint r, GLint q) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); +} + +static void GLAPIENTRY +TAG(TexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); +} + +static void GLAPIENTRY +TAG(TexCoord1dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) v[0]); +} + +static void GLAPIENTRY +TAG(TexCoord1iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) v[0]); +} + +static void GLAPIENTRY +TAG(TexCoord1sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR1F(VBO_ATTRIB_TEX0, (GLfloat) v[0]); +} + +static void GLAPIENTRY +TAG(TexCoord2dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(TexCoord2iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(TexCoord2sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(TexCoord3dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(TexCoord3iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(TexCoord3sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(TexCoord4dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); +} + +static void GLAPIENTRY +TAG(TexCoord4iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); +} + +static void GLAPIENTRY +TAG(TexCoord4sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_TEX0, (GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); +} + +static void GLAPIENTRY +TAG(Vertex2d)(GLdouble x, GLdouble y) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y); +} + +static void GLAPIENTRY +TAG(Vertex2i)(GLint x, GLint y) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y); +} + +static void GLAPIENTRY +TAG(Vertex2s)(GLshort x, GLshort y) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y); +} + +static void GLAPIENTRY +TAG(Vertex3d)(GLdouble x, GLdouble y, GLdouble z) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z); +} + +static void GLAPIENTRY +TAG(Vertex3i)(GLint x, GLint y, GLint z) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z); +} + +static void GLAPIENTRY +TAG(Vertex3s)(GLshort x, GLshort y, GLshort z) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z); +} + +static void GLAPIENTRY +TAG(Vertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); +} + +static void GLAPIENTRY +TAG(Vertex4i)(GLint x, GLint y, GLint z, GLint w) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); +} + +static void GLAPIENTRY +TAG(Vertex4s)(GLshort x, GLshort y, GLshort z, GLshort w) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_POS, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); +} + +static void GLAPIENTRY +TAG(Vertex2dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(Vertex2iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(Vertex2sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR2F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(Vertex3dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(Vertex3iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(Vertex3sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(Vertex4dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1], + (GLfloat) v[2], (GLfloat) v[3]); +} + +static void GLAPIENTRY +TAG(Vertex4iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1], + (GLfloat) v[2], (GLfloat) v[3]); +} + +static void GLAPIENTRY +TAG(Vertex4sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR4F(VBO_ATTRIB_POS, (GLfloat) v[0], (GLfloat) v[1], + (GLfloat) v[2], (GLfloat) v[3]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord1d)(GLenum target, GLdouble s) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR1F(attr, (GLfloat) s); +} + +static void GLAPIENTRY +TAG(MultiTexCoord1dv)(GLenum target, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR1F(attr, (GLfloat) v[0]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord1i)(GLenum target, GLint s) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR1F(attr, (GLfloat) s); +} + +static void GLAPIENTRY +TAG(MultiTexCoord1iv)(GLenum target, const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR1F(attr, (GLfloat) v[0]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord1s)(GLenum target, GLshort s) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR1F(attr, (GLfloat) s); +} + +static void GLAPIENTRY +TAG(MultiTexCoord1sv)(GLenum target, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR1F(attr, (GLfloat) v[0]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord2d)(GLenum target, GLdouble s, GLdouble t) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR2F(attr, (GLfloat) s, (GLfloat) t); +} + +static void GLAPIENTRY +TAG(MultiTexCoord2dv)(GLenum target, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR2F(attr, (GLfloat) v[0], (GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord2i)(GLenum target, GLint s, GLint t) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR2F(attr, (GLfloat) s, (GLfloat) t); +} + +static void GLAPIENTRY +TAG(MultiTexCoord2iv)(GLenum target, const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR2F(attr, (GLfloat) v[0], (GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord2s)(GLenum target, GLshort s, GLshort t) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR2F(attr, (GLfloat) s, (GLfloat) t); +} + +static void GLAPIENTRY +TAG(MultiTexCoord2sv)(GLenum target, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR2F(attr, (GLfloat) v[0], (GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord3d)(GLenum target, GLdouble s, GLdouble t, GLdouble r) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR3F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r); +} + +static void GLAPIENTRY +TAG(MultiTexCoord3dv)(GLenum target, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR3F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord3i)(GLenum target, GLint s, GLint t, GLint r) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR3F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r); +} + +static void GLAPIENTRY +TAG(MultiTexCoord3iv)(GLenum target, const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR3F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord3s)(GLenum target, GLshort s, GLshort t, GLshort r) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR3F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r); +} + +static void GLAPIENTRY +TAG(MultiTexCoord3sv)(GLenum target, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR3F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord4d)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR4F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r, (GLfloat) q); +} + +static void GLAPIENTRY +TAG(MultiTexCoord4dv)(GLenum target, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR4F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord4i)(GLenum target, GLint s, GLint t, GLint r, GLint q) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR4F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r, (GLfloat) q); +} + +static void GLAPIENTRY +TAG(MultiTexCoord4iv)(GLenum target, const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR4F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); +} + +static void GLAPIENTRY +TAG(MultiTexCoord4s)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR4F(attr, (GLfloat) s, (GLfloat) t, (GLfloat) r, (GLfloat) q); +} + +static void GLAPIENTRY +TAG(MultiTexCoord4sv)(GLenum target, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; + ATTR4F(attr, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); +} + + +static void GLAPIENTRY +TAG(EvalCoord2dv)(const GLdouble *u) +{ + TAG(EvalCoord2f)((GLfloat) u[0], (GLfloat) u[1]); +} + +static void GLAPIENTRY +TAG(EvalCoord2d)(GLdouble u, GLdouble v) +{ + TAG(EvalCoord2f)((GLfloat) u, (GLfloat) v); +} + +static void GLAPIENTRY +TAG(EvalCoord1dv)(const GLdouble *u) +{ + TAG(EvalCoord1f)((GLfloat) *u); +} + +static void GLAPIENTRY +TAG(EvalCoord1d)(GLdouble u) +{ + TAG(EvalCoord1f)((GLfloat) u); +} + + +static void GLAPIENTRY +TAG(Materialf)(GLenum face, GLenum pname, GLfloat param) +{ + GLfloat fparam[4]; + fparam[0] = param; + TAG(Materialfv)(face, pname, fparam); +} + +static void GLAPIENTRY +TAG(Materiali)(GLenum face, GLenum pname, GLint param) +{ + GLfloat p[4]; + p[0] = (GLfloat) param; + TAG(Materialfv)(face, pname, p); +} + +static void GLAPIENTRY +TAG(Materialiv)(GLenum face, GLenum pname, const GLint *params) +{ + GLfloat fparam[4]; + switch (pname) { + case GL_AMBIENT: + case GL_DIFFUSE: + case GL_SPECULAR: + case GL_EMISSION: + case GL_AMBIENT_AND_DIFFUSE: + fparam[0] = INT_TO_FLOAT(params[0]); + fparam[1] = INT_TO_FLOAT(params[1]); + fparam[2] = INT_TO_FLOAT(params[2]); + fparam[3] = INT_TO_FLOAT(params[3]); + break; + case GL_SHININESS: + fparam[0] = (GLfloat) params[0]; + break; + case GL_COLOR_INDEXES: + fparam[0] = (GLfloat) params[0]; + fparam[1] = (GLfloat) params[1]; + fparam[2] = (GLfloat) params[2]; + break; + default: + ; + } + TAG(Materialfv)(face, pname, fparam); +} + + +static void GLAPIENTRY +TAG(SecondaryColor3b)(GLbyte red, GLbyte green, GLbyte blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, BYTE_TO_FLOAT(red), + BYTE_TO_FLOAT(green), + BYTE_TO_FLOAT(blue)); +} + +static void GLAPIENTRY +TAG(SecondaryColor3d)(GLdouble red, GLdouble green, GLdouble blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, (GLfloat) red, (GLfloat) green, (GLfloat) blue); +} + +static void GLAPIENTRY +TAG(SecondaryColor3i)(GLint red, GLint green, GLint blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, INT_TO_FLOAT(red), + INT_TO_FLOAT(green), + INT_TO_FLOAT(blue)); +} + +static void GLAPIENTRY +TAG(SecondaryColor3s)(GLshort red, GLshort green, GLshort blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, SHORT_TO_FLOAT(red), + SHORT_TO_FLOAT(green), + SHORT_TO_FLOAT(blue)); +} + +static void GLAPIENTRY +TAG(SecondaryColor3ui)(GLuint red, GLuint green, GLuint blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, UINT_TO_FLOAT(red), + UINT_TO_FLOAT(green), + UINT_TO_FLOAT(blue)); +} + +static void GLAPIENTRY +TAG(SecondaryColor3us)(GLushort red, GLushort green, GLushort blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, USHORT_TO_FLOAT(red), + USHORT_TO_FLOAT(green), + USHORT_TO_FLOAT(blue)); +} + +static void GLAPIENTRY +TAG(SecondaryColor3ub)(GLubyte red, GLubyte green, GLubyte blue) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, UBYTE_TO_FLOAT(red), + UBYTE_TO_FLOAT(green), + UBYTE_TO_FLOAT(blue)); +} + +static void GLAPIENTRY +TAG(SecondaryColor3bv)(const GLbyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, BYTE_TO_FLOAT(v[0]), + BYTE_TO_FLOAT(v[1]), + BYTE_TO_FLOAT(v[2])); +} + +static void GLAPIENTRY +TAG(SecondaryColor3dv)(const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(SecondaryColor3iv)(const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, INT_TO_FLOAT(v[0]), + INT_TO_FLOAT(v[1]), + INT_TO_FLOAT(v[2])); +} + +static void GLAPIENTRY +TAG(SecondaryColor3sv)(const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, SHORT_TO_FLOAT(v[0]), + SHORT_TO_FLOAT(v[1]), + SHORT_TO_FLOAT(v[2])); +} + +static void GLAPIENTRY +TAG(SecondaryColor3uiv)(const GLuint *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, UINT_TO_FLOAT(v[0]), + UINT_TO_FLOAT(v[1]), + UINT_TO_FLOAT(v[2])); +} + +static void GLAPIENTRY +TAG(SecondaryColor3usv)(const GLushort *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, USHORT_TO_FLOAT(v[0]), + USHORT_TO_FLOAT(v[1]), + USHORT_TO_FLOAT(v[2])); +} + +static void GLAPIENTRY +TAG(SecondaryColor3ubv)(const GLubyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + ATTR3F(VBO_ATTRIB_COLOR1, UBYTE_TO_FLOAT(v[0]), + UBYTE_TO_FLOAT(v[1]), + UBYTE_TO_FLOAT(v[2])); +} + + +/* + * GL_NV_vertex_program: + * Note that attribute indexes DO alias conventional vertex attributes. + */ + +static void GLAPIENTRY +TAG(VertexAttrib1sNV)(GLuint index, GLshort x) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR1F(index, (GLfloat) x); +} + +static void GLAPIENTRY +TAG(VertexAttrib1dNV)(GLuint index, GLdouble x) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR1F(index, (GLfloat) x); +} + +static void GLAPIENTRY +TAG(VertexAttrib2sNV)(GLuint index, GLshort x, GLshort y) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR2F(index, (GLfloat) x, y); +} + +static void GLAPIENTRY +TAG(VertexAttrib2dNV)(GLuint index, GLdouble x, GLdouble y) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR2F(index, (GLfloat) x, (GLfloat) y); +} + +static void GLAPIENTRY +TAG(VertexAttrib3sNV)(GLuint index, GLshort x, GLshort y, GLshort z) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR3F(index, (GLfloat) x, (GLfloat) y, (GLfloat) z); +} + +static void GLAPIENTRY +TAG(VertexAttrib3dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR4F(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); +} + +static void GLAPIENTRY +TAG(VertexAttrib4sNV)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR4F(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); +} + +static void GLAPIENTRY +TAG(VertexAttrib4dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR4F(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); +} + +static void GLAPIENTRY +TAG(VertexAttrib4ubNV)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR4F(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), + UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); +} + +static void GLAPIENTRY +TAG(VertexAttrib1svNV)(GLuint index, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR1F(index, (GLfloat) v[0]); +} + +static void GLAPIENTRY +TAG(VertexAttrib1dvNV)(GLuint index, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR1F(index, (GLfloat) v[0]); +} + +static void GLAPIENTRY +TAG(VertexAttrib2svNV)(GLuint index, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR2F(index, (GLfloat) v[0], (GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(VertexAttrib2dvNV)(GLuint index, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR2F(index, (GLfloat) v[0], (GLfloat) v[1]); +} + +static void GLAPIENTRY +TAG(VertexAttrib3svNV)(GLuint index, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR3F(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(VertexAttrib3dvNV)(GLuint index, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR3F(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); +} + +static void GLAPIENTRY +TAG(VertexAttrib4svNV)(GLuint index, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR4F(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], + (GLfloat)v[3]); +} + +static void GLAPIENTRY +TAG(VertexAttrib4dvNV)(GLuint index, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR4F(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); +} + +static void GLAPIENTRY +TAG(VertexAttrib4ubvNV)(GLuint index, const GLubyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (index < VBO_ATTRIB_MAX) ATTR4F(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), + UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); +} + + +static void GLAPIENTRY +TAG(VertexAttribs1svNV)(GLuint index, GLsizei n, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR1F(index + i, (GLfloat) v[i]); +} + +static void GLAPIENTRY +TAG(VertexAttribs1fvNV)(GLuint index, GLsizei n, const GLfloat *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR1F(index + i, v[i]); +} + +static void GLAPIENTRY +TAG(VertexAttribs1dvNV)(GLuint index, GLsizei n, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR1F(index + i, (GLfloat) v[i]); +} + +static void GLAPIENTRY +TAG(VertexAttribs2svNV)(GLuint index, GLsizei n, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR2F(index + i, (GLfloat) v[2 * i], (GLfloat) v[2 * i + 1]); +} + +static void GLAPIENTRY +TAG(VertexAttribs2fvNV)(GLuint index, GLsizei n, const GLfloat *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR2F(index + i, v[2 * i], v[2 * i + 1]); +} + +static void GLAPIENTRY +TAG(VertexAttribs2dvNV)(GLuint index, GLsizei n, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR2F(index + i, (GLfloat) v[2 * i], (GLfloat) v[2 * i + 1]); +} + +static void GLAPIENTRY +TAG(VertexAttribs3svNV)(GLuint index, GLsizei n, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR3F(index + i, (GLfloat) v[3 * i], (GLfloat) v[3 * i + 1], (GLfloat) v[3 * i + 2]); +} + +static void GLAPIENTRY +TAG(VertexAttribs3fvNV)(GLuint index, GLsizei n, const GLfloat *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR3F(index + i, v[3 * i], v[3 * i + 1], v[3 * i + 2]); +} + +static void GLAPIENTRY +TAG(VertexAttribs3dvNV)(GLuint index, GLsizei n, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR3F(index + i, (GLfloat) v[3 * i], (GLfloat) v[3 * i + 1], (GLfloat) v[3 * i + 2]); +} + +static void GLAPIENTRY +TAG(VertexAttribs4svNV)(GLuint index, GLsizei n, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR4F(index + i, (GLfloat) v[4 * i], (GLfloat) v[4 * i + 1], (GLfloat) v[4 * i + 2], (GLfloat) v[4 * i + 3]); +} + +static void GLAPIENTRY +TAG(VertexAttribs4fvNV)(GLuint index, GLsizei n, const GLfloat *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR4F(index + i, v[4 * i], v[4 * i + 1], v[4 * i + 2], v[4 * i + 3]); +} + +static void GLAPIENTRY +TAG(VertexAttribs4dvNV)(GLuint index, GLsizei n, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR4F(index + i, (GLfloat) v[4 * i], (GLfloat) v[4 * i + 1], (GLfloat) v[4 * i + 2], (GLfloat) v[4 * i + 3]); +} + +static void GLAPIENTRY +TAG(VertexAttribs4ubvNV)(GLuint index, GLsizei n, const GLubyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + n = MIN2(n, VBO_ATTRIB_MAX - index); + for (i = n - 1; i >= 0; i--) + ATTR4F(index + i, UBYTE_TO_FLOAT(v[4 * i]), UBYTE_TO_FLOAT(v[4 * i + 1]), + UBYTE_TO_FLOAT(v[4 * i + 2]), UBYTE_TO_FLOAT(v[4 * i + 3])); +} + + +/* + * GL_ARB_vertex_program + * Note that attribute indexes do NOT alias conventional attributes. + */ + +static void GLAPIENTRY +TAG(VertexAttrib1s)(GLuint index, GLshort x) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR1F(0, (GLfloat) x); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR1F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib1d)(GLuint index, GLdouble x) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR1F(0, (GLfloat) x); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR1F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib2s)(GLuint index, GLshort x, GLshort y) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR2F(0, (GLfloat) x, (GLfloat) y); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR2F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib2d)(GLuint index, GLdouble x, GLdouble y) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR2F(0, (GLfloat) x, (GLfloat) y); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR2F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib3s)(GLuint index, GLshort x, GLshort y, GLshort z) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR3F(0, (GLfloat) x, (GLfloat) y, (GLfloat) z); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR3F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y, (GLfloat) z); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR3F(0, (GLfloat) x, (GLfloat) y, (GLfloat) z); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR3F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y, (GLfloat) z); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4s)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib1sv)(GLuint index, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR1F(0, (GLfloat) v[0]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR1F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib1dv)(GLuint index, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR1F(0, (GLfloat) v[0]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR1F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib2sv)(GLuint index, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR2F(0, (GLfloat) v[0], (GLfloat) v[1]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR2F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib2dv)(GLuint index, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR2F(0, (GLfloat) v[0], (GLfloat) v[1]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR2F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib3sv)(GLuint index, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR3F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR3F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib3dv)(GLuint index, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR3F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR3F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4sv)(GLuint index, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4dv)(GLuint index, const GLdouble *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4bv)(GLuint index, const GLbyte * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4iv)(GLuint index, const GLint * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4ubv)(GLuint index, const GLubyte * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4usv)(GLuint index, const GLushort * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4uiv)(GLuint index, const GLuint * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4Nbv)(GLuint index, const GLbyte * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3])); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3])); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4Nsv)(GLuint index, const GLshort * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3])); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3])); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4Niv)(GLuint index, const GLint * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3])); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3])); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4Nub)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4Nubv)(GLuint index, const GLubyte * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4Nusv)(GLuint index, const GLushort * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3])); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3])); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttrib4Nuiv)(GLuint index, const GLuint * v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4F(0, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3])); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4F(VBO_ATTRIB_GENERIC0 + index, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3])); + else + ERROR(GL_INVALID_VALUE); +} + + + +/** + * GL_EXT_gpu_shader / GL 3.0 signed/unsigned integer-valued attributes. + * Note that attribute indexes do NOT alias conventional attributes. + */ + +static void GLAPIENTRY +TAG(VertexAttribI1iv)(GLuint index, const GLint *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR1I(0, v[0]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR1I(VBO_ATTRIB_GENERIC0 + index, v[0]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttribI1uiv)(GLuint index, const GLuint *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR1UI(0, v[0]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR1UI(VBO_ATTRIB_GENERIC0 + index, v[0]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttribI4bv)(GLuint index, const GLbyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4I(0, v[0], v[1], v[2], v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4I(VBO_ATTRIB_GENERIC0 + index, v[0], v[1], v[2], v[3]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttribI4sv)(GLuint index, const GLshort *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4I(0, v[0], v[1], v[2], v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4I(VBO_ATTRIB_GENERIC0 + index, v[0], v[1], v[2], v[3]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttribI4ubv)(GLuint index, const GLubyte *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4UI(0, v[0], v[1], v[2], v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4UI(VBO_ATTRIB_GENERIC0 + index, v[0], v[1], v[2], v[3]); + else + ERROR(GL_INVALID_VALUE); +} + +static void GLAPIENTRY +TAG(VertexAttribI4usv)(GLuint index, const GLushort *v) +{ + GET_CURRENT_CONTEXT(ctx); + if (is_vertex_position(ctx, index)) + ATTR4UI(0, v[0], v[1], v[2], v[3]); + else if (index < MAX_VERTEX_GENERIC_ATTRIBS) + ATTR4UI(VBO_ATTRIB_GENERIC0 + index, v[0], v[1], v[2], v[3]); + else + ERROR(GL_INVALID_VALUE); +} + #undef ATTR1FV #undef ATTR2FV #undef ATTR3FV diff --git a/src/mesa/vbo/vbo_exec_api.c b/src/mesa/vbo/vbo_exec_api.c index 5e90f36..f8e13cb 100644 --- a/src/mesa/vbo/vbo_exec_api.c +++ b/src/mesa/vbo/vbo_exec_api.c @@ -53,6 +53,16 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #define IMM_BUFFER_NAME 0xaabbccdd +static void GLAPIENTRY +vbo_exec_Materialfv(GLenum face, GLenum pname, const GLfloat *params); + +static void GLAPIENTRY +vbo_exec_EvalCoord1f(GLfloat u); + +static void GLAPIENTRY +vbo_exec_EvalCoord2f(GLfloat u, GLfloat v); + + static void vbo_reset_all_attr(struct vbo_exec_context *exec); diff --git a/src/mesa/vbo/vbo_init_tmp.h b/src/mesa/vbo/vbo_init_tmp.h index 9ba232b..74c81d5 100644 --- a/src/mesa/vbo/vbo_init_tmp.h +++ b/src/mesa/vbo/vbo_init_tmp.h @@ -223,3 +223,210 @@ vfmt->VertexAttribL4dv = NAME(VertexAttribL4dv); vfmt->VertexAttribL1ui64ARB = NAME(VertexAttribL1ui64ARB); vfmt->VertexAttribL1ui64vARB = NAME(VertexAttribL1ui64vARB); + +vfmt->Color4ub = NAME(Color4ub); +vfmt->Materialf = NAME(Materialf); + +vfmt->Color3b = NAME(Color3b); +vfmt->Color3d = NAME(Color3d); +vfmt->Color3i = NAME(Color3i); +vfmt->Color3s = NAME(Color3s); +vfmt->Color3ui = NAME(Color3ui); +vfmt->Color3us = NAME(Color3us); +vfmt->Color3ub = NAME(Color3ub); +vfmt->Color4b = NAME(Color4b); +vfmt->Color4d = NAME(Color4d); +vfmt->Color4i = NAME(Color4i); +vfmt->Color4s = NAME(Color4s); +vfmt->Color4ui = NAME(Color4ui); +vfmt->Color4us = NAME(Color4us); +vfmt->Color3bv = NAME(Color3bv); +vfmt->Color3dv = NAME(Color3dv); +vfmt->Color3iv = NAME(Color3iv); +vfmt->Color3sv = NAME(Color3sv); +vfmt->Color3uiv = NAME(Color3uiv); +vfmt->Color3usv = NAME(Color3usv); +vfmt->Color3ubv = NAME(Color3ubv); +vfmt->Color4bv = NAME(Color4bv); +vfmt->Color4dv = NAME(Color4dv); +vfmt->Color4iv = NAME(Color4iv); +vfmt->Color4sv = NAME(Color4sv); +vfmt->Color4uiv = NAME(Color4uiv); +vfmt->Color4usv = NAME(Color4usv); +vfmt->Color4ubv = NAME(Color4ubv); + +vfmt->SecondaryColor3b = NAME(SecondaryColor3b); +vfmt->SecondaryColor3d = NAME(SecondaryColor3d); +vfmt->SecondaryColor3i = NAME(SecondaryColor3i); +vfmt->SecondaryColor3s = NAME(SecondaryColor3s); +vfmt->SecondaryColor3ui = NAME(SecondaryColor3ui); +vfmt->SecondaryColor3us = NAME(SecondaryColor3us); +vfmt->SecondaryColor3ub = NAME(SecondaryColor3ub); +vfmt->SecondaryColor3bv = NAME(SecondaryColor3bv); +vfmt->SecondaryColor3dv = NAME(SecondaryColor3dv); +vfmt->SecondaryColor3iv = NAME(SecondaryColor3iv); +vfmt->SecondaryColor3sv = NAME(SecondaryColor3sv); +vfmt->SecondaryColor3uiv = NAME(SecondaryColor3uiv); +vfmt->SecondaryColor3usv = NAME(SecondaryColor3usv); +vfmt->SecondaryColor3ubv = NAME(SecondaryColor3ubv); + +vfmt->EdgeFlagv = NAME(EdgeFlagv); + +vfmt->Indexd = NAME(Indexd); +vfmt->Indexi = NAME(Indexi); +vfmt->Indexs = NAME(Indexs); +vfmt->Indexub = NAME(Indexub); +vfmt->Indexdv = NAME(Indexdv); +vfmt->Indexiv = NAME(Indexiv); +vfmt->Indexsv = NAME(Indexsv); +vfmt->Indexubv = NAME(Indexubv); +vfmt->Normal3b = NAME(Normal3b); +vfmt->Normal3d = NAME(Normal3d); +vfmt->Normal3i = NAME(Normal3i); +vfmt->Normal3s = NAME(Normal3s); +vfmt->Normal3bv = NAME(Normal3bv); +vfmt->Normal3dv = NAME(Normal3dv); +vfmt->Normal3iv = NAME(Normal3iv); +vfmt->Normal3sv = NAME(Normal3sv); +vfmt->TexCoord1d = NAME(TexCoord1d); +vfmt->TexCoord1i = NAME(TexCoord1i); +vfmt->TexCoord1s = NAME(TexCoord1s); +vfmt->TexCoord2d = NAME(TexCoord2d); +vfmt->TexCoord2s = NAME(TexCoord2s); +vfmt->TexCoord2i = NAME(TexCoord2i); +vfmt->TexCoord3d = NAME(TexCoord3d); +vfmt->TexCoord3i = NAME(TexCoord3i); +vfmt->TexCoord3s = NAME(TexCoord3s); +vfmt->TexCoord4d = NAME(TexCoord4d); +vfmt->TexCoord4i = NAME(TexCoord4i); +vfmt->TexCoord4s = NAME(TexCoord4s); +vfmt->TexCoord1dv = NAME(TexCoord1dv); +vfmt->TexCoord1iv = NAME(TexCoord1iv); +vfmt->TexCoord1sv = NAME(TexCoord1sv); +vfmt->TexCoord2dv = NAME(TexCoord2dv); +vfmt->TexCoord2iv = NAME(TexCoord2iv); +vfmt->TexCoord2sv = NAME(TexCoord2sv); +vfmt->TexCoord3dv = NAME(TexCoord3dv); +vfmt->TexCoord3iv = NAME(TexCoord3iv); +vfmt->TexCoord3sv = NAME(TexCoord3sv); +vfmt->TexCoord4dv = NAME(TexCoord4dv); +vfmt->TexCoord4iv = NAME(TexCoord4iv); +vfmt->TexCoord4sv = NAME(TexCoord4sv); +vfmt->Vertex2d = NAME(Vertex2d); +vfmt->Vertex2i = NAME(Vertex2i); +vfmt->Vertex2s = NAME(Vertex2s); +vfmt->Vertex3d = NAME(Vertex3d); +vfmt->Vertex3i = NAME(Vertex3i); +vfmt->Vertex3s = NAME(Vertex3s); +vfmt->Vertex4d = NAME(Vertex4d); +vfmt->Vertex4i = NAME(Vertex4i); +vfmt->Vertex4s = NAME(Vertex4s); +vfmt->Vertex2dv = NAME(Vertex2dv); +vfmt->Vertex2iv = NAME(Vertex2iv); +vfmt->Vertex2sv = NAME(Vertex2sv); +vfmt->Vertex3dv = NAME(Vertex3dv); +vfmt->Vertex3iv = NAME(Vertex3iv); +vfmt->Vertex3sv = NAME(Vertex3sv); +vfmt->Vertex4dv = NAME(Vertex4dv); +vfmt->Vertex4iv = NAME(Vertex4iv); +vfmt->Vertex4sv = NAME(Vertex4sv); +vfmt->MultiTexCoord1d = NAME(MultiTexCoord1d); +vfmt->MultiTexCoord1dv = NAME(MultiTexCoord1dv); +vfmt->MultiTexCoord1i = NAME(MultiTexCoord1i); +vfmt->MultiTexCoord1iv = NAME(MultiTexCoord1iv); +vfmt->MultiTexCoord1s = NAME(MultiTexCoord1s); +vfmt->MultiTexCoord1sv = NAME(MultiTexCoord1sv); +vfmt->MultiTexCoord2d = NAME(MultiTexCoord2d); +vfmt->MultiTexCoord2dv = NAME(MultiTexCoord2dv); +vfmt->MultiTexCoord2i = NAME(MultiTexCoord2i); +vfmt->MultiTexCoord2iv = NAME(MultiTexCoord2iv); +vfmt->MultiTexCoord2s = NAME(MultiTexCoord2s); +vfmt->MultiTexCoord2sv = NAME(MultiTexCoord2sv); +vfmt->MultiTexCoord3d = NAME(MultiTexCoord3d); +vfmt->MultiTexCoord3dv = NAME(MultiTexCoord3dv); +vfmt->MultiTexCoord3i = NAME(MultiTexCoord3i); +vfmt->MultiTexCoord3iv = NAME(MultiTexCoord3iv); +vfmt->MultiTexCoord3s = NAME(MultiTexCoord3s); +vfmt->MultiTexCoord3sv = NAME(MultiTexCoord3sv); +vfmt->MultiTexCoord4d = NAME(MultiTexCoord4d); +vfmt->MultiTexCoord4dv = NAME(MultiTexCoord4dv); +vfmt->MultiTexCoord4i = NAME(MultiTexCoord4i); +vfmt->MultiTexCoord4iv = NAME(MultiTexCoord4iv); +vfmt->MultiTexCoord4s = NAME(MultiTexCoord4s); +vfmt->MultiTexCoord4sv = NAME(MultiTexCoord4sv); +vfmt->EvalCoord2dv = NAME(EvalCoord2dv); +vfmt->EvalCoord2d = NAME(EvalCoord2d); +vfmt->EvalCoord1dv = NAME(EvalCoord1dv); +vfmt->EvalCoord1d = NAME(EvalCoord1d); +vfmt->Materiali = NAME(Materiali); +vfmt->Materialiv = NAME(Materialiv); +vfmt->FogCoordd = NAME(FogCoordd); +vfmt->FogCoorddv = NAME(FogCoorddv); + +vfmt->VertexAttrib1sNV = NAME(VertexAttrib1sNV); +vfmt->VertexAttrib1dNV = NAME(VertexAttrib1dNV); +vfmt->VertexAttrib2sNV = NAME(VertexAttrib2sNV); +vfmt->VertexAttrib2dNV = NAME(VertexAttrib2dNV); +vfmt->VertexAttrib3sNV = NAME(VertexAttrib3sNV); +vfmt->VertexAttrib3dNV = NAME(VertexAttrib3dNV); +vfmt->VertexAttrib4sNV = NAME(VertexAttrib4sNV); +vfmt->VertexAttrib4dNV = NAME(VertexAttrib4dNV); +vfmt->VertexAttrib4ubNV = NAME(VertexAttrib4ubNV); +vfmt->VertexAttrib1svNV = NAME(VertexAttrib1svNV); +vfmt->VertexAttrib1dvNV = NAME(VertexAttrib1dvNV); +vfmt->VertexAttrib2svNV = NAME(VertexAttrib2svNV); +vfmt->VertexAttrib2dvNV = NAME(VertexAttrib2dvNV); +vfmt->VertexAttrib3svNV = NAME(VertexAttrib3svNV); +vfmt->VertexAttrib3dvNV = NAME(VertexAttrib3dvNV); +vfmt->VertexAttrib4svNV = NAME(VertexAttrib4svNV); +vfmt->VertexAttrib4dvNV = NAME(VertexAttrib4dvNV); +vfmt->VertexAttrib4ubvNV = NAME(VertexAttrib4ubvNV); +vfmt->VertexAttribs1svNV = NAME(VertexAttribs1svNV); +vfmt->VertexAttribs1fvNV = NAME(VertexAttribs1fvNV); +vfmt->VertexAttribs1dvNV = NAME(VertexAttribs1dvNV); +vfmt->VertexAttribs2svNV = NAME(VertexAttribs2svNV); +vfmt->VertexAttribs2fvNV = NAME(VertexAttribs2fvNV); +vfmt->VertexAttribs2dvNV = NAME(VertexAttribs2dvNV); +vfmt->VertexAttribs3svNV = NAME(VertexAttribs3svNV); +vfmt->VertexAttribs3fvNV = NAME(VertexAttribs3fvNV); +vfmt->VertexAttribs3dvNV = NAME(VertexAttribs3dvNV); +vfmt->VertexAttribs4svNV = NAME(VertexAttribs4svNV); +vfmt->VertexAttribs4fvNV = NAME(VertexAttribs4fvNV); +vfmt->VertexAttribs4dvNV = NAME(VertexAttribs4dvNV); +vfmt->VertexAttribs4ubvNV = NAME(VertexAttribs4ubvNV); + +vfmt->VertexAttrib1s = NAME(VertexAttrib1s); +vfmt->VertexAttrib1d = NAME(VertexAttrib1d); +vfmt->VertexAttrib2s = NAME(VertexAttrib2s); +vfmt->VertexAttrib2d = NAME(VertexAttrib2d); +vfmt->VertexAttrib3s = NAME(VertexAttrib3s); +vfmt->VertexAttrib3d = NAME(VertexAttrib3d); +vfmt->VertexAttrib4s = NAME(VertexAttrib4s); +vfmt->VertexAttrib4d = NAME(VertexAttrib4d); +vfmt->VertexAttrib1sv = NAME(VertexAttrib1sv); +vfmt->VertexAttrib1dv = NAME(VertexAttrib1dv); +vfmt->VertexAttrib2sv = NAME(VertexAttrib2sv); +vfmt->VertexAttrib2dv = NAME(VertexAttrib2dv); +vfmt->VertexAttrib3sv = NAME(VertexAttrib3sv); +vfmt->VertexAttrib3dv = NAME(VertexAttrib3dv); +vfmt->VertexAttrib4sv = NAME(VertexAttrib4sv); +vfmt->VertexAttrib4dv = NAME(VertexAttrib4dv); +vfmt->VertexAttrib4Nub = NAME(VertexAttrib4Nub); +vfmt->VertexAttrib4Nubv = NAME(VertexAttrib4Nubv); +vfmt->VertexAttrib4bv = NAME(VertexAttrib4bv); +vfmt->VertexAttrib4iv = NAME(VertexAttrib4iv); +vfmt->VertexAttrib4ubv = NAME(VertexAttrib4ubv); +vfmt->VertexAttrib4usv = NAME(VertexAttrib4usv); +vfmt->VertexAttrib4uiv = NAME(VertexAttrib4uiv); +vfmt->VertexAttrib4Nbv = NAME(VertexAttrib4Nbv); +vfmt->VertexAttrib4Nsv = NAME(VertexAttrib4Nsv); +vfmt->VertexAttrib4Nusv = NAME(VertexAttrib4Nusv); +vfmt->VertexAttrib4Niv = NAME(VertexAttrib4Niv); +vfmt->VertexAttrib4Nuiv = NAME(VertexAttrib4Nuiv); + +vfmt->VertexAttribI1iv = NAME(VertexAttribI1iv); +vfmt->VertexAttribI1uiv = NAME(VertexAttribI1uiv); +vfmt->VertexAttribI4bv = NAME(VertexAttribI4bv); +vfmt->VertexAttribI4sv = NAME(VertexAttribI4sv); +vfmt->VertexAttribI4ubv = NAME(VertexAttribI4ubv); +vfmt->VertexAttribI4usv = NAME(VertexAttribI4usv); diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c index 33ad61e..0203199 100644 --- a/src/mesa/vbo/vbo_save_api.c +++ b/src/mesa/vbo/vbo_save_api.c @@ -101,6 +101,14 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* An interesting VBO number/name to help with debugging */ #define VBO_BUF_ID 12345 +static void GLAPIENTRY +_save_Materialfv(GLenum face, GLenum pname, const GLfloat *params); + +static void GLAPIENTRY +_save_EvalCoord1f(GLfloat u); + +static void GLAPIENTRY +_save_EvalCoord2f(GLfloat u, GLfloat v); /* * NOTE: Old 'parity' issue is gone, but copying can still be @@ -1254,6 +1262,49 @@ _save_OBE_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) static void GLAPIENTRY +_save_OBE_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) +{ + _save_OBE_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); +} + +static void GLAPIENTRY +_save_OBE_Rectdv(const GLdouble *v1, const GLdouble *v2) +{ + _save_OBE_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); +} + +static void GLAPIENTRY +_save_OBE_Rectfv(const GLfloat *v1, const GLfloat *v2) +{ + _save_OBE_Rectf(v1[0], v1[1], v2[0], v2[1]); +} + +static void GLAPIENTRY +_save_OBE_Recti(GLint x1, GLint y1, GLint x2, GLint y2) +{ + _save_OBE_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); +} + +static void GLAPIENTRY +_save_OBE_Rectiv(const GLint *v1, const GLint *v2) +{ + _save_OBE_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); +} + +static void GLAPIENTRY +_save_OBE_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) +{ + _save_OBE_Rectf((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); +} + +static void GLAPIENTRY +_save_OBE_Rectsv(const GLshort *v1, const GLshort *v2) +{ + _save_OBE_Rectf((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); +} + + +static void GLAPIENTRY _save_OBE_DrawArrays(GLenum mode, GLint start, GLsizei count) { GET_CURRENT_CONTEXT(ctx); @@ -1522,6 +1573,14 @@ vbo_initialize_save_dispatch(const struct gl_context *ctx, SET_MultiDrawElementsEXT(exec, _save_OBE_MultiDrawElements); SET_MultiDrawElementsBaseVertex(exec, _save_OBE_MultiDrawElementsBaseVertex); SET_Rectf(exec, _save_OBE_Rectf); + SET_Rectd(exec, _save_OBE_Rectd); + SET_Rectdv(exec, _save_OBE_Rectdv); + SET_Rectfv(exec, _save_OBE_Rectfv); + SET_Recti(exec, _save_OBE_Recti); + SET_Rectiv(exec, _save_OBE_Rectiv); + SET_Rects(exec, _save_OBE_Rects); + SET_Rectsv(exec, _save_OBE_Rectsv); + /* Note: other glDraw functins aren't compiled into display lists */ }