1/** 2 * \file api_loopback.c 3 * 4 * \author Keith Whitwell <keithw@vmware.com> 5 */ 6 7/* 8 * Mesa 3-D graphics library 9 * 10 * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. 11 * 12 * Permission is hereby granted, free of charge, to any person obtaining a 13 * copy of this software and associated documentation files (the "Software"), 14 * to deal in the Software without restriction, including without limitation 15 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 16 * and/or sell copies of the Software, and to permit persons to whom the 17 * Software is furnished to do so, subject to the following conditions: 18 * 19 * The above copyright notice and this permission notice shall be included 20 * in all copies or substantial portions of the Software. 21 * 22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 23 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 25 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 26 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 27 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 28 * OTHER DEALINGS IN THE SOFTWARE. 29 */ 30 31 32#include "glheader.h" 33#include "macros.h" 34#include "api_loopback.h" 35#include "mtypes.h" 36#include "glapi/glapi.h" 37#include "main/dispatch.h" 38#include "main/context.h" 39 40/* KW: A set of functions to convert unusual Color/Normal/Vertex/etc 41 * calls to a smaller set of driver-provided formats. Currently just 42 * go back to dispatch to find these (eg. call glNormal3f directly), 43 * hence 'loopback'. 44 * 45 * The driver must supply all of the remaining entry points, which are 46 * listed in dd.h. The easiest way for a driver to do this is to 47 * install the supplied software t&l module. 48 */ 49#define COLORF(r,g,b,a) CALL_Color4f(GET_DISPATCH(), (r,g,b,a)) 50#define VERTEX2(x,y) CALL_Vertex2f(GET_DISPATCH(), (x,y)) 51#define VERTEX3(x,y,z) CALL_Vertex3f(GET_DISPATCH(), (x,y,z)) 52#define VERTEX4(x,y,z,w) CALL_Vertex4f(GET_DISPATCH(), (x,y,z,w)) 53#define NORMAL(x,y,z) CALL_Normal3f(GET_DISPATCH(), (x,y,z)) 54#define TEXCOORD1(s) CALL_TexCoord1f(GET_DISPATCH(), (s)) 55#define TEXCOORD2(s,t) CALL_TexCoord2f(GET_DISPATCH(), (s,t)) 56#define TEXCOORD3(s,t,u) CALL_TexCoord3f(GET_DISPATCH(), (s,t,u)) 57#define TEXCOORD4(s,t,u,v) CALL_TexCoord4f(GET_DISPATCH(), (s,t,u,v)) 58#define INDEX(c) CALL_Indexf(GET_DISPATCH(), (c)) 59#define MULTI_TEXCOORD1(z,s) CALL_MultiTexCoord1fARB(GET_DISPATCH(), (z,s)) 60#define MULTI_TEXCOORD2(z,s,t) CALL_MultiTexCoord2fARB(GET_DISPATCH(), (z,s,t)) 61#define MULTI_TEXCOORD3(z,s,t,u) CALL_MultiTexCoord3fARB(GET_DISPATCH(), (z,s,t,u)) 62#define MULTI_TEXCOORD4(z,s,t,u,v) CALL_MultiTexCoord4fARB(GET_DISPATCH(), (z,s,t,u,v)) 63#define EVALCOORD1(x) CALL_EvalCoord1f(GET_DISPATCH(), (x)) 64#define EVALCOORD2(x,y) CALL_EvalCoord2f(GET_DISPATCH(), (x,y)) 65#define MATERIALFV(a,b,c) CALL_Materialfv(GET_DISPATCH(), (a,b,c)) 66#define RECTF(a,b,c,d) CALL_Rectf(GET_DISPATCH(), (a,b,c,d)) 67 68#define FOGCOORDF(x) CALL_FogCoordfEXT(GET_DISPATCH(), (x)) 69#define SECONDARYCOLORF(a,b,c) CALL_SecondaryColor3fEXT(GET_DISPATCH(), (a,b,c)) 70 71#define ATTRIB1NV(index,x) CALL_VertexAttrib1fNV(GET_DISPATCH(), (index,x)) 72#define ATTRIB2NV(index,x,y) CALL_VertexAttrib2fNV(GET_DISPATCH(), (index,x,y)) 73#define ATTRIB3NV(index,x,y,z) CALL_VertexAttrib3fNV(GET_DISPATCH(), (index,x,y,z)) 74#define ATTRIB4NV(index,x,y,z,w) CALL_VertexAttrib4fNV(GET_DISPATCH(), (index,x,y,z,w)) 75 76#define ATTRIB1ARB(index,x) CALL_VertexAttrib1fARB(GET_DISPATCH(), (index,x)) 77#define ATTRIB2ARB(index,x,y) CALL_VertexAttrib2fARB(GET_DISPATCH(), (index,x,y)) 78#define ATTRIB3ARB(index,x,y,z) CALL_VertexAttrib3fARB(GET_DISPATCH(), (index,x,y,z)) 79#define ATTRIB4ARB(index,x,y,z,w) CALL_VertexAttrib4fARB(GET_DISPATCH(), (index,x,y,z,w)) 80 81#define ATTRIBI_1I(index,x) CALL_VertexAttribI1iEXT(GET_DISPATCH(), (index,x)) 82#define ATTRIBI_1UI(index,x) CALL_VertexAttribI1uiEXT(GET_DISPATCH(), (index,x)) 83#define ATTRIBI_4I(index,x,y,z,w) CALL_VertexAttribI4iEXT(GET_DISPATCH(), (index,x,y,z,w)) 84 85#define ATTRIBI_4UI(index,x,y,z,w) CALL_VertexAttribI4uiEXT(GET_DISPATCH(), (index,x,y,z,w)) 86 87#define ATTRIB1_D(index,x) CALL_VertexAttribL1d(GET_DISPATCH(), (index,x)) 88#define ATTRIB2_D(index,x,y) CALL_VertexAttribL2d(GET_DISPATCH(), (index,x,y)) 89#define ATTRIB3_D(index,x,y,z) CALL_VertexAttribL3d(GET_DISPATCH(), (index,x,y,z)) 90#define ATTRIB4_D(index,x,y,z,w) CALL_VertexAttribL4d(GET_DISPATCH(), (index,x,y,z,w)) 91 92void GLAPIENTRY 93_mesa_Color3b( GLbyte red, GLbyte green, GLbyte blue ) 94{ 95 COLORF( BYTE_TO_FLOAT(red), 96 BYTE_TO_FLOAT(green), 97 BYTE_TO_FLOAT(blue), 98 1.0 ); 99} 100 101void GLAPIENTRY 102_mesa_Color3d( GLdouble red, GLdouble green, GLdouble blue ) 103{ 104 COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, 1.0 ); 105} 106 107void GLAPIENTRY 108_mesa_Color3i( GLint red, GLint green, GLint blue ) 109{ 110 COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green), 111 INT_TO_FLOAT(blue), 1.0); 112} 113 114void GLAPIENTRY 115_mesa_Color3s( GLshort red, GLshort green, GLshort blue ) 116{ 117 COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green), 118 SHORT_TO_FLOAT(blue), 1.0); 119} 120 121void GLAPIENTRY 122_mesa_Color3ui( GLuint red, GLuint green, GLuint blue ) 123{ 124 COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green), 125 UINT_TO_FLOAT(blue), 1.0 ); 126} 127 128void GLAPIENTRY 129_mesa_Color3us( GLushort red, GLushort green, GLushort blue ) 130{ 131 COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green), 132 USHORT_TO_FLOAT(blue), 1.0 ); 133} 134 135void GLAPIENTRY 136_mesa_Color3ub( GLubyte red, GLubyte green, GLubyte blue ) 137{ 138 COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green), 139 UBYTE_TO_FLOAT(blue), 1.0 ); 140} 141 142 143void GLAPIENTRY 144_mesa_Color3bv( const GLbyte *v ) 145{ 146 COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), 147 BYTE_TO_FLOAT(v[2]), 1.0 ); 148} 149 150void GLAPIENTRY 151_mesa_Color3dv( const GLdouble *v ) 152{ 153 COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0 ); 154} 155 156void GLAPIENTRY 157_mesa_Color3iv( const GLint *v ) 158{ 159 COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), 160 INT_TO_FLOAT(v[2]), 1.0 ); 161} 162 163void GLAPIENTRY 164_mesa_Color3sv( const GLshort *v ) 165{ 166 COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), 167 SHORT_TO_FLOAT(v[2]), 1.0 ); 168} 169 170void GLAPIENTRY 171_mesa_Color3uiv( const GLuint *v ) 172{ 173 COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), 174 UINT_TO_FLOAT(v[2]), 1.0 ); 175} 176 177void GLAPIENTRY 178_mesa_Color3usv( const GLushort *v ) 179{ 180 COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), 181 USHORT_TO_FLOAT(v[2]), 1.0 ); 182} 183 184void GLAPIENTRY 185_mesa_Color3ubv( const GLubyte *v ) 186{ 187 COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), 188 UBYTE_TO_FLOAT(v[2]), 1.0 ); 189} 190 191 192void GLAPIENTRY 193_mesa_Color4b( GLbyte red, GLbyte green, GLbyte blue, 194 GLbyte alpha ) 195{ 196 COLORF( BYTE_TO_FLOAT(red), BYTE_TO_FLOAT(green), 197 BYTE_TO_FLOAT(blue), BYTE_TO_FLOAT(alpha) ); 198} 199 200void GLAPIENTRY 201_mesa_Color4d( GLdouble red, GLdouble green, GLdouble blue, 202 GLdouble alpha ) 203{ 204 COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, (GLfloat) alpha ); 205} 206 207void GLAPIENTRY 208_mesa_Color4i( GLint red, GLint green, GLint blue, GLint alpha ) 209{ 210 COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green), 211 INT_TO_FLOAT(blue), INT_TO_FLOAT(alpha) ); 212} 213 214void GLAPIENTRY 215_mesa_Color4s( GLshort red, GLshort green, GLshort blue, 216 GLshort alpha ) 217{ 218 COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green), 219 SHORT_TO_FLOAT(blue), SHORT_TO_FLOAT(alpha) ); 220} 221 222void GLAPIENTRY 223_mesa_Color4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha ) 224{ 225 COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green), 226 UINT_TO_FLOAT(blue), UINT_TO_FLOAT(alpha) ); 227} 228 229void GLAPIENTRY 230_mesa_Color4us( GLushort red, GLushort green, GLushort blue, GLushort alpha ) 231{ 232 COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green), 233 USHORT_TO_FLOAT(blue), USHORT_TO_FLOAT(alpha) ); 234} 235 236void GLAPIENTRY 237_mesa_Color4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) 238{ 239 COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green), 240 UBYTE_TO_FLOAT(blue), UBYTE_TO_FLOAT(alpha) ); 241} 242 243 244void GLAPIENTRY 245_mesa_Color4iv( const GLint *v ) 246{ 247 COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), 248 INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]) ); 249} 250 251 252void GLAPIENTRY 253_mesa_Color4bv( const GLbyte *v ) 254{ 255 COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), 256 BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]) ); 257} 258 259void GLAPIENTRY 260_mesa_Color4dv( const GLdouble *v ) 261{ 262 COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] ); 263} 264 265 266void GLAPIENTRY 267_mesa_Color4sv( const GLshort *v) 268{ 269 COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), 270 SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]) ); 271} 272 273 274void GLAPIENTRY 275_mesa_Color4uiv( const GLuint *v) 276{ 277 COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), 278 UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]) ); 279} 280 281void GLAPIENTRY 282_mesa_Color4usv( const GLushort *v) 283{ 284 COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), 285 USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]) ); 286} 287 288void GLAPIENTRY 289_mesa_Color4ubv( const GLubyte *v) 290{ 291 COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), 292 UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]) ); 293} 294 295 296void GLAPIENTRY 297_mesa_FogCoordd( GLdouble d ) 298{ 299 FOGCOORDF( (GLfloat) d ); 300} 301 302void GLAPIENTRY 303_mesa_FogCoorddv( const GLdouble *v ) 304{ 305 FOGCOORDF( (GLfloat) *v ); 306} 307 308 309void GLAPIENTRY 310_mesa_Indexd( GLdouble c ) 311{ 312 INDEX( (GLfloat) c ); 313} 314 315void GLAPIENTRY 316_mesa_Indexi( GLint c ) 317{ 318 INDEX( (GLfloat) c ); 319} 320 321void GLAPIENTRY 322_mesa_Indexs( GLshort c ) 323{ 324 INDEX( (GLfloat) c ); 325} 326 327void GLAPIENTRY 328_mesa_Indexub( GLubyte c ) 329{ 330 INDEX( (GLfloat) c ); 331} 332 333void GLAPIENTRY 334_mesa_Indexdv( const GLdouble *c ) 335{ 336 INDEX( (GLfloat) *c ); 337} 338 339void GLAPIENTRY 340_mesa_Indexiv( const GLint *c ) 341{ 342 INDEX( (GLfloat) *c ); 343} 344 345void GLAPIENTRY 346_mesa_Indexsv( const GLshort *c ) 347{ 348 INDEX( (GLfloat) *c ); 349} 350 351void GLAPIENTRY 352_mesa_Indexubv( const GLubyte *c ) 353{ 354 INDEX( (GLfloat) *c ); 355} 356 357 358void GLAPIENTRY 359_mesa_EdgeFlagv(const GLboolean *flag) 360{ 361 CALL_EdgeFlag(GET_DISPATCH(), (*flag)); 362} 363 364 365void GLAPIENTRY 366_mesa_Normal3b( GLbyte nx, GLbyte ny, GLbyte nz ) 367{ 368 NORMAL( BYTE_TO_FLOAT(nx), BYTE_TO_FLOAT(ny), BYTE_TO_FLOAT(nz) ); 369} 370 371void GLAPIENTRY 372_mesa_Normal3d( GLdouble nx, GLdouble ny, GLdouble nz ) 373{ 374 NORMAL((GLfloat) nx, (GLfloat) ny, (GLfloat) nz); 375} 376 377void GLAPIENTRY 378_mesa_Normal3i( GLint nx, GLint ny, GLint nz ) 379{ 380 NORMAL( INT_TO_FLOAT(nx), INT_TO_FLOAT(ny), INT_TO_FLOAT(nz) ); 381} 382 383void GLAPIENTRY 384_mesa_Normal3s( GLshort nx, GLshort ny, GLshort nz ) 385{ 386 NORMAL( SHORT_TO_FLOAT(nx), SHORT_TO_FLOAT(ny), SHORT_TO_FLOAT(nz) ); 387} 388 389void GLAPIENTRY 390_mesa_Normal3bv( const GLbyte *v ) 391{ 392 NORMAL( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]) ); 393} 394 395void GLAPIENTRY 396_mesa_Normal3dv( const GLdouble *v ) 397{ 398 NORMAL( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); 399} 400 401void GLAPIENTRY 402_mesa_Normal3iv( const GLint *v ) 403{ 404 NORMAL( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]) ); 405} 406 407void GLAPIENTRY 408_mesa_Normal3sv( const GLshort *v ) 409{ 410 NORMAL( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]) ); 411} 412 413void GLAPIENTRY 414_mesa_TexCoord1d( GLdouble s ) 415{ 416 TEXCOORD1((GLfloat) s); 417} 418 419void GLAPIENTRY 420_mesa_TexCoord1i( GLint s ) 421{ 422 TEXCOORD1((GLfloat) s); 423} 424 425void GLAPIENTRY 426_mesa_TexCoord1s( GLshort s ) 427{ 428 TEXCOORD1((GLfloat) s); 429} 430 431void GLAPIENTRY 432_mesa_TexCoord2d( GLdouble s, GLdouble t ) 433{ 434 TEXCOORD2((GLfloat) s,(GLfloat) t); 435} 436 437void GLAPIENTRY 438_mesa_TexCoord2s( GLshort s, GLshort t ) 439{ 440 TEXCOORD2((GLfloat) s,(GLfloat) t); 441} 442 443void GLAPIENTRY 444_mesa_TexCoord2i( GLint s, GLint t ) 445{ 446 TEXCOORD2((GLfloat) s,(GLfloat) t); 447} 448 449void GLAPIENTRY 450_mesa_TexCoord3d( GLdouble s, GLdouble t, GLdouble r ) 451{ 452 TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); 453} 454 455void GLAPIENTRY 456_mesa_TexCoord3i( GLint s, GLint t, GLint r ) 457{ 458 TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); 459} 460 461void GLAPIENTRY 462_mesa_TexCoord3s( GLshort s, GLshort t, GLshort r ) 463{ 464 TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); 465} 466 467void GLAPIENTRY 468_mesa_TexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ) 469{ 470 TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); 471} 472 473void GLAPIENTRY 474_mesa_TexCoord4i( GLint s, GLint t, GLint r, GLint q ) 475{ 476 TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); 477} 478 479void GLAPIENTRY 480_mesa_TexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ) 481{ 482 TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); 483} 484 485void GLAPIENTRY 486_mesa_TexCoord1dv( const GLdouble *v ) 487{ 488 TEXCOORD1((GLfloat) v[0]); 489} 490 491void GLAPIENTRY 492_mesa_TexCoord1iv( const GLint *v ) 493{ 494 TEXCOORD1((GLfloat) v[0]); 495} 496 497void GLAPIENTRY 498_mesa_TexCoord1sv( const GLshort *v ) 499{ 500 TEXCOORD1((GLfloat) v[0]); 501} 502 503void GLAPIENTRY 504_mesa_TexCoord2dv( const GLdouble *v ) 505{ 506 TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); 507} 508 509void GLAPIENTRY 510_mesa_TexCoord2iv( const GLint *v ) 511{ 512 TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); 513} 514 515void GLAPIENTRY 516_mesa_TexCoord2sv( const GLshort *v ) 517{ 518 TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); 519} 520 521void GLAPIENTRY 522_mesa_TexCoord3dv( const GLdouble *v ) 523{ 524 TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); 525} 526 527void GLAPIENTRY 528_mesa_TexCoord3iv( const GLint *v ) 529{ 530 TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); 531} 532 533void GLAPIENTRY 534_mesa_TexCoord3sv( const GLshort *v ) 535{ 536 TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); 537} 538 539void GLAPIENTRY 540_mesa_TexCoord4dv( const GLdouble *v ) 541{ 542 TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); 543} 544 545void GLAPIENTRY 546_mesa_TexCoord4iv( const GLint *v ) 547{ 548 TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); 549} 550 551void GLAPIENTRY 552_mesa_TexCoord4sv( const GLshort *v ) 553{ 554 TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); 555} 556 557void GLAPIENTRY 558_mesa_Vertex2d( GLdouble x, GLdouble y ) 559{ 560 VERTEX2( (GLfloat) x, (GLfloat) y ); 561} 562 563void GLAPIENTRY 564_mesa_Vertex2i( GLint x, GLint y ) 565{ 566 VERTEX2( (GLfloat) x, (GLfloat) y ); 567} 568 569void GLAPIENTRY 570_mesa_Vertex2s( GLshort x, GLshort y ) 571{ 572 VERTEX2( (GLfloat) x, (GLfloat) y ); 573} 574 575void GLAPIENTRY 576_mesa_Vertex3d( GLdouble x, GLdouble y, GLdouble z ) 577{ 578 VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); 579} 580 581void GLAPIENTRY 582_mesa_Vertex3i( GLint x, GLint y, GLint z ) 583{ 584 VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); 585} 586 587void GLAPIENTRY 588_mesa_Vertex3s( GLshort x, GLshort y, GLshort z ) 589{ 590 VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); 591} 592 593void GLAPIENTRY 594_mesa_Vertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ) 595{ 596 VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); 597} 598 599void GLAPIENTRY 600_mesa_Vertex4i( GLint x, GLint y, GLint z, GLint w ) 601{ 602 VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); 603} 604 605void GLAPIENTRY 606_mesa_Vertex4s( GLshort x, GLshort y, GLshort z, GLshort w ) 607{ 608 VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); 609} 610 611void GLAPIENTRY 612_mesa_Vertex2dv( const GLdouble *v ) 613{ 614 VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); 615} 616 617void GLAPIENTRY 618_mesa_Vertex2iv( const GLint *v ) 619{ 620 VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); 621} 622 623void GLAPIENTRY 624_mesa_Vertex2sv( const GLshort *v ) 625{ 626 VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); 627} 628 629void GLAPIENTRY 630_mesa_Vertex3dv( const GLdouble *v ) 631{ 632 if (v[2] == 0.0) 633 VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); 634 else 635 VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); 636} 637 638void GLAPIENTRY 639_mesa_Vertex3iv( const GLint *v ) 640{ 641 VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); 642} 643 644void GLAPIENTRY 645_mesa_Vertex3sv( const GLshort *v ) 646{ 647 VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); 648} 649 650void GLAPIENTRY 651_mesa_Vertex4dv( const GLdouble *v ) 652{ 653 VERTEX4( (GLfloat) v[0], (GLfloat) v[1], 654 (GLfloat) v[2], (GLfloat) v[3] ); 655} 656 657void GLAPIENTRY 658_mesa_Vertex4iv( const GLint *v ) 659{ 660 VERTEX4( (GLfloat) v[0], (GLfloat) v[1], 661 (GLfloat) v[2], (GLfloat) v[3] ); 662} 663 664void GLAPIENTRY 665_mesa_Vertex4sv( const GLshort *v ) 666{ 667 VERTEX4( (GLfloat) v[0], (GLfloat) v[1], 668 (GLfloat) v[2], (GLfloat) v[3] ); 669} 670 671void GLAPIENTRY 672_mesa_MultiTexCoord1d(GLenum target, GLdouble s) 673{ 674 MULTI_TEXCOORD1( target, (GLfloat) s ); 675} 676 677void GLAPIENTRY 678_mesa_MultiTexCoord1dv(GLenum target, const GLdouble *v) 679{ 680 MULTI_TEXCOORD1( target, (GLfloat) v[0] ); 681} 682 683void GLAPIENTRY 684_mesa_MultiTexCoord1i(GLenum target, GLint s) 685{ 686 MULTI_TEXCOORD1( target, (GLfloat) s ); 687} 688 689void GLAPIENTRY 690_mesa_MultiTexCoord1iv(GLenum target, const GLint *v) 691{ 692 MULTI_TEXCOORD1( target, (GLfloat) v[0] ); 693} 694 695void GLAPIENTRY 696_mesa_MultiTexCoord1s(GLenum target, GLshort s) 697{ 698 MULTI_TEXCOORD1( target, (GLfloat) s ); 699} 700 701void GLAPIENTRY 702_mesa_MultiTexCoord1sv(GLenum target, const GLshort *v) 703{ 704 MULTI_TEXCOORD1( target, (GLfloat) v[0] ); 705} 706 707void GLAPIENTRY 708_mesa_MultiTexCoord2d(GLenum target, GLdouble s, GLdouble t) 709{ 710 MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); 711} 712 713void GLAPIENTRY 714_mesa_MultiTexCoord2dv(GLenum target, const GLdouble *v) 715{ 716 MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); 717} 718 719void GLAPIENTRY 720_mesa_MultiTexCoord2i(GLenum target, GLint s, GLint t) 721{ 722 MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); 723} 724 725void GLAPIENTRY 726_mesa_MultiTexCoord2iv(GLenum target, const GLint *v) 727{ 728 MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); 729} 730 731void GLAPIENTRY 732_mesa_MultiTexCoord2s(GLenum target, GLshort s, GLshort t) 733{ 734 MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); 735} 736 737void GLAPIENTRY 738_mesa_MultiTexCoord2sv(GLenum target, const GLshort *v) 739{ 740 MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); 741} 742 743void GLAPIENTRY 744_mesa_MultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r) 745{ 746 MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); 747} 748 749void GLAPIENTRY 750_mesa_MultiTexCoord3dv(GLenum target, const GLdouble *v) 751{ 752 MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); 753} 754 755void GLAPIENTRY 756_mesa_MultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r) 757{ 758 MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); 759} 760 761void GLAPIENTRY 762_mesa_MultiTexCoord3iv(GLenum target, const GLint *v) 763{ 764 MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); 765} 766 767void GLAPIENTRY 768_mesa_MultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r) 769{ 770 MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); 771} 772 773void GLAPIENTRY 774_mesa_MultiTexCoord3sv(GLenum target, const GLshort *v) 775{ 776 MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); 777} 778 779void GLAPIENTRY 780_mesa_MultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) 781{ 782 MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, 783 (GLfloat) r, (GLfloat) q ); 784} 785 786void GLAPIENTRY 787_mesa_MultiTexCoord4dv(GLenum target, const GLdouble *v) 788{ 789 MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], 790 (GLfloat) v[2], (GLfloat) v[3] ); 791} 792 793void GLAPIENTRY 794_mesa_MultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q) 795{ 796 MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, 797 (GLfloat) r, (GLfloat) q ); 798} 799 800void GLAPIENTRY 801_mesa_MultiTexCoord4iv(GLenum target, const GLint *v) 802{ 803 MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], 804 (GLfloat) v[2], (GLfloat) v[3] ); 805} 806 807void GLAPIENTRY 808_mesa_MultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) 809{ 810 MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, 811 (GLfloat) r, (GLfloat) q ); 812} 813 814void GLAPIENTRY 815_mesa_MultiTexCoord4sv(GLenum target, const GLshort *v) 816{ 817 MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], 818 (GLfloat) v[2], (GLfloat) v[3] ); 819} 820 821void GLAPIENTRY 822_mesa_EvalCoord2dv( const GLdouble *u ) 823{ 824 EVALCOORD2( (GLfloat) u[0], (GLfloat) u[1] ); 825} 826 827void GLAPIENTRY 828_mesa_EvalCoord2fv( const GLfloat *u ) 829{ 830 EVALCOORD2( u[0], u[1] ); 831} 832 833void GLAPIENTRY 834_mesa_EvalCoord2d( GLdouble u, GLdouble v ) 835{ 836 EVALCOORD2( (GLfloat) u, (GLfloat) v ); 837} 838 839void GLAPIENTRY 840_mesa_EvalCoord1dv( const GLdouble *u ) 841{ 842 EVALCOORD1( (GLfloat) *u ); 843} 844 845void GLAPIENTRY 846_mesa_EvalCoord1fv( const GLfloat *u ) 847{ 848 EVALCOORD1( (GLfloat) *u ); 849} 850 851void GLAPIENTRY 852_mesa_EvalCoord1d( GLdouble u ) 853{ 854 EVALCOORD1( (GLfloat) u ); 855} 856 857void GLAPIENTRY 858_mesa_Materialf( GLenum face, GLenum pname, GLfloat param ) 859{ 860 GLfloat fparam[4]; 861 fparam[0] = param; 862 MATERIALFV( face, pname, fparam ); 863} 864 865void GLAPIENTRY 866_mesa_Materiali(GLenum face, GLenum pname, GLint param ) 867{ 868 GLfloat p = (GLfloat) param; 869 MATERIALFV(face, pname, &p); 870} 871 872void GLAPIENTRY 873_mesa_Materialiv(GLenum face, GLenum pname, const GLint *params ) 874{ 875 GLfloat fparam[4]; 876 switch (pname) { 877 case GL_AMBIENT: 878 case GL_DIFFUSE: 879 case GL_SPECULAR: 880 case GL_EMISSION: 881 case GL_AMBIENT_AND_DIFFUSE: 882 fparam[0] = INT_TO_FLOAT( params[0] ); 883 fparam[1] = INT_TO_FLOAT( params[1] ); 884 fparam[2] = INT_TO_FLOAT( params[2] ); 885 fparam[3] = INT_TO_FLOAT( params[3] ); 886 break; 887 case GL_SHININESS: 888 fparam[0] = (GLfloat) params[0]; 889 break; 890 case GL_COLOR_INDEXES: 891 fparam[0] = (GLfloat) params[0]; 892 fparam[1] = (GLfloat) params[1]; 893 fparam[2] = (GLfloat) params[2]; 894 break; 895 default: 896 ; 897 } 898 MATERIALFV(face, pname, fparam); 899} 900 901 902void GLAPIENTRY 903_mesa_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) 904{ 905 RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); 906} 907 908void GLAPIENTRY 909_mesa_Rectdv(const GLdouble *v1, const GLdouble *v2) 910{ 911 RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); 912} 913 914void GLAPIENTRY 915_mesa_Rectfv(const GLfloat *v1, const GLfloat *v2) 916{ 917 RECTF(v1[0], v1[1], v2[0], v2[1]); 918} 919 920void GLAPIENTRY 921_mesa_Recti(GLint x1, GLint y1, GLint x2, GLint y2) 922{ 923 RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); 924} 925 926void GLAPIENTRY 927_mesa_Rectiv(const GLint *v1, const GLint *v2) 928{ 929 RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); 930} 931 932void GLAPIENTRY 933_mesa_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) 934{ 935 RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); 936} 937 938void GLAPIENTRY 939_mesa_Rectsv(const GLshort *v1, const GLshort *v2) 940{ 941 RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); 942} 943 944void GLAPIENTRY 945_mesa_SecondaryColor3b( GLbyte red, GLbyte green, GLbyte blue ) 946{ 947 SECONDARYCOLORF( BYTE_TO_FLOAT(red), 948 BYTE_TO_FLOAT(green), 949 BYTE_TO_FLOAT(blue) ); 950} 951 952void GLAPIENTRY 953_mesa_SecondaryColor3d( GLdouble red, GLdouble green, GLdouble blue ) 954{ 955 SECONDARYCOLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue ); 956} 957 958void GLAPIENTRY 959_mesa_SecondaryColor3i( GLint red, GLint green, GLint blue ) 960{ 961 SECONDARYCOLORF( INT_TO_FLOAT(red), 962 INT_TO_FLOAT(green), 963 INT_TO_FLOAT(blue)); 964} 965 966void GLAPIENTRY 967_mesa_SecondaryColor3s( GLshort red, GLshort green, GLshort blue ) 968{ 969 SECONDARYCOLORF(SHORT_TO_FLOAT(red), 970 SHORT_TO_FLOAT(green), 971 SHORT_TO_FLOAT(blue)); 972} 973 974void GLAPIENTRY 975_mesa_SecondaryColor3ui( GLuint red, GLuint green, GLuint blue ) 976{ 977 SECONDARYCOLORF(UINT_TO_FLOAT(red), 978 UINT_TO_FLOAT(green), 979 UINT_TO_FLOAT(blue)); 980} 981 982void GLAPIENTRY 983_mesa_SecondaryColor3us( GLushort red, GLushort green, GLushort blue ) 984{ 985 SECONDARYCOLORF(USHORT_TO_FLOAT(red), 986 USHORT_TO_FLOAT(green), 987 USHORT_TO_FLOAT(blue)); 988} 989 990void GLAPIENTRY 991_mesa_SecondaryColor3ub( GLubyte red, GLubyte green, GLubyte blue ) 992{ 993 SECONDARYCOLORF(UBYTE_TO_FLOAT(red), 994 UBYTE_TO_FLOAT(green), 995 UBYTE_TO_FLOAT(blue)); 996} 997 998void GLAPIENTRY 999_mesa_SecondaryColor3bv( const GLbyte *v ) 1000{ 1001 SECONDARYCOLORF(BYTE_TO_FLOAT(v[0]), 1002 BYTE_TO_FLOAT(v[1]), 1003 BYTE_TO_FLOAT(v[2])); 1004} 1005 1006void GLAPIENTRY 1007_mesa_SecondaryColor3dv( const GLdouble *v ) 1008{ 1009 SECONDARYCOLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); 1010} 1011void GLAPIENTRY 1012_mesa_SecondaryColor3iv( const GLint *v ) 1013{ 1014 SECONDARYCOLORF(INT_TO_FLOAT(v[0]), 1015 INT_TO_FLOAT(v[1]), 1016 INT_TO_FLOAT(v[2])); 1017} 1018 1019void GLAPIENTRY 1020_mesa_SecondaryColor3sv( const GLshort *v ) 1021{ 1022 SECONDARYCOLORF(SHORT_TO_FLOAT(v[0]), 1023 SHORT_TO_FLOAT(v[1]), 1024 SHORT_TO_FLOAT(v[2])); 1025} 1026 1027void GLAPIENTRY 1028_mesa_SecondaryColor3uiv( const GLuint *v ) 1029{ 1030 SECONDARYCOLORF(UINT_TO_FLOAT(v[0]), 1031 UINT_TO_FLOAT(v[1]), 1032 UINT_TO_FLOAT(v[2])); 1033} 1034 1035void GLAPIENTRY 1036_mesa_SecondaryColor3usv( const GLushort *v ) 1037{ 1038 SECONDARYCOLORF(USHORT_TO_FLOAT(v[0]), 1039 USHORT_TO_FLOAT(v[1]), 1040 USHORT_TO_FLOAT(v[2])); 1041} 1042 1043void GLAPIENTRY 1044_mesa_SecondaryColor3ubv( const GLubyte *v ) 1045{ 1046 SECONDARYCOLORF(UBYTE_TO_FLOAT(v[0]), 1047 UBYTE_TO_FLOAT(v[1]), 1048 UBYTE_TO_FLOAT(v[2])); 1049} 1050 1051 1052/* 1053 * GL_NV_vertex_program: 1054 * Always loop-back to one of the VertexAttrib[1234]f[v]NV functions. 1055 * Note that attribute indexes DO alias conventional vertex attributes. 1056 */ 1057 1058void GLAPIENTRY 1059_mesa_VertexAttrib1sNV(GLuint index, GLshort x) 1060{ 1061 ATTRIB1NV(index, (GLfloat) x); 1062} 1063 1064void GLAPIENTRY 1065_mesa_VertexAttrib1dNV(GLuint index, GLdouble x) 1066{ 1067 ATTRIB1NV(index, (GLfloat) x); 1068} 1069 1070void GLAPIENTRY 1071_mesa_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y) 1072{ 1073 ATTRIB2NV(index, (GLfloat) x, y); 1074} 1075 1076void GLAPIENTRY 1077_mesa_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y) 1078{ 1079 ATTRIB2NV(index, (GLfloat) x, (GLfloat) y); 1080} 1081 1082void GLAPIENTRY 1083_mesa_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z) 1084{ 1085 ATTRIB3NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z); 1086} 1087 1088void GLAPIENTRY 1089_mesa_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z) 1090{ 1091 ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); 1092} 1093 1094void GLAPIENTRY 1095_mesa_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) 1096{ 1097 ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); 1098} 1099 1100void GLAPIENTRY 1101_mesa_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) 1102{ 1103 ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); 1104} 1105 1106void GLAPIENTRY 1107_mesa_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) 1108{ 1109 ATTRIB4NV(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), 1110 UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); 1111} 1112 1113void GLAPIENTRY 1114_mesa_VertexAttrib1svNV(GLuint index, const GLshort *v) 1115{ 1116 ATTRIB1NV(index, (GLfloat) v[0]); 1117} 1118 1119void GLAPIENTRY 1120_mesa_VertexAttrib1dvNV(GLuint index, const GLdouble *v) 1121{ 1122 ATTRIB1NV(index, (GLfloat) v[0]); 1123} 1124 1125void GLAPIENTRY 1126_mesa_VertexAttrib2svNV(GLuint index, const GLshort *v) 1127{ 1128 ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]); 1129} 1130 1131void GLAPIENTRY 1132_mesa_VertexAttrib2dvNV(GLuint index, const GLdouble *v) 1133{ 1134 ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]); 1135} 1136 1137void GLAPIENTRY 1138_mesa_VertexAttrib3svNV(GLuint index, const GLshort *v) 1139{ 1140 ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); 1141} 1142 1143void GLAPIENTRY 1144_mesa_VertexAttrib3dvNV(GLuint index, const GLdouble *v) 1145{ 1146 ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); 1147} 1148 1149void GLAPIENTRY 1150_mesa_VertexAttrib4svNV(GLuint index, const GLshort *v) 1151{ 1152 ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1153 (GLfloat)v[3]); 1154} 1155 1156void GLAPIENTRY 1157_mesa_VertexAttrib4dvNV(GLuint index, const GLdouble *v) 1158{ 1159 ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); 1160} 1161 1162void GLAPIENTRY 1163_mesa_VertexAttrib4ubvNV(GLuint index, const GLubyte *v) 1164{ 1165 ATTRIB4NV(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), 1166 UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); 1167} 1168 1169 1170void GLAPIENTRY 1171_mesa_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v) 1172{ 1173 GLint i; 1174 for (i = n - 1; i >= 0; i--) 1175 _mesa_VertexAttrib1svNV(index + i, v + i); 1176} 1177 1178void GLAPIENTRY 1179_mesa_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v) 1180{ 1181 GLint i; 1182 for (i = n - 1; i >= 0; i--) 1183 ATTRIB1NV(index + i, v[i]); 1184} 1185 1186void GLAPIENTRY 1187_mesa_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v) 1188{ 1189 GLint i; 1190 for (i = n - 1; i >= 0; i--) 1191 _mesa_VertexAttrib1dvNV(index + i, v + i); 1192} 1193 1194void GLAPIENTRY 1195_mesa_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v) 1196{ 1197 GLint i; 1198 for (i = n - 1; i >= 0; i--) 1199 _mesa_VertexAttrib2svNV(index + i, v + 2 * i); 1200} 1201 1202void GLAPIENTRY 1203_mesa_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v) 1204{ 1205 GLint i; 1206 for (i = n - 1; i >= 0; i--) 1207 ATTRIB2NV(index + i, v[2 * i], v[2 * i + 1]); 1208} 1209 1210void GLAPIENTRY 1211_mesa_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v) 1212{ 1213 GLint i; 1214 for (i = n - 1; i >= 0; i--) 1215 _mesa_VertexAttrib2dvNV(index + i, v + 2 * i); 1216} 1217 1218void GLAPIENTRY 1219_mesa_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v) 1220{ 1221 GLint i; 1222 for (i = n - 1; i >= 0; i--) 1223 _mesa_VertexAttrib3svNV(index + i, v + 3 * i); 1224} 1225 1226void GLAPIENTRY 1227_mesa_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v) 1228{ 1229 GLint i; 1230 for (i = n - 1; i >= 0; i--) 1231 ATTRIB3NV(index + i, v[3 * i], v[3 * i + 1], v[3 * i + 2]); 1232} 1233 1234void GLAPIENTRY 1235_mesa_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v) 1236{ 1237 GLint i; 1238 for (i = n - 1; i >= 0; i--) 1239 _mesa_VertexAttrib3dvNV(index + i, v + 3 * i); 1240} 1241 1242void GLAPIENTRY 1243_mesa_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v) 1244{ 1245 GLint i; 1246 for (i = n - 1; i >= 0; i--) 1247 _mesa_VertexAttrib4svNV(index + i, v + 4 * i); 1248} 1249 1250void GLAPIENTRY 1251_mesa_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v) 1252{ 1253 GLint i; 1254 for (i = n - 1; i >= 0; i--) 1255 ATTRIB4NV(index + i, v[4 * i], v[4 * i + 1], v[4 * i + 2], v[4 * i + 3]); 1256} 1257 1258void GLAPIENTRY 1259_mesa_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v) 1260{ 1261 GLint i; 1262 for (i = n - 1; i >= 0; i--) 1263 _mesa_VertexAttrib4dvNV(index + i, v + 4 * i); 1264} 1265 1266void GLAPIENTRY 1267_mesa_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v) 1268{ 1269 GLint i; 1270 for (i = n - 1; i >= 0; i--) 1271 _mesa_VertexAttrib4ubvNV(index + i, v + 4 * i); 1272} 1273 1274 1275/* 1276 * GL_ARB_vertex_program 1277 * Always loop-back to one of the VertexAttrib[1234]f[v]ARB functions. 1278 * Note that attribute indexes do NOT alias conventional attributes. 1279 */ 1280 1281void GLAPIENTRY 1282_mesa_VertexAttrib1s(GLuint index, GLshort x) 1283{ 1284 ATTRIB1ARB(index, (GLfloat) x); 1285} 1286 1287void GLAPIENTRY 1288_mesa_VertexAttrib1d(GLuint index, GLdouble x) 1289{ 1290 ATTRIB1ARB(index, (GLfloat) x); 1291} 1292 1293void GLAPIENTRY 1294_mesa_VertexAttrib2s(GLuint index, GLshort x, GLshort y) 1295{ 1296 ATTRIB2ARB(index, (GLfloat) x, y); 1297} 1298 1299void GLAPIENTRY 1300_mesa_VertexAttrib2d(GLuint index, GLdouble x, GLdouble y) 1301{ 1302 ATTRIB2ARB(index, (GLfloat) x, (GLfloat) y); 1303} 1304 1305void GLAPIENTRY 1306_mesa_VertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z) 1307{ 1308 ATTRIB3ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z); 1309} 1310 1311void GLAPIENTRY 1312_mesa_VertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z) 1313{ 1314 ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); 1315} 1316 1317void GLAPIENTRY 1318_mesa_VertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) 1319{ 1320 ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); 1321} 1322 1323void GLAPIENTRY 1324_mesa_VertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) 1325{ 1326 ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); 1327} 1328 1329void GLAPIENTRY 1330_mesa_VertexAttrib1sv(GLuint index, const GLshort *v) 1331{ 1332 ATTRIB1ARB(index, (GLfloat) v[0]); 1333} 1334 1335void GLAPIENTRY 1336_mesa_VertexAttrib1dv(GLuint index, const GLdouble *v) 1337{ 1338 ATTRIB1ARB(index, (GLfloat) v[0]); 1339} 1340 1341void GLAPIENTRY 1342_mesa_VertexAttrib2sv(GLuint index, const GLshort *v) 1343{ 1344 ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]); 1345} 1346 1347void GLAPIENTRY 1348_mesa_VertexAttrib2dv(GLuint index, const GLdouble *v) 1349{ 1350 ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]); 1351} 1352 1353void GLAPIENTRY 1354_mesa_VertexAttrib3sv(GLuint index, const GLshort *v) 1355{ 1356 ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); 1357} 1358 1359void GLAPIENTRY 1360_mesa_VertexAttrib3dv(GLuint index, const GLdouble *v) 1361{ 1362 ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); 1363} 1364 1365void GLAPIENTRY 1366_mesa_VertexAttrib4sv(GLuint index, const GLshort *v) 1367{ 1368 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1369 (GLfloat)v[3]); 1370} 1371 1372void GLAPIENTRY 1373_mesa_VertexAttrib4dv(GLuint index, const GLdouble *v) 1374{ 1375 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); 1376} 1377 1378void GLAPIENTRY 1379_mesa_VertexAttrib4bv(GLuint index, const GLbyte * v) 1380{ 1381 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); 1382} 1383 1384void GLAPIENTRY 1385_mesa_VertexAttrib4iv(GLuint index, const GLint * v) 1386{ 1387 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); 1388} 1389 1390void GLAPIENTRY 1391_mesa_VertexAttrib4ubv(GLuint index, const GLubyte * v) 1392{ 1393 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); 1394} 1395 1396void GLAPIENTRY 1397_mesa_VertexAttrib4usv(GLuint index, const GLushort * v) 1398{ 1399 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); 1400} 1401 1402void GLAPIENTRY 1403_mesa_VertexAttrib4uiv(GLuint index, const GLuint * v) 1404{ 1405 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); 1406} 1407 1408void GLAPIENTRY 1409_mesa_VertexAttrib4Nbv(GLuint index, const GLbyte * v) 1410{ 1411 ATTRIB4ARB(index, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), 1412 BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3])); 1413} 1414 1415void GLAPIENTRY 1416_mesa_VertexAttrib4Nsv(GLuint index, const GLshort * v) 1417{ 1418 ATTRIB4ARB(index, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), 1419 SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3])); 1420} 1421 1422void GLAPIENTRY 1423_mesa_VertexAttrib4Niv(GLuint index, const GLint * v) 1424{ 1425 ATTRIB4ARB(index, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), 1426 INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3])); 1427} 1428 1429void GLAPIENTRY 1430_mesa_VertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) 1431{ 1432 ATTRIB4ARB(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), 1433 UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); 1434} 1435 1436void GLAPIENTRY 1437_mesa_VertexAttrib4Nubv(GLuint index, const GLubyte * v) 1438{ 1439 ATTRIB4ARB(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), 1440 UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); 1441} 1442 1443void GLAPIENTRY 1444_mesa_VertexAttrib4Nusv(GLuint index, const GLushort * v) 1445{ 1446 ATTRIB4ARB(index, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), 1447 USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3])); 1448} 1449 1450void GLAPIENTRY 1451_mesa_VertexAttrib4Nuiv(GLuint index, const GLuint * v) 1452{ 1453 ATTRIB4ARB(index, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), 1454 UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3])); 1455} 1456 1457 1458 1459/** 1460 * GL_EXT_gpu_shader / GL 3.0 signed/unsigned integer-valued attributes. 1461 * Note that attribute indexes do NOT alias conventional attributes. 1462 */ 1463 1464void GLAPIENTRY 1465_mesa_VertexAttribI1iv(GLuint index, const GLint *v) 1466{ 1467 ATTRIBI_1I(index, v[0]); 1468} 1469 1470void GLAPIENTRY 1471_mesa_VertexAttribI1uiv(GLuint index, const GLuint *v) 1472{ 1473 ATTRIBI_1UI(index, v[0]); 1474} 1475 1476void GLAPIENTRY 1477_mesa_VertexAttribI4bv(GLuint index, const GLbyte *v) 1478{ 1479 ATTRIBI_4I(index, v[0], v[1], v[2], v[3]); 1480} 1481 1482void GLAPIENTRY 1483_mesa_VertexAttribI4sv(GLuint index, const GLshort *v) 1484{ 1485 ATTRIBI_4I(index, v[0], v[1], v[2], v[3]); 1486} 1487 1488void GLAPIENTRY 1489_mesa_VertexAttribI4ubv(GLuint index, const GLubyte *v) 1490{ 1491 ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]); 1492} 1493 1494void GLAPIENTRY 1495_mesa_VertexAttribI4usv(GLuint index, const GLushort *v) 1496{ 1497 ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]); 1498} 1499 1500void GLAPIENTRY 1501_mesa_VertexAttribL1d(GLuint index, GLdouble x) 1502{ 1503 ATTRIB1_D(index, x); 1504} 1505 1506void GLAPIENTRY 1507_mesa_VertexAttribL2d(GLuint index, GLdouble x, GLdouble y) 1508{ 1509 ATTRIB2_D(index, x, y); 1510} 1511 1512void GLAPIENTRY 1513_mesa_VertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z) 1514{ 1515 ATTRIB3_D(index, x, y, z); 1516} 1517 1518void GLAPIENTRY 1519_mesa_VertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) 1520{ 1521 ATTRIB4_D(index, x, y, z, w); 1522} 1523 1524void GLAPIENTRY 1525_mesa_VertexAttribL1dv(GLuint index, const GLdouble *v) 1526{ 1527 ATTRIB1_D(index, v[0]); 1528} 1529 1530void GLAPIENTRY 1531_mesa_VertexAttribL2dv(GLuint index, const GLdouble *v) 1532{ 1533 ATTRIB2_D(index, v[0], v[1]); 1534} 1535 1536void GLAPIENTRY 1537_mesa_VertexAttribL3dv(GLuint index, const GLdouble *v) 1538{ 1539 ATTRIB3_D(index, v[0], v[1], v[2]); 1540} 1541 1542void GLAPIENTRY 1543_mesa_VertexAttribL4dv(GLuint index, const GLdouble *v) 1544{ 1545 ATTRIB4_D(index, v[0], v[1], v[2], v[3]); 1546} 1547 1548/* 1549 * This code never registers handlers for any of the entry points 1550 * listed in vtxfmt.h. 1551 */ 1552void 1553_mesa_loopback_init_api_table(const struct gl_context *ctx, 1554 struct _glapi_table *dest) 1555{ 1556 if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { 1557 SET_Color4ub(dest, _mesa_Color4ub); 1558 SET_Materialf(dest, _mesa_Materialf); 1559 } 1560 if (ctx->API == API_OPENGL_COMPAT) { 1561 SET_Color3b(dest, _mesa_Color3b); 1562 SET_Color3d(dest, _mesa_Color3d); 1563 SET_Color3i(dest, _mesa_Color3i); 1564 SET_Color3s(dest, _mesa_Color3s); 1565 SET_Color3ui(dest, _mesa_Color3ui); 1566 SET_Color3us(dest, _mesa_Color3us); 1567 SET_Color3ub(dest, _mesa_Color3ub); 1568 SET_Color4b(dest, _mesa_Color4b); 1569 SET_Color4d(dest, _mesa_Color4d); 1570 SET_Color4i(dest, _mesa_Color4i); 1571 SET_Color4s(dest, _mesa_Color4s); 1572 SET_Color4ui(dest, _mesa_Color4ui); 1573 SET_Color4us(dest, _mesa_Color4us); 1574 SET_Color3bv(dest, _mesa_Color3bv); 1575 SET_Color3dv(dest, _mesa_Color3dv); 1576 SET_Color3iv(dest, _mesa_Color3iv); 1577 SET_Color3sv(dest, _mesa_Color3sv); 1578 SET_Color3uiv(dest, _mesa_Color3uiv); 1579 SET_Color3usv(dest, _mesa_Color3usv); 1580 SET_Color3ubv(dest, _mesa_Color3ubv); 1581 SET_Color4bv(dest, _mesa_Color4bv); 1582 SET_Color4dv(dest, _mesa_Color4dv); 1583 SET_Color4iv(dest, _mesa_Color4iv); 1584 SET_Color4sv(dest, _mesa_Color4sv); 1585 SET_Color4uiv(dest, _mesa_Color4uiv); 1586 SET_Color4usv(dest, _mesa_Color4usv); 1587 SET_Color4ubv(dest, _mesa_Color4ubv); 1588 1589 SET_SecondaryColor3b(dest, _mesa_SecondaryColor3b); 1590 SET_SecondaryColor3d(dest, _mesa_SecondaryColor3d); 1591 SET_SecondaryColor3i(dest, _mesa_SecondaryColor3i); 1592 SET_SecondaryColor3s(dest, _mesa_SecondaryColor3s); 1593 SET_SecondaryColor3ui(dest, _mesa_SecondaryColor3ui); 1594 SET_SecondaryColor3us(dest, _mesa_SecondaryColor3us); 1595 SET_SecondaryColor3ub(dest, _mesa_SecondaryColor3ub); 1596 SET_SecondaryColor3bv(dest, _mesa_SecondaryColor3bv); 1597 SET_SecondaryColor3dv(dest, _mesa_SecondaryColor3dv); 1598 SET_SecondaryColor3iv(dest, _mesa_SecondaryColor3iv); 1599 SET_SecondaryColor3sv(dest, _mesa_SecondaryColor3sv); 1600 SET_SecondaryColor3uiv(dest, _mesa_SecondaryColor3uiv); 1601 SET_SecondaryColor3usv(dest, _mesa_SecondaryColor3usv); 1602 SET_SecondaryColor3ubv(dest, _mesa_SecondaryColor3ubv); 1603 1604 SET_EdgeFlagv(dest, _mesa_EdgeFlagv); 1605 1606 SET_Indexd(dest, _mesa_Indexd); 1607 SET_Indexi(dest, _mesa_Indexi); 1608 SET_Indexs(dest, _mesa_Indexs); 1609 SET_Indexub(dest, _mesa_Indexub); 1610 SET_Indexdv(dest, _mesa_Indexdv); 1611 SET_Indexiv(dest, _mesa_Indexiv); 1612 SET_Indexsv(dest, _mesa_Indexsv); 1613 SET_Indexubv(dest, _mesa_Indexubv); 1614 SET_Normal3b(dest, _mesa_Normal3b); 1615 SET_Normal3d(dest, _mesa_Normal3d); 1616 SET_Normal3i(dest, _mesa_Normal3i); 1617 SET_Normal3s(dest, _mesa_Normal3s); 1618 SET_Normal3bv(dest, _mesa_Normal3bv); 1619 SET_Normal3dv(dest, _mesa_Normal3dv); 1620 SET_Normal3iv(dest, _mesa_Normal3iv); 1621 SET_Normal3sv(dest, _mesa_Normal3sv); 1622 SET_TexCoord1d(dest, _mesa_TexCoord1d); 1623 SET_TexCoord1i(dest, _mesa_TexCoord1i); 1624 SET_TexCoord1s(dest, _mesa_TexCoord1s); 1625 SET_TexCoord2d(dest, _mesa_TexCoord2d); 1626 SET_TexCoord2s(dest, _mesa_TexCoord2s); 1627 SET_TexCoord2i(dest, _mesa_TexCoord2i); 1628 SET_TexCoord3d(dest, _mesa_TexCoord3d); 1629 SET_TexCoord3i(dest, _mesa_TexCoord3i); 1630 SET_TexCoord3s(dest, _mesa_TexCoord3s); 1631 SET_TexCoord4d(dest, _mesa_TexCoord4d); 1632 SET_TexCoord4i(dest, _mesa_TexCoord4i); 1633 SET_TexCoord4s(dest, _mesa_TexCoord4s); 1634 SET_TexCoord1dv(dest, _mesa_TexCoord1dv); 1635 SET_TexCoord1iv(dest, _mesa_TexCoord1iv); 1636 SET_TexCoord1sv(dest, _mesa_TexCoord1sv); 1637 SET_TexCoord2dv(dest, _mesa_TexCoord2dv); 1638 SET_TexCoord2iv(dest, _mesa_TexCoord2iv); 1639 SET_TexCoord2sv(dest, _mesa_TexCoord2sv); 1640 SET_TexCoord3dv(dest, _mesa_TexCoord3dv); 1641 SET_TexCoord3iv(dest, _mesa_TexCoord3iv); 1642 SET_TexCoord3sv(dest, _mesa_TexCoord3sv); 1643 SET_TexCoord4dv(dest, _mesa_TexCoord4dv); 1644 SET_TexCoord4iv(dest, _mesa_TexCoord4iv); 1645 SET_TexCoord4sv(dest, _mesa_TexCoord4sv); 1646 SET_Vertex2d(dest, _mesa_Vertex2d); 1647 SET_Vertex2i(dest, _mesa_Vertex2i); 1648 SET_Vertex2s(dest, _mesa_Vertex2s); 1649 SET_Vertex3d(dest, _mesa_Vertex3d); 1650 SET_Vertex3i(dest, _mesa_Vertex3i); 1651 SET_Vertex3s(dest, _mesa_Vertex3s); 1652 SET_Vertex4d(dest, _mesa_Vertex4d); 1653 SET_Vertex4i(dest, _mesa_Vertex4i); 1654 SET_Vertex4s(dest, _mesa_Vertex4s); 1655 SET_Vertex2dv(dest, _mesa_Vertex2dv); 1656 SET_Vertex2iv(dest, _mesa_Vertex2iv); 1657 SET_Vertex2sv(dest, _mesa_Vertex2sv); 1658 SET_Vertex3dv(dest, _mesa_Vertex3dv); 1659 SET_Vertex3iv(dest, _mesa_Vertex3iv); 1660 SET_Vertex3sv(dest, _mesa_Vertex3sv); 1661 SET_Vertex4dv(dest, _mesa_Vertex4dv); 1662 SET_Vertex4iv(dest, _mesa_Vertex4iv); 1663 SET_Vertex4sv(dest, _mesa_Vertex4sv); 1664 SET_MultiTexCoord1d(dest, _mesa_MultiTexCoord1d); 1665 SET_MultiTexCoord1dv(dest, _mesa_MultiTexCoord1dv); 1666 SET_MultiTexCoord1i(dest, _mesa_MultiTexCoord1i); 1667 SET_MultiTexCoord1iv(dest, _mesa_MultiTexCoord1iv); 1668 SET_MultiTexCoord1s(dest, _mesa_MultiTexCoord1s); 1669 SET_MultiTexCoord1sv(dest, _mesa_MultiTexCoord1sv); 1670 SET_MultiTexCoord2d(dest, _mesa_MultiTexCoord2d); 1671 SET_MultiTexCoord2dv(dest, _mesa_MultiTexCoord2dv); 1672 SET_MultiTexCoord2i(dest, _mesa_MultiTexCoord2i); 1673 SET_MultiTexCoord2iv(dest, _mesa_MultiTexCoord2iv); 1674 SET_MultiTexCoord2s(dest, _mesa_MultiTexCoord2s); 1675 SET_MultiTexCoord2sv(dest, _mesa_MultiTexCoord2sv); 1676 SET_MultiTexCoord3d(dest, _mesa_MultiTexCoord3d); 1677 SET_MultiTexCoord3dv(dest, _mesa_MultiTexCoord3dv); 1678 SET_MultiTexCoord3i(dest, _mesa_MultiTexCoord3i); 1679 SET_MultiTexCoord3iv(dest, _mesa_MultiTexCoord3iv); 1680 SET_MultiTexCoord3s(dest, _mesa_MultiTexCoord3s); 1681 SET_MultiTexCoord3sv(dest, _mesa_MultiTexCoord3sv); 1682 SET_MultiTexCoord4d(dest, _mesa_MultiTexCoord4d); 1683 SET_MultiTexCoord4dv(dest, _mesa_MultiTexCoord4dv); 1684 SET_MultiTexCoord4i(dest, _mesa_MultiTexCoord4i); 1685 SET_MultiTexCoord4iv(dest, _mesa_MultiTexCoord4iv); 1686 SET_MultiTexCoord4s(dest, _mesa_MultiTexCoord4s); 1687 SET_MultiTexCoord4sv(dest, _mesa_MultiTexCoord4sv); 1688 SET_EvalCoord2dv(dest, _mesa_EvalCoord2dv); 1689 SET_EvalCoord2fv(dest, _mesa_EvalCoord2fv); 1690 SET_EvalCoord2d(dest, _mesa_EvalCoord2d); 1691 SET_EvalCoord1dv(dest, _mesa_EvalCoord1dv); 1692 SET_EvalCoord1fv(dest, _mesa_EvalCoord1fv); 1693 SET_EvalCoord1d(dest, _mesa_EvalCoord1d); 1694 SET_Materiali(dest, _mesa_Materiali); 1695 SET_Materialiv(dest, _mesa_Materialiv); 1696 SET_Rectd(dest, _mesa_Rectd); 1697 SET_Rectdv(dest, _mesa_Rectdv); 1698 SET_Rectfv(dest, _mesa_Rectfv); 1699 SET_Recti(dest, _mesa_Recti); 1700 SET_Rectiv(dest, _mesa_Rectiv); 1701 SET_Rects(dest, _mesa_Rects); 1702 SET_Rectsv(dest, _mesa_Rectsv); 1703 SET_FogCoordd(dest, _mesa_FogCoordd); 1704 SET_FogCoorddv(dest, _mesa_FogCoorddv); 1705 } 1706 1707 if (ctx->API == API_OPENGL_COMPAT) { 1708 SET_VertexAttrib1sNV(dest, _mesa_VertexAttrib1sNV); 1709 SET_VertexAttrib1dNV(dest, _mesa_VertexAttrib1dNV); 1710 SET_VertexAttrib2sNV(dest, _mesa_VertexAttrib2sNV); 1711 SET_VertexAttrib2dNV(dest, _mesa_VertexAttrib2dNV); 1712 SET_VertexAttrib3sNV(dest, _mesa_VertexAttrib3sNV); 1713 SET_VertexAttrib3dNV(dest, _mesa_VertexAttrib3dNV); 1714 SET_VertexAttrib4sNV(dest, _mesa_VertexAttrib4sNV); 1715 SET_VertexAttrib4dNV(dest, _mesa_VertexAttrib4dNV); 1716 SET_VertexAttrib4ubNV(dest, _mesa_VertexAttrib4ubNV); 1717 SET_VertexAttrib1svNV(dest, _mesa_VertexAttrib1svNV); 1718 SET_VertexAttrib1dvNV(dest, _mesa_VertexAttrib1dvNV); 1719 SET_VertexAttrib2svNV(dest, _mesa_VertexAttrib2svNV); 1720 SET_VertexAttrib2dvNV(dest, _mesa_VertexAttrib2dvNV); 1721 SET_VertexAttrib3svNV(dest, _mesa_VertexAttrib3svNV); 1722 SET_VertexAttrib3dvNV(dest, _mesa_VertexAttrib3dvNV); 1723 SET_VertexAttrib4svNV(dest, _mesa_VertexAttrib4svNV); 1724 SET_VertexAttrib4dvNV(dest, _mesa_VertexAttrib4dvNV); 1725 SET_VertexAttrib4ubvNV(dest, _mesa_VertexAttrib4ubvNV); 1726 SET_VertexAttribs1svNV(dest, _mesa_VertexAttribs1svNV); 1727 SET_VertexAttribs1fvNV(dest, _mesa_VertexAttribs1fvNV); 1728 SET_VertexAttribs1dvNV(dest, _mesa_VertexAttribs1dvNV); 1729 SET_VertexAttribs2svNV(dest, _mesa_VertexAttribs2svNV); 1730 SET_VertexAttribs2fvNV(dest, _mesa_VertexAttribs2fvNV); 1731 SET_VertexAttribs2dvNV(dest, _mesa_VertexAttribs2dvNV); 1732 SET_VertexAttribs3svNV(dest, _mesa_VertexAttribs3svNV); 1733 SET_VertexAttribs3fvNV(dest, _mesa_VertexAttribs3fvNV); 1734 SET_VertexAttribs3dvNV(dest, _mesa_VertexAttribs3dvNV); 1735 SET_VertexAttribs4svNV(dest, _mesa_VertexAttribs4svNV); 1736 SET_VertexAttribs4fvNV(dest, _mesa_VertexAttribs4fvNV); 1737 SET_VertexAttribs4dvNV(dest, _mesa_VertexAttribs4dvNV); 1738 SET_VertexAttribs4ubvNV(dest, _mesa_VertexAttribs4ubvNV); 1739 } 1740 1741 if (_mesa_is_desktop_gl(ctx)) { 1742 SET_VertexAttrib1s(dest, _mesa_VertexAttrib1s); 1743 SET_VertexAttrib1d(dest, _mesa_VertexAttrib1d); 1744 SET_VertexAttrib2s(dest, _mesa_VertexAttrib2s); 1745 SET_VertexAttrib2d(dest, _mesa_VertexAttrib2d); 1746 SET_VertexAttrib3s(dest, _mesa_VertexAttrib3s); 1747 SET_VertexAttrib3d(dest, _mesa_VertexAttrib3d); 1748 SET_VertexAttrib4s(dest, _mesa_VertexAttrib4s); 1749 SET_VertexAttrib4d(dest, _mesa_VertexAttrib4d); 1750 SET_VertexAttrib1sv(dest, _mesa_VertexAttrib1sv); 1751 SET_VertexAttrib1dv(dest, _mesa_VertexAttrib1dv); 1752 SET_VertexAttrib2sv(dest, _mesa_VertexAttrib2sv); 1753 SET_VertexAttrib2dv(dest, _mesa_VertexAttrib2dv); 1754 SET_VertexAttrib3sv(dest, _mesa_VertexAttrib3sv); 1755 SET_VertexAttrib3dv(dest, _mesa_VertexAttrib3dv); 1756 SET_VertexAttrib4sv(dest, _mesa_VertexAttrib4sv); 1757 SET_VertexAttrib4dv(dest, _mesa_VertexAttrib4dv); 1758 SET_VertexAttrib4Nub(dest, _mesa_VertexAttrib4Nub); 1759 SET_VertexAttrib4Nubv(dest, _mesa_VertexAttrib4Nubv); 1760 SET_VertexAttrib4bv(dest, _mesa_VertexAttrib4bv); 1761 SET_VertexAttrib4iv(dest, _mesa_VertexAttrib4iv); 1762 SET_VertexAttrib4ubv(dest, _mesa_VertexAttrib4ubv); 1763 SET_VertexAttrib4usv(dest, _mesa_VertexAttrib4usv); 1764 SET_VertexAttrib4uiv(dest, _mesa_VertexAttrib4uiv); 1765 SET_VertexAttrib4Nbv(dest, _mesa_VertexAttrib4Nbv); 1766 SET_VertexAttrib4Nsv(dest, _mesa_VertexAttrib4Nsv); 1767 SET_VertexAttrib4Nusv(dest, _mesa_VertexAttrib4Nusv); 1768 SET_VertexAttrib4Niv(dest, _mesa_VertexAttrib4Niv); 1769 SET_VertexAttrib4Nuiv(dest, _mesa_VertexAttrib4Nuiv); 1770 1771 /* GL_EXT_gpu_shader4, GL 3.0 */ 1772 SET_VertexAttribI1iv(dest, _mesa_VertexAttribI1iv); 1773 SET_VertexAttribI1uiv(dest, _mesa_VertexAttribI1uiv); 1774 SET_VertexAttribI4bv(dest, _mesa_VertexAttribI4bv); 1775 SET_VertexAttribI4sv(dest, _mesa_VertexAttribI4sv); 1776 SET_VertexAttribI4ubv(dest, _mesa_VertexAttribI4ubv); 1777 SET_VertexAttribI4usv(dest, _mesa_VertexAttribI4usv); 1778 } 1779 1780 if (ctx->API == API_OPENGL_CORE) { 1781 /* GL 4.1 / GL_ARB_vertex_attrib_64bit */ 1782 SET_VertexAttribL1d(dest, _mesa_VertexAttribL1d); 1783 SET_VertexAttribL2d(dest, _mesa_VertexAttribL2d); 1784 SET_VertexAttribL3d(dest, _mesa_VertexAttribL3d); 1785 SET_VertexAttribL4d(dest, _mesa_VertexAttribL4d); 1786 1787 SET_VertexAttribL1dv(dest, _mesa_VertexAttribL1dv); 1788 SET_VertexAttribL2dv(dest, _mesa_VertexAttribL2dv); 1789 SET_VertexAttribL3dv(dest, _mesa_VertexAttribL3dv); 1790 SET_VertexAttribL4dv(dest, _mesa_VertexAttribL4dv); 1791 } 1792} 1793