Changeset 3598 for trunk/src/opengl/mesa/get.c
- Timestamp:
- May 23, 2000, 10:41:28 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/opengl/mesa/get.c
r2962 r3598 1 /* $Id: get.c,v 1. 2 2000-03-01 18:49:29jeroen Exp $ */1 /* $Id: get.c,v 1.3 2000-05-23 20:40:33 jeroen Exp $ */ 2 2 3 3 /* 4 4 * Mesa 3-D graphics library 5 * Version: 3. 15 * Version: 3.3 6 6 * 7 7 * Copyright (C) 1999 Brian Paul All Rights Reserved. … … 31 31 #include "all.h" 32 32 #else 33 #ifndef XFree86Server 34 #include <assert.h> 35 #include <stdio.h> 36 #include <string.h> 37 #else 38 #include "GL/xf86glx.h" 39 #endif 33 #include "glheader.h" 34 #include "glext.h" 40 35 #include "types.h" 41 36 #include "context.h" … … 67 62 68 63 69 void gl_GetBooleanv( GLcontext *ctx, GLenum pname, GLboolean *params ) 64 void 65 _mesa_GetBooleanv( GLenum pname, GLboolean *params ) 70 66 { 67 GET_CURRENT_CONTEXT(ctx); 71 68 GLuint i; 72 69 GLuint texUnit = ctx->Texture.CurrentUnit; … … 117 114 break; 118 115 case GL_AUX_BUFFERS: 119 *params = ( NUM_AUX_BUFFERS) ? GL_TRUE : GL_FALSE;116 *params = (ctx->Const.NumAuxBuffers) ? GL_TRUE : GL_FALSE; 120 117 break; 121 118 case GL_BLEND: … … 128 125 *params = ENUM_TO_BOOL(ctx->Color.BlendSrcRGB); 129 126 break; 130 case GL_BLEND_SRC_RGB_ INGR:127 case GL_BLEND_SRC_RGB_EXT: 131 128 *params = ENUM_TO_BOOL(ctx->Color.BlendSrcRGB); 132 129 break; 133 case GL_BLEND_DST_RGB_ INGR:130 case GL_BLEND_DST_RGB_EXT: 134 131 *params = ENUM_TO_BOOL(ctx->Color.BlendDstRGB); 135 132 break; 136 case GL_BLEND_SRC_ALPHA_ INGR:133 case GL_BLEND_SRC_ALPHA_EXT: 137 134 *params = ENUM_TO_BOOL(ctx->Color.BlendSrcA); 138 135 break; 139 case GL_BLEND_DST_ALPHA_ INGR:136 case GL_BLEND_DST_ALPHA_EXT: 140 137 *params = ENUM_TO_BOOL(ctx->Color.BlendDstA); 141 138 break; 142 139 case GL_BLEND_EQUATION_EXT: 143 144 140 *params = ENUM_TO_BOOL( ctx->Color.BlendEquation ); 141 break; 145 142 case GL_BLEND_COLOR_EXT: 146 147 148 149 150 143 params[0] = FLOAT_TO_BOOL( ctx->Color.BlendColor[0] ); 144 params[1] = FLOAT_TO_BOOL( ctx->Color.BlendColor[1] ); 145 params[2] = FLOAT_TO_BOOL( ctx->Color.BlendColor[2] ); 146 params[3] = FLOAT_TO_BOOL( ctx->Color.BlendColor[3] ); 147 break; 151 148 case GL_BLUE_BIAS: 152 149 *params = FLOAT_TO_BOOL(ctx->Pixel.BlueBias); … … 211 208 break; 212 209 case GL_CURRENT_RASTER_COLOR: 213 214 215 216 217 210 params[0] = FLOAT_TO_BOOL(ctx->Current.RasterColor[0]); 211 params[1] = FLOAT_TO_BOOL(ctx->Current.RasterColor[1]); 212 params[2] = FLOAT_TO_BOOL(ctx->Current.RasterColor[2]); 213 params[3] = FLOAT_TO_BOOL(ctx->Current.RasterColor[3]); 214 break; 218 215 case GL_CURRENT_RASTER_DISTANCE: 219 220 216 *params = FLOAT_TO_BOOL(ctx->Current.RasterDistance); 217 break; 221 218 case GL_CURRENT_RASTER_INDEX: 222 223 219 *params = FLOAT_TO_BOOL(ctx->Current.RasterIndex); 220 break; 224 221 case GL_CURRENT_RASTER_POSITION: 225 226 227 228 229 222 params[0] = FLOAT_TO_BOOL(ctx->Current.RasterPos[0]); 223 params[1] = FLOAT_TO_BOOL(ctx->Current.RasterPos[1]); 224 params[2] = FLOAT_TO_BOOL(ctx->Current.RasterPos[2]); 225 params[3] = FLOAT_TO_BOOL(ctx->Current.RasterPos[3]); 226 break; 230 227 case GL_CURRENT_RASTER_TEXTURE_COORDS: 231 228 params[0] = FLOAT_TO_BOOL(ctx->Current.RasterMultiTexCoord[texTransformUnit][0]); … … 233 230 params[2] = FLOAT_TO_BOOL(ctx->Current.RasterMultiTexCoord[texTransformUnit][2]); 234 231 params[3] = FLOAT_TO_BOOL(ctx->Current.RasterMultiTexCoord[texTransformUnit][3]); 235 232 break; 236 233 case GL_CURRENT_RASTER_POSITION_VALID: 237 234 *params = ctx->Current.RasterPosValid; 238 235 break; 239 236 case GL_CURRENT_TEXTURE_COORDS: 240 237 params[0] = FLOAT_TO_BOOL(ctx->Current.Texcoord[texTransformUnit][0]); … … 242 239 params[2] = FLOAT_TO_BOOL(ctx->Current.Texcoord[texTransformUnit][2]); 243 240 params[3] = FLOAT_TO_BOOL(ctx->Current.Texcoord[texTransformUnit][3]); 244 241 break; 245 242 case GL_DEPTH_BIAS: 246 243 *params = FLOAT_TO_BOOL(ctx->Pixel.DepthBias); 247 244 break; 248 245 case GL_DEPTH_BITS: 249 250 246 *params = INT_TO_BOOL(ctx->Visual->DepthBits); 247 break; 251 248 case GL_DEPTH_CLEAR_VALUE: 252 249 *params = FLOAT_TO_BOOL(ctx->Depth.Clear); 253 250 break; 254 251 case GL_DEPTH_FUNC: 255 252 *params = ENUM_TO_BOOL(ctx->Depth.Func); 256 253 break; 257 254 case GL_DEPTH_RANGE: 258 255 params[0] = FLOAT_TO_BOOL(ctx->Viewport.Near); 259 256 params[1] = FLOAT_TO_BOOL(ctx->Viewport.Far); 260 257 break; 261 258 case GL_DEPTH_SCALE: 262 259 *params = FLOAT_TO_BOOL(ctx->Pixel.DepthScale); 263 260 break; 264 261 case GL_DEPTH_TEST: 265 262 *params = ctx->Depth.Test; 266 263 break; 267 264 case GL_DEPTH_WRITEMASK: 268 269 265 *params = ctx->Depth.Mask; 266 break; 270 267 case GL_DITHER: 271 272 268 *params = ctx->Color.DitherFlag; 269 break; 273 270 case GL_DOUBLEBUFFER: 274 275 271 *params = ctx->Visual->DBflag; 272 break; 276 273 case GL_DRAW_BUFFER: 277 278 274 *params = ENUM_TO_BOOL(ctx->Color.DrawBuffer); 275 break; 279 276 case GL_EDGE_FLAG: 280 281 277 *params = ctx->Current.EdgeFlag; 278 break; 282 279 case GL_FEEDBACK_BUFFER_SIZE: 283 /* TODO: is this right? Or, return number of entries in buffer? */284 280 *params = INT_TO_BOOL(ctx->Feedback.BufferSize); 285 281 break; … … 288 284 break; 289 285 case GL_FOG: 290 291 286 *params = ctx->Fog.Enabled; 287 break; 292 288 case GL_FOG_COLOR: 293 289 params[0] = FLOAT_TO_BOOL(ctx->Fog.Color[0]); … … 295 291 params[2] = FLOAT_TO_BOOL(ctx->Fog.Color[2]); 296 292 params[3] = FLOAT_TO_BOOL(ctx->Fog.Color[3]); 297 293 break; 298 294 case GL_FOG_DENSITY: 299 295 *params = FLOAT_TO_BOOL(ctx->Fog.Density); 300 296 break; 301 297 case GL_FOG_END: 302 298 *params = FLOAT_TO_BOOL(ctx->Fog.End); 303 299 break; 304 300 case GL_FOG_HINT: 305 306 301 *params = ENUM_TO_BOOL(ctx->Hint.Fog); 302 break; 307 303 case GL_FOG_INDEX: 308 309 304 *params = FLOAT_TO_BOOL(ctx->Fog.Index); 305 break; 310 306 case GL_FOG_MODE: 311 312 307 *params = ENUM_TO_BOOL(ctx->Fog.Mode); 308 break; 313 309 case GL_FOG_START: 314 310 *params = FLOAT_TO_BOOL(ctx->Fog.End); 315 311 break; 316 312 case GL_FRONT_FACE: 317 318 313 *params = ENUM_TO_BOOL(ctx->Polygon.FrontFace); 314 break; 319 315 case GL_GREEN_BIAS: 320 316 *params = FLOAT_TO_BOOL(ctx->Pixel.GreenBias); 321 317 break; 322 318 case GL_GREEN_BITS: 323 319 *params = INT_TO_BOOL( ctx->Visual->GreenBits ); 324 320 break; 325 321 case GL_GREEN_SCALE: 326 322 *params = FLOAT_TO_BOOL(ctx->Pixel.GreenScale); 327 323 break; 328 324 case GL_INDEX_BITS: 329 325 *params = INT_TO_BOOL( ctx->Visual->IndexBits ); 330 326 break; 331 327 case GL_INDEX_CLEAR_VALUE: 332 333 328 *params = INT_TO_BOOL(ctx->Color.ClearIndex); 329 break; 334 330 case GL_INDEX_MODE: 335 336 331 *params = ctx->Visual->RGBAflag ? GL_FALSE : GL_TRUE; 332 break; 337 333 case GL_INDEX_OFFSET: 338 339 334 *params = INT_TO_BOOL(ctx->Pixel.IndexOffset); 335 break; 340 336 case GL_INDEX_SHIFT: 341 342 337 *params = INT_TO_BOOL(ctx->Pixel.IndexShift); 338 break; 343 339 case GL_INDEX_WRITEMASK: 344 345 340 *params = INT_TO_BOOL(ctx->Color.IndexMask); 341 break; 346 342 case GL_LIGHT0: 347 343 case GL_LIGHT1: … … 352 348 case GL_LIGHT6: 353 349 case GL_LIGHT7: 354 355 350 *params = ctx->Light.Light[pname-GL_LIGHT0].Enabled; 351 break; 356 352 case GL_LIGHTING: 357 358 353 *params = ctx->Light.Enabled; 354 break; 359 355 case GL_LIGHT_MODEL_AMBIENT: 360 361 362 363 364 356 params[0] = FLOAT_TO_BOOL(ctx->Light.Model.Ambient[0]); 357 params[1] = FLOAT_TO_BOOL(ctx->Light.Model.Ambient[1]); 358 params[2] = FLOAT_TO_BOOL(ctx->Light.Model.Ambient[2]); 359 params[3] = FLOAT_TO_BOOL(ctx->Light.Model.Ambient[3]); 360 break; 365 361 case GL_LIGHT_MODEL_COLOR_CONTROL: 366 362 params[0] = ENUM_TO_BOOL(ctx->Light.Model.ColorControl); 367 363 break; 368 364 case GL_LIGHT_MODEL_LOCAL_VIEWER: 369 370 365 *params = ctx->Light.Model.LocalViewer; 366 break; 371 367 case GL_LIGHT_MODEL_TWO_SIDE: 372 373 368 *params = ctx->Light.Model.TwoSide; 369 break; 374 370 case GL_LINE_SMOOTH: 375 376 371 *params = ctx->Line.SmoothFlag; 372 break; 377 373 case GL_LINE_SMOOTH_HINT: 378 379 374 *params = ENUM_TO_BOOL(ctx->Hint.LineSmooth); 375 break; 380 376 case GL_LINE_STIPPLE: 381 382 377 *params = ctx->Line.StippleFlag; 378 break; 383 379 case GL_LINE_STIPPLE_PATTERN: 384 385 380 *params = INT_TO_BOOL(ctx->Line.StipplePattern); 381 break; 386 382 case GL_LINE_STIPPLE_REPEAT: 387 388 383 *params = INT_TO_BOOL(ctx->Line.StippleFactor); 384 break; 389 385 case GL_LINE_WIDTH: 390 391 386 *params = FLOAT_TO_BOOL(ctx->Line.Width); 387 break; 392 388 case GL_LINE_WIDTH_GRANULARITY: 393 *params = FLOAT_TO_BOOL(LINE_WIDTH_GRANULARITY);394 389 *params = FLOAT_TO_BOOL(ctx->Const.LineWidthGranularity); 390 break; 395 391 case GL_LINE_WIDTH_RANGE: 396 params[0] = FLOAT_TO_BOOL(MIN_LINE_WIDTH); 397 params[1] = FLOAT_TO_BOOL(MAX_LINE_WIDTH); 398 break; 392 params[0] = FLOAT_TO_BOOL(ctx->Const.MinLineWidthAA); 393 params[1] = FLOAT_TO_BOOL(ctx->Const.MaxLineWidthAA); 394 break; 395 case GL_ALIASED_LINE_WIDTH_RANGE: 396 params[0] = FLOAT_TO_BOOL(ctx->Const.MinLineWidth); 397 params[1] = FLOAT_TO_BOOL(ctx->Const.MaxLineWidth); 398 break; 399 399 case GL_LIST_BASE: 400 401 400 *params = INT_TO_BOOL(ctx->List.ListBase); 401 break; 402 402 case GL_LIST_INDEX: 403 404 403 *params = INT_TO_BOOL( ctx->CurrentListNum ); 404 break; 405 405 case GL_LIST_MODE: 406 407 408 406 *params = ENUM_TO_BOOL( ctx->ExecuteFlag 407 ? GL_COMPILE_AND_EXECUTE : GL_COMPILE ); 408 break; 409 409 case GL_INDEX_LOGIC_OP: 410 411 410 *params = ctx->Color.IndexLogicOpEnabled; 411 break; 412 412 case GL_COLOR_LOGIC_OP: 413 414 413 *params = ctx->Color.ColorLogicOpEnabled; 414 break; 415 415 case GL_LOGIC_OP_MODE: 416 417 416 *params = ENUM_TO_BOOL(ctx->Color.LogicOp); 417 break; 418 418 case GL_MAP1_COLOR_4: 419 420 419 *params = ctx->Eval.Map1Color4; 420 break; 421 421 case GL_MAP1_GRID_DOMAIN: 422 423 424 422 params[0] = FLOAT_TO_BOOL(ctx->Eval.MapGrid1u1); 423 params[1] = FLOAT_TO_BOOL(ctx->Eval.MapGrid1u2); 424 break; 425 425 case GL_MAP1_GRID_SEGMENTS: 426 427 426 *params = INT_TO_BOOL(ctx->Eval.MapGrid1un); 427 break; 428 428 case GL_MAP1_INDEX: 429 430 429 *params = ctx->Eval.Map1Index; 430 break; 431 431 case GL_MAP1_NORMAL: 432 433 432 *params = ctx->Eval.Map1Normal; 433 break; 434 434 case GL_MAP1_TEXTURE_COORD_1: 435 436 435 *params = ctx->Eval.Map1TextureCoord1; 436 break; 437 437 case GL_MAP1_TEXTURE_COORD_2: 438 439 438 *params = ctx->Eval.Map1TextureCoord2; 439 break; 440 440 case GL_MAP1_TEXTURE_COORD_3: 441 442 441 *params = ctx->Eval.Map1TextureCoord3; 442 break; 443 443 case GL_MAP1_TEXTURE_COORD_4: 444 445 444 *params = ctx->Eval.Map1TextureCoord4; 445 break; 446 446 case GL_MAP1_VERTEX_3: 447 448 447 *params = ctx->Eval.Map1Vertex3; 448 break; 449 449 case GL_MAP1_VERTEX_4: 450 451 450 *params = ctx->Eval.Map1Vertex4; 451 break; 452 452 case GL_MAP2_COLOR_4: 453 454 453 *params = ctx->Eval.Map2Color4; 454 break; 455 455 case GL_MAP2_GRID_DOMAIN: 456 457 458 459 460 456 params[0] = FLOAT_TO_BOOL(ctx->Eval.MapGrid2u1); 457 params[1] = FLOAT_TO_BOOL(ctx->Eval.MapGrid2u2); 458 params[2] = FLOAT_TO_BOOL(ctx->Eval.MapGrid2v1); 459 params[3] = FLOAT_TO_BOOL(ctx->Eval.MapGrid2v2); 460 break; 461 461 case GL_MAP2_GRID_SEGMENTS: 462 463 464 462 params[0] = INT_TO_BOOL(ctx->Eval.MapGrid2un); 463 params[1] = INT_TO_BOOL(ctx->Eval.MapGrid2vn); 464 break; 465 465 case GL_MAP2_INDEX: 466 467 466 *params = ctx->Eval.Map2Index; 467 break; 468 468 case GL_MAP2_NORMAL: 469 470 469 *params = ctx->Eval.Map2Normal; 470 break; 471 471 case GL_MAP2_TEXTURE_COORD_1: 472 473 472 *params = ctx->Eval.Map2TextureCoord1; 473 break; 474 474 case GL_MAP2_TEXTURE_COORD_2: 475 476 475 *params = ctx->Eval.Map2TextureCoord2; 476 break; 477 477 case GL_MAP2_TEXTURE_COORD_3: 478 479 478 *params = ctx->Eval.Map2TextureCoord3; 479 break; 480 480 case GL_MAP2_TEXTURE_COORD_4: 481 482 481 *params = ctx->Eval.Map2TextureCoord4; 482 break; 483 483 case GL_MAP2_VERTEX_3: 484 485 484 *params = ctx->Eval.Map2Vertex3; 485 break; 486 486 case GL_MAP2_VERTEX_4: 487 488 487 *params = ctx->Eval.Map2Vertex4; 488 break; 489 489 case GL_MAP_COLOR: 490 491 490 *params = ctx->Pixel.MapColorFlag; 491 break; 492 492 case GL_MAP_STENCIL: 493 494 493 *params = ctx->Pixel.MapStencilFlag; 494 break; 495 495 case GL_MATRIX_MODE: 496 497 496 *params = ENUM_TO_BOOL( ctx->Transform.MatrixMode ); 497 break; 498 498 case GL_MAX_ATTRIB_STACK_DEPTH: 499 500 499 *params = INT_TO_BOOL(MAX_ATTRIB_STACK_DEPTH); 500 break; 501 501 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: 502 502 *params = INT_TO_BOOL( MAX_CLIENT_ATTRIB_STACK_DEPTH); 503 503 break; 504 504 case GL_MAX_CLIP_PLANES: 505 506 505 *params = INT_TO_BOOL(MAX_CLIP_PLANES); 506 break; 507 507 case GL_MAX_ELEMENTS_VERTICES: /* GL_VERSION_1_2 */ 508 508 *params = INT_TO_BOOL(VB_MAX); … … 512 512 break; 513 513 case GL_MAX_EVAL_ORDER: 514 515 514 *params = INT_TO_BOOL(MAX_EVAL_ORDER); 515 break; 516 516 case GL_MAX_LIGHTS: 517 518 517 *params = INT_TO_BOOL(MAX_LIGHTS); 518 break; 519 519 case GL_MAX_LIST_NESTING: 520 521 520 *params = INT_TO_BOOL(MAX_LIST_NESTING); 521 break; 522 522 case GL_MAX_MODELVIEW_STACK_DEPTH: 523 524 523 *params = INT_TO_BOOL(MAX_MODELVIEW_STACK_DEPTH); 524 break; 525 525 case GL_MAX_NAME_STACK_DEPTH: 526 527 526 *params = INT_TO_BOOL(MAX_NAME_STACK_DEPTH); 527 break; 528 528 case GL_MAX_PIXEL_MAP_TABLE: 529 530 529 *params = INT_TO_BOOL(MAX_PIXEL_MAP_TABLE); 530 break; 531 531 case GL_MAX_PROJECTION_STACK_DEPTH: 532 533 532 *params = INT_TO_BOOL(MAX_PROJECTION_STACK_DEPTH); 533 break; 534 534 case GL_MAX_TEXTURE_SIZE: 535 535 case GL_MAX_3D_TEXTURE_SIZE: 536 536 *params = INT_TO_BOOL(ctx->Const.MaxTextureSize); 537 537 break; 538 538 case GL_MAX_TEXTURE_STACK_DEPTH: 539 540 539 *params = INT_TO_BOOL(MAX_TEXTURE_STACK_DEPTH); 540 break; 541 541 case GL_MAX_VIEWPORT_DIMS: 542 543 544 542 params[0] = INT_TO_BOOL(MAX_WIDTH); 543 params[1] = INT_TO_BOOL(MAX_HEIGHT); 544 break; 545 545 case GL_MODELVIEW_MATRIX: 546 547 548 549 546 for (i=0;i<16;i++) { 547 params[i] = FLOAT_TO_BOOL(ctx->ModelView.m[i]); 548 } 549 break; 550 550 case GL_MODELVIEW_STACK_DEPTH: 551 552 551 *params = INT_TO_BOOL(ctx->ModelViewStackDepth + 1); 552 break; 553 553 case GL_NAME_STACK_DEPTH: 554 555 554 *params = INT_TO_BOOL(ctx->Select.NameStackDepth); 555 break; 556 556 case GL_NORMALIZE: 557 558 557 *params = ctx->Transform.Normalize; 558 break; 559 559 case GL_PACK_ALIGNMENT: 560 561 560 *params = INT_TO_BOOL(ctx->Pack.Alignment); 561 break; 562 562 case GL_PACK_LSB_FIRST: 563 564 563 *params = ctx->Pack.LsbFirst; 564 break; 565 565 case GL_PACK_ROW_LENGTH: 566 567 566 *params = INT_TO_BOOL(ctx->Pack.RowLength); 567 break; 568 568 case GL_PACK_SKIP_PIXELS: 569 570 569 *params = INT_TO_BOOL(ctx->Pack.SkipPixels); 570 break; 571 571 case GL_PACK_SKIP_ROWS: 572 573 572 *params = INT_TO_BOOL(ctx->Pack.SkipRows); 573 break; 574 574 case GL_PACK_SWAP_BYTES: 575 576 575 *params = ctx->Pack.SwapBytes; 576 break; 577 577 case GL_PACK_SKIP_IMAGES_EXT: 578 578 *params = ctx->Pack.SkipImages; … … 582 582 break; 583 583 case GL_PERSPECTIVE_CORRECTION_HINT: 584 585 584 *params = ENUM_TO_BOOL(ctx->Hint.PerspectiveCorrection); 585 break; 586 586 case GL_PIXEL_MAP_A_TO_A_SIZE: 587 588 587 *params = INT_TO_BOOL(ctx->Pixel.MapAtoAsize); 588 break; 589 589 case GL_PIXEL_MAP_B_TO_B_SIZE: 590 591 590 *params = INT_TO_BOOL(ctx->Pixel.MapBtoBsize); 591 break; 592 592 case GL_PIXEL_MAP_G_TO_G_SIZE: 593 594 593 *params = INT_TO_BOOL(ctx->Pixel.MapGtoGsize); 594 break; 595 595 case GL_PIXEL_MAP_I_TO_A_SIZE: 596 597 596 *params = INT_TO_BOOL(ctx->Pixel.MapItoAsize); 597 break; 598 598 case GL_PIXEL_MAP_I_TO_B_SIZE: 599 600 599 *params = INT_TO_BOOL(ctx->Pixel.MapItoBsize); 600 break; 601 601 case GL_PIXEL_MAP_I_TO_G_SIZE: 602 603 602 *params = INT_TO_BOOL(ctx->Pixel.MapItoGsize); 603 break; 604 604 case GL_PIXEL_MAP_I_TO_I_SIZE: 605 606 605 *params = INT_TO_BOOL(ctx->Pixel.MapItoIsize); 606 break; 607 607 case GL_PIXEL_MAP_I_TO_R_SIZE: 608 609 608 *params = INT_TO_BOOL(ctx->Pixel.MapItoRsize); 609 break; 610 610 case GL_PIXEL_MAP_R_TO_R_SIZE: 611 612 611 *params = INT_TO_BOOL(ctx->Pixel.MapRtoRsize); 612 break; 613 613 case GL_PIXEL_MAP_S_TO_S_SIZE: 614 615 614 *params = INT_TO_BOOL(ctx->Pixel.MapStoSsize); 615 break; 616 616 case GL_POINT_SIZE: 617 618 617 *params = FLOAT_TO_BOOL(ctx->Point.Size ); 618 break; 619 619 case GL_POINT_SIZE_GRANULARITY: 620 *params = FLOAT_TO_BOOL(POINT_SIZE_GRANULARITY);621 620 *params = FLOAT_TO_BOOL(ctx->Const.PointSizeGranularity ); 621 break; 622 622 case GL_POINT_SIZE_RANGE: 623 params[0] = FLOAT_TO_BOOL(MIN_POINT_SIZE ); 624 params[1] = FLOAT_TO_BOOL(MAX_POINT_SIZE ); 625 break; 623 params[0] = FLOAT_TO_BOOL(ctx->Const.MinPointSizeAA); 624 params[1] = FLOAT_TO_BOOL(ctx->Const.MaxPointSizeAA); 625 break; 626 case GL_ALIASED_POINT_SIZE_RANGE: 627 params[0] = FLOAT_TO_BOOL(ctx->Const.MinPointSize); 628 params[1] = FLOAT_TO_BOOL(ctx->Const.MaxPointSize); 629 break; 626 630 case GL_POINT_SMOOTH: 627 628 631 *params = ctx->Point.SmoothFlag; 632 break; 629 633 case GL_POINT_SMOOTH_HINT: 630 631 634 *params = ENUM_TO_BOOL(ctx->Hint.PointSmooth); 635 break; 632 636 case GL_POINT_SIZE_MIN_EXT: 633 634 637 *params = FLOAT_TO_BOOL(ctx->Point.MinSize); 638 break; 635 639 case GL_POINT_SIZE_MAX_EXT: 636 637 640 *params = FLOAT_TO_BOOL(ctx->Point.MaxSize); 641 break; 638 642 case GL_POINT_FADE_THRESHOLD_SIZE_EXT: 639 640 643 *params = FLOAT_TO_BOOL(ctx->Point.Threshold); 644 break; 641 645 case GL_DISTANCE_ATTENUATION_EXT: 642 643 644 645 646 params[0] = FLOAT_TO_BOOL(ctx->Point.Params[0]); 647 params[1] = FLOAT_TO_BOOL(ctx->Point.Params[1]); 648 params[2] = FLOAT_TO_BOOL(ctx->Point.Params[2]); 649 break; 646 650 case GL_POLYGON_MODE: 647 params[0] = ENUM_TO_BOOL(ctx->Polygon.FrontMode); 648 params[1] = ENUM_TO_BOOL(ctx->Polygon.BackMode); 649 break; 650 #ifdef GL_EXT_polygon_offset 651 case GL_POLYGON_OFFSET_BIAS_EXT: 651 params[0] = ENUM_TO_BOOL(ctx->Polygon.FrontMode); 652 params[1] = ENUM_TO_BOOL(ctx->Polygon.BackMode); 653 break; 654 case GL_POLYGON_OFFSET_BIAS_EXT: /* GL_EXT_polygon_offset */ 652 655 *params = FLOAT_TO_BOOL( ctx->Polygon.OffsetUnits ); 653 656 break; 654 #endif655 657 case GL_POLYGON_OFFSET_FACTOR: 656 658 *params = FLOAT_TO_BOOL( ctx->Polygon.OffsetFactor ); … … 660 662 break; 661 663 case GL_POLYGON_SMOOTH: 662 663 664 *params = ctx->Polygon.SmoothFlag; 665 break; 664 666 case GL_POLYGON_SMOOTH_HINT: 665 666 667 *params = ENUM_TO_BOOL(ctx->Hint.PolygonSmooth); 668 break; 667 669 case GL_POLYGON_STIPPLE: 668 669 670 *params = ctx->Polygon.StippleFlag; 671 break; 670 672 case GL_PROJECTION_MATRIX: 671 672 673 674 673 for (i=0;i<16;i++) { 674 params[i] = FLOAT_TO_BOOL(ctx->ProjectionMatrix.m[i]); 675 } 676 break; 675 677 case GL_PROJECTION_STACK_DEPTH: 676 677 678 *params = INT_TO_BOOL(ctx->ProjectionStackDepth + 1); 679 break; 678 680 case GL_READ_BUFFER: 679 680 681 *params = ENUM_TO_BOOL(ctx->Pixel.ReadBuffer); 682 break; 681 683 case GL_RED_BIAS: 682 684 *params = FLOAT_TO_BOOL(ctx->Pixel.RedBias); 683 685 break; 684 686 case GL_RED_BITS: 685 687 *params = INT_TO_BOOL( ctx->Visual->RedBits ); 686 688 break; 687 689 case GL_RED_SCALE: 688 690 *params = FLOAT_TO_BOOL(ctx->Pixel.RedScale); 689 691 break; 690 692 case GL_RENDER_MODE: 691 692 693 *params = ENUM_TO_BOOL(ctx->RenderMode); 694 break; 693 695 case GL_RGBA_MODE: 694 696 *params = ctx->Visual->RGBAflag; 695 697 break; 696 698 case GL_SCISSOR_BOX: 697 698 699 700 701 699 params[0] = INT_TO_BOOL(ctx->Scissor.X); 700 params[1] = INT_TO_BOOL(ctx->Scissor.Y); 701 params[2] = INT_TO_BOOL(ctx->Scissor.Width); 702 params[3] = INT_TO_BOOL(ctx->Scissor.Height); 703 break; 702 704 case GL_SCISSOR_TEST: 703 704 705 *params = ctx->Scissor.Enabled; 706 break; 705 707 case GL_SELECTION_BUFFER_SIZE: 706 708 *params = INT_TO_BOOL(ctx->Select.BufferSize); 707 709 break; 708 710 case GL_SHADE_MODEL: 709 710 711 *params = ENUM_TO_BOOL(ctx->Light.ShadeModel); 712 break; 711 713 case GL_SHARED_TEXTURE_PALETTE_EXT: 712 714 *params = ctx->Texture.SharedPalette; 713 715 break; 714 716 case GL_STENCIL_BITS: 715 716 717 *params = INT_TO_BOOL(ctx->Visual->StencilBits); 718 break; 717 719 case GL_STENCIL_CLEAR_VALUE: 718 719 720 *params = INT_TO_BOOL(ctx->Stencil.Clear); 721 break; 720 722 case GL_STENCIL_FAIL: 721 722 723 *params = ENUM_TO_BOOL(ctx->Stencil.FailFunc); 724 break; 723 725 case GL_STENCIL_FUNC: 724 725 726 *params = ENUM_TO_BOOL(ctx->Stencil.Function); 727 break; 726 728 case GL_STENCIL_PASS_DEPTH_FAIL: 727 728 729 *params = ENUM_TO_BOOL(ctx->Stencil.ZFailFunc); 730 break; 729 731 case GL_STENCIL_PASS_DEPTH_PASS: 730 731 732 *params = ENUM_TO_BOOL(ctx->Stencil.ZPassFunc); 733 break; 732 734 case GL_STENCIL_REF: 733 734 735 *params = INT_TO_BOOL(ctx->Stencil.Ref); 736 break; 735 737 case GL_STENCIL_TEST: 736 737 738 *params = ctx->Stencil.Enabled; 739 break; 738 740 case GL_STENCIL_VALUE_MASK: 739 740 741 *params = INT_TO_BOOL(ctx->Stencil.ValueMask); 742 break; 741 743 case GL_STENCIL_WRITEMASK: 742 743 744 *params = INT_TO_BOOL(ctx->Stencil.WriteMask); 745 break; 744 746 case GL_STEREO: 745 746 747 *params = ctx->Visual->StereoFlag; 748 break; 747 749 case GL_SUBPIXEL_BITS: 748 *params = INT_TO_BOOL(0); /* TODO */ 749 750 *params = INT_TO_BOOL(ctx->Const.SubPixelBits); 751 break; 750 752 case GL_TEXTURE_1D: 751 *params = gl_IsEnabled( ctx,GL_TEXTURE_1D );752 753 *params = _mesa_IsEnabled(GL_TEXTURE_1D ); 754 break; 753 755 case GL_TEXTURE_2D: 754 *params = gl_IsEnabled( ctx,GL_TEXTURE_2D );755 756 *params = _mesa_IsEnabled(GL_TEXTURE_2D ); 757 break; 756 758 case GL_TEXTURE_3D: 757 *params = gl_IsEnabled( ctx,GL_TEXTURE_3D );758 759 *params = _mesa_IsEnabled(GL_TEXTURE_3D ); 760 break; 759 761 case GL_TEXTURE_BINDING_1D: 760 762 *params = INT_TO_BOOL(textureUnit->CurrentD[1]->Name); … … 773 775 params[3] = FLOAT_TO_BOOL(textureUnit->EnvColor[3]); 774 776 } 775 777 break; 776 778 case GL_TEXTURE_ENV_MODE: 777 778 779 *params = ENUM_TO_BOOL(textureUnit->EnvMode); 780 break; 779 781 case GL_TEXTURE_GEN_S: 780 781 782 *params = (textureUnit->TexGenEnabled & S_BIT) ? GL_TRUE : GL_FALSE; 783 break; 782 784 case GL_TEXTURE_GEN_T: 783 784 785 *params = (textureUnit->TexGenEnabled & T_BIT) ? GL_TRUE : GL_FALSE; 786 break; 785 787 case GL_TEXTURE_GEN_R: 786 787 788 *params = (textureUnit->TexGenEnabled & R_BIT) ? GL_TRUE : GL_FALSE; 789 break; 788 790 case GL_TEXTURE_GEN_Q: 789 790 791 *params = (textureUnit->TexGenEnabled & Q_BIT) ? GL_TRUE : GL_FALSE; 792 break; 791 793 case GL_TEXTURE_MATRIX: 792 793 794 795 796 794 for (i=0;i<16;i++) { 795 params[i] = 796 FLOAT_TO_BOOL(ctx->TextureMatrix[texTransformUnit].m[i]); 797 } 798 break; 797 799 case GL_TEXTURE_STACK_DEPTH: 798 799 800 *params = INT_TO_BOOL(ctx->TextureStackDepth[texTransformUnit] + 1); 801 break; 800 802 case GL_UNPACK_ALIGNMENT: 801 802 803 *params = INT_TO_BOOL(ctx->Unpack.Alignment); 804 break; 803 805 case GL_UNPACK_LSB_FIRST: 804 805 806 *params = ctx->Unpack.LsbFirst; 807 break; 806 808 case GL_UNPACK_ROW_LENGTH: 807 808 809 *params = INT_TO_BOOL(ctx->Unpack.RowLength); 810 break; 809 811 case GL_UNPACK_SKIP_PIXELS: 810 811 812 *params = INT_TO_BOOL(ctx->Unpack.SkipPixels); 813 break; 812 814 case GL_UNPACK_SKIP_ROWS: 813 814 815 *params = INT_TO_BOOL(ctx->Unpack.SkipRows); 816 break; 815 817 case GL_UNPACK_SWAP_BYTES: 816 817 818 *params = ctx->Unpack.SwapBytes; 819 break; 818 820 case GL_UNPACK_SKIP_IMAGES_EXT: 819 821 *params = ctx->Unpack.SkipImages; … … 823 825 break; 824 826 case GL_VIEWPORT: 825 826 827 828 829 827 params[0] = INT_TO_BOOL(ctx->Viewport.X); 828 params[1] = INT_TO_BOOL(ctx->Viewport.Y); 829 params[2] = INT_TO_BOOL(ctx->Viewport.Width); 830 params[3] = INT_TO_BOOL(ctx->Viewport.Height); 831 break; 830 832 case GL_ZOOM_X: 831 832 833 *params = FLOAT_TO_BOOL(ctx->Pixel.ZoomX); 834 break; 833 835 case GL_ZOOM_Y: 834 835 836 *params = FLOAT_TO_BOOL(ctx->Pixel.ZoomY); 837 break; 836 838 case GL_VERTEX_ARRAY: 837 839 *params = ctx->Array.Vertex.Enabled; … … 920 922 break; 921 923 922 923 924 /* GL_PGI_misc_hints */ 924 925 case GL_STRICT_DEPTHFUNC_HINT_PGI: 925 926 *params = ENUM_TO_BOOL(GL_NICEST); 926 927 break; 927 928 case GL_STRICT_LIGHTING_HINT_PGI: 928 929 929 *params = ENUM_TO_BOOL(ctx->Hint.StrictLighting); 930 break; 930 931 case GL_STRICT_SCISSOR_HINT_PGI: 931 932 case GL_FULL_STIPPLE_HINT_PGI: 932 933 933 *params = ENUM_TO_BOOL(GL_TRUE); 934 break; 934 935 case GL_CONSERVE_MEMORY_HINT_PGI: 935 936 936 *params = ENUM_TO_BOOL(GL_FALSE); 937 break; 937 938 case GL_ALWAYS_FAST_HINT_PGI: 938 939 940 941 939 *params = (GLboolean) (ctx->Hint.AllowDrawWin == GL_TRUE && 940 ctx->Hint.AllowDrawSpn == GL_FALSE && 941 ctx->Hint.AllowDrawMem == GL_FALSE); 942 break; 942 943 case GL_ALWAYS_SOFT_HINT_PGI: 943 944 945 946 944 *params = (GLboolean) (ctx->Hint.AllowDrawWin == GL_TRUE && 945 ctx->Hint.AllowDrawSpn == GL_TRUE && 946 ctx->Hint.AllowDrawMem == GL_TRUE); 947 break; 947 948 case GL_ALLOW_DRAW_OBJ_HINT_PGI: 948 949 949 *params = (GLboolean) GL_TRUE; 950 break; 950 951 case GL_ALLOW_DRAW_WIN_HINT_PGI: 951 952 952 *params = (GLboolean) ctx->Hint.AllowDrawWin; 953 break; 953 954 case GL_ALLOW_DRAW_SPN_HINT_PGI: 954 955 955 *params = (GLboolean) ctx->Hint.AllowDrawSpn; 956 break; 956 957 case GL_ALLOW_DRAW_MEM_HINT_PGI: 957 958 958 *params = (GLboolean) ctx->Hint.AllowDrawMem; 959 break; 959 960 case GL_CLIP_NEAR_HINT_PGI: 960 961 case GL_CLIP_FAR_HINT_PGI: 961 962 962 *params = ENUM_TO_BOOL(GL_TRUE); 963 break; 963 964 case GL_WIDE_LINE_HINT_PGI: 964 965 965 *params = ENUM_TO_BOOL(GL_DONT_CARE); 966 break; 966 967 case GL_BACK_NORMALS_HINT_PGI: 967 968 968 *params = ENUM_TO_BOOL(GL_TRUE); 969 break; 969 970 case GL_NATIVE_GRAPHICS_HANDLE_PGI: 970 *params = 0; 971 break; 971 *params = 0; 972 break; 973 974 /* GL_EXT_compiled_vertex_array */ 975 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: 976 *params = ctx->Array.LockFirst ? GL_TRUE : GL_FALSE; 977 break; 978 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: 979 *params = ctx->Array.LockCount ? GL_TRUE : GL_FALSE; 980 break; 981 982 /* GL_ARB_transpose_matrix */ 983 case GL_TRANSPOSE_COLOR_MATRIX_ARB: 984 /* don't have a color matrix */ 985 break; 986 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB: 987 { 988 GLfloat tm[16]; 989 GLuint i; 990 gl_matrix_transposef(tm, ctx->ModelView.m); 991 for (i=0;i<16;i++) { 992 params[i] = FLOAT_TO_BOOL(tm[i]); 993 } 994 } 995 break; 996 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB: 997 { 998 GLfloat tm[16]; 999 GLuint i; 1000 gl_matrix_transposef(tm, ctx->ProjectionMatrix.m); 1001 for (i=0;i<16;i++) { 1002 params[i] = FLOAT_TO_BOOL(tm[i]); 1003 } 1004 } 1005 break; 1006 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB: 1007 { 1008 GLfloat tm[16]; 1009 GLuint i; 1010 gl_matrix_transposef(tm, ctx->TextureMatrix[texTransformUnit].m); 1011 for (i=0;i<16;i++) { 1012 params[i] = FLOAT_TO_BOOL(tm[i]); 1013 } 1014 } 1015 break; 1016 1017 /* GL_HP_occlusion_test */ 1018 case GL_OCCLUSION_TEST_HP: 1019 if (ctx->Extensions.HaveHpOcclusionTest) { 1020 *params = ctx->Depth.OcclusionTest; 1021 } 1022 else { 1023 gl_error( ctx, GL_INVALID_ENUM, "glGetBooleanv" ); 1024 } 1025 return; 1026 case GL_OCCLUSION_TEST_RESULT_HP: 1027 if (ctx->Extensions.HaveHpOcclusionTest) { 1028 *params = ctx->OcclusionResult; 1029 ctx->OcclusionResult = GL_FALSE; /* reset now */ 1030 } 1031 else { 1032 gl_error( ctx, GL_INVALID_ENUM, "glGetBooleanv" ); 1033 } 1034 return; 1035 972 1036 default: 973 printf("invalid enum: %x\n", pname);974 1037 gl_error( ctx, GL_INVALID_ENUM, "glGetBooleanv" ); 975 1038 } … … 979 1042 980 1043 981 void gl_GetDoublev( GLcontext *ctx, GLenum pname, GLdouble *params ) 1044 void 1045 _mesa_GetDoublev( GLenum pname, GLdouble *params ) 982 1046 { 1047 GET_CURRENT_CONTEXT(ctx); 983 1048 GLuint i; 984 1049 GLuint texUnit = ctx->Texture.CurrentUnit; … … 1029 1094 break; 1030 1095 case GL_AUX_BUFFERS: 1031 *params = (GLdouble) NUM_AUX_BUFFERS;1096 *params = (GLdouble) ctx->Const.NumAuxBuffers; 1032 1097 break; 1033 1098 case GL_BLEND: … … 1040 1105 *params = ENUM_TO_DOUBLE(ctx->Color.BlendSrcRGB); 1041 1106 break; 1042 case GL_BLEND_SRC_RGB_ INGR:1107 case GL_BLEND_SRC_RGB_EXT: 1043 1108 *params = ENUM_TO_DOUBLE(ctx->Color.BlendSrcRGB); 1044 1109 break; 1045 case GL_BLEND_DST_RGB_ INGR:1110 case GL_BLEND_DST_RGB_EXT: 1046 1111 *params = ENUM_TO_DOUBLE(ctx->Color.BlendDstRGB); 1047 1112 break; 1048 case GL_BLEND_SRC_ALPHA_ INGR:1113 case GL_BLEND_SRC_ALPHA_EXT: 1049 1114 *params = ENUM_TO_DOUBLE(ctx->Color.BlendSrcA); 1050 1115 break; 1051 case GL_BLEND_DST_ALPHA_ INGR:1116 case GL_BLEND_DST_ALPHA_EXT: 1052 1117 *params = ENUM_TO_DOUBLE(ctx->Color.BlendDstA); 1053 1118 break; 1054 1119 case GL_BLEND_EQUATION_EXT: 1055 1056 1120 *params = ENUM_TO_DOUBLE(ctx->Color.BlendEquation); 1121 break; 1057 1122 case GL_BLEND_COLOR_EXT: 1058 1059 1060 1061 1062 1123 params[0] = (GLdouble) ctx->Color.BlendColor[0]; 1124 params[1] = (GLdouble) ctx->Color.BlendColor[1]; 1125 params[2] = (GLdouble) ctx->Color.BlendColor[2]; 1126 params[3] = (GLdouble) ctx->Color.BlendColor[3]; 1127 break; 1063 1128 case GL_BLUE_BIAS: 1064 1129 *params = (GLdouble) ctx->Pixel.BlueBias; … … 1123 1188 break; 1124 1189 case GL_CURRENT_RASTER_COLOR: 1125 1126 1127 1128 1129 1190 params[0] = (GLdouble) ctx->Current.RasterColor[0]; 1191 params[1] = (GLdouble) ctx->Current.RasterColor[1]; 1192 params[2] = (GLdouble) ctx->Current.RasterColor[2]; 1193 params[3] = (GLdouble) ctx->Current.RasterColor[3]; 1194 break; 1130 1195 case GL_CURRENT_RASTER_DISTANCE: 1131 1132 1196 params[0] = (GLdouble) ctx->Current.RasterDistance; 1197 break; 1133 1198 case GL_CURRENT_RASTER_INDEX: 1134 1135 1199 *params = (GLdouble) ctx->Current.RasterIndex; 1200 break; 1136 1201 case GL_CURRENT_RASTER_POSITION: 1137 1138 1139 1140 1141 1202 params[0] = (GLdouble) ctx->Current.RasterPos[0]; 1203 params[1] = (GLdouble) ctx->Current.RasterPos[1]; 1204 params[2] = (GLdouble) ctx->Current.RasterPos[2]; 1205 params[3] = (GLdouble) ctx->Current.RasterPos[3]; 1206 break; 1142 1207 case GL_CURRENT_RASTER_TEXTURE_COORDS: 1143 1144 1145 1146 1147 1208 params[0] = (GLdouble) ctx->Current.RasterMultiTexCoord[texTransformUnit][0]; 1209 params[1] = (GLdouble) ctx->Current.RasterMultiTexCoord[texTransformUnit][1]; 1210 params[2] = (GLdouble) ctx->Current.RasterMultiTexCoord[texTransformUnit][2]; 1211 params[3] = (GLdouble) ctx->Current.RasterMultiTexCoord[texTransformUnit][3]; 1212 break; 1148 1213 case GL_CURRENT_RASTER_POSITION_VALID: 1149 1150 1214 *params = (GLdouble) ctx->Current.RasterPosValid; 1215 break; 1151 1216 case GL_CURRENT_TEXTURE_COORDS: 1152 1153 1154 1155 1156 1217 params[0] = (GLdouble) ctx->Current.Texcoord[texTransformUnit][0]; 1218 params[1] = (GLdouble) ctx->Current.Texcoord[texTransformUnit][1]; 1219 params[2] = (GLdouble) ctx->Current.Texcoord[texTransformUnit][2]; 1220 params[3] = (GLdouble) ctx->Current.Texcoord[texTransformUnit][3]; 1221 break; 1157 1222 case GL_DEPTH_BIAS: 1158 1159 1223 *params = (GLdouble) ctx->Pixel.DepthBias; 1224 break; 1160 1225 case GL_DEPTH_BITS: 1161 1162 1226 *params = (GLdouble) ctx->Visual->DepthBits; 1227 break; 1163 1228 case GL_DEPTH_CLEAR_VALUE: 1164 1165 1229 *params = (GLdouble) ctx->Depth.Clear; 1230 break; 1166 1231 case GL_DEPTH_FUNC: 1167 1168 1232 *params = ENUM_TO_DOUBLE(ctx->Depth.Func); 1233 break; 1169 1234 case GL_DEPTH_RANGE: 1170 1235 params[0] = (GLdouble) ctx->Viewport.Near; 1171 1236 params[1] = (GLdouble) ctx->Viewport.Far; 1172 1237 break; 1173 1238 case GL_DEPTH_SCALE: 1174 1175 1239 *params = (GLdouble) ctx->Pixel.DepthScale; 1240 break; 1176 1241 case GL_DEPTH_TEST: 1177 1178 1242 *params = (GLdouble) ctx->Depth.Test; 1243 break; 1179 1244 case GL_DEPTH_WRITEMASK: 1180 1181 1245 *params = (GLdouble) ctx->Depth.Mask; 1246 break; 1182 1247 case GL_DITHER: 1183 1184 1248 *params = (GLdouble) ctx->Color.DitherFlag; 1249 break; 1185 1250 case GL_DOUBLEBUFFER: 1186 1187 1251 *params = (GLdouble) ctx->Visual->DBflag; 1252 break; 1188 1253 case GL_DRAW_BUFFER: 1189 1190 1254 *params = ENUM_TO_DOUBLE(ctx->Color.DrawBuffer); 1255 break; 1191 1256 case GL_EDGE_FLAG: 1192 1193 1257 *params = (GLdouble) ctx->Current.EdgeFlag; 1258 break; 1194 1259 case GL_FEEDBACK_BUFFER_SIZE: 1195 /* TODO: is this right? Or, return number of entries in buffer? */1196 1260 *params = (GLdouble) ctx->Feedback.BufferSize; 1197 1261 break; … … 1200 1264 break; 1201 1265 case GL_FOG: 1202 1203 1266 *params = (GLdouble) ctx->Fog.Enabled; 1267 break; 1204 1268 case GL_FOG_COLOR: 1205 1206 1207 1208 1209 1269 params[0] = (GLdouble) ctx->Fog.Color[0]; 1270 params[1] = (GLdouble) ctx->Fog.Color[1]; 1271 params[2] = (GLdouble) ctx->Fog.Color[2]; 1272 params[3] = (GLdouble) ctx->Fog.Color[3]; 1273 break; 1210 1274 case GL_FOG_DENSITY: 1211 1212 1275 *params = (GLdouble) ctx->Fog.Density; 1276 break; 1213 1277 case GL_FOG_END: 1214 1215 1278 *params = (GLdouble) ctx->Fog.End; 1279 break; 1216 1280 case GL_FOG_HINT: 1217 1218 1281 *params = ENUM_TO_DOUBLE(ctx->Hint.Fog); 1282 break; 1219 1283 case GL_FOG_INDEX: 1220 1221 1284 *params = (GLdouble) ctx->Fog.Index; 1285 break; 1222 1286 case GL_FOG_MODE: 1223 1224 1287 *params = ENUM_TO_DOUBLE(ctx->Fog.Mode); 1288 break; 1225 1289 case GL_FOG_START: 1226 1227 1290 *params = (GLdouble) ctx->Fog.Start; 1291 break; 1228 1292 case GL_FRONT_FACE: 1229 1230 1293 *params = ENUM_TO_DOUBLE(ctx->Polygon.FrontFace); 1294 break; 1231 1295 case GL_GREEN_BIAS: 1232 1296 *params = (GLdouble) ctx->Pixel.GreenBias; … … 1240 1304 case GL_INDEX_BITS: 1241 1305 *params = (GLdouble) ctx->Visual->IndexBits; 1242 1306 break; 1243 1307 case GL_INDEX_CLEAR_VALUE: 1244 1308 *params = (GLdouble) ctx->Color.ClearIndex; 1245 1309 break; 1246 1310 case GL_INDEX_MODE: 1247 1248 1311 *params = ctx->Visual->RGBAflag ? 0.0 : 1.0; 1312 break; 1249 1313 case GL_INDEX_OFFSET: 1250 1251 1314 *params = (GLdouble) ctx->Pixel.IndexOffset; 1315 break; 1252 1316 case GL_INDEX_SHIFT: 1253 1254 1317 *params = (GLdouble) ctx->Pixel.IndexShift; 1318 break; 1255 1319 case GL_INDEX_WRITEMASK: 1256 1257 1320 *params = (GLdouble) ctx->Color.IndexMask; 1321 break; 1258 1322 case GL_LIGHT0: 1259 1323 case GL_LIGHT1: … … 1264 1328 case GL_LIGHT6: 1265 1329 case GL_LIGHT7: 1266 1267 1330 *params = (GLdouble) ctx->Light.Light[pname-GL_LIGHT0].Enabled; 1331 break; 1268 1332 case GL_LIGHTING: 1269 1270 1333 *params = (GLdouble) ctx->Light.Enabled; 1334 break; 1271 1335 case GL_LIGHT_MODEL_AMBIENT: 1272 1273 1274 1275 1276 1336 params[0] = (GLdouble) ctx->Light.Model.Ambient[0]; 1337 params[1] = (GLdouble) ctx->Light.Model.Ambient[1]; 1338 params[2] = (GLdouble) ctx->Light.Model.Ambient[2]; 1339 params[3] = (GLdouble) ctx->Light.Model.Ambient[3]; 1340 break; 1277 1341 case GL_LIGHT_MODEL_COLOR_CONTROL: 1278 1342 params[0] = (GLdouble) ctx->Light.Model.ColorControl; 1279 1343 break; 1280 1344 case GL_LIGHT_MODEL_LOCAL_VIEWER: 1281 1282 1345 *params = (GLdouble) ctx->Light.Model.LocalViewer; 1346 break; 1283 1347 case GL_LIGHT_MODEL_TWO_SIDE: 1284 1285 1348 *params = (GLdouble) ctx->Light.Model.TwoSide; 1349 break; 1286 1350 case GL_LINE_SMOOTH: 1287 1288 1351 *params = (GLdouble) ctx->Line.SmoothFlag; 1352 break; 1289 1353 case GL_LINE_SMOOTH_HINT: 1290 1291 1354 *params = ENUM_TO_DOUBLE(ctx->Hint.LineSmooth); 1355 break; 1292 1356 case GL_LINE_STIPPLE: 1293 1294 1357 *params = (GLdouble) ctx->Line.StippleFlag; 1358 break; 1295 1359 case GL_LINE_STIPPLE_PATTERN: 1296 1360 *params = (GLdouble) ctx->Line.StipplePattern; … … 1300 1364 break; 1301 1365 case GL_LINE_WIDTH: 1302 1303 1366 *params = (GLdouble) ctx->Line.Width; 1367 break; 1304 1368 case GL_LINE_WIDTH_GRANULARITY: 1305 *params = (GLdouble) LINE_WIDTH_GRANULARITY;1306 1369 *params = (GLdouble) ctx->Const.LineWidthGranularity; 1370 break; 1307 1371 case GL_LINE_WIDTH_RANGE: 1308 params[0] = (GLdouble) MIN_LINE_WIDTH; 1309 params[1] = (GLdouble) MAX_LINE_WIDTH; 1310 break; 1372 params[0] = (GLdouble) ctx->Const.MinLineWidthAA; 1373 params[1] = (GLdouble) ctx->Const.MaxLineWidthAA; 1374 break; 1375 case GL_ALIASED_LINE_WIDTH_RANGE: 1376 params[0] = (GLdouble) ctx->Const.MinLineWidth; 1377 params[1] = (GLdouble) ctx->Const.MaxLineWidth; 1378 break; 1311 1379 case GL_LIST_BASE: 1312 1313 1380 *params = (GLdouble) ctx->List.ListBase; 1381 break; 1314 1382 case GL_LIST_INDEX: 1315 1316 1383 *params = (GLdouble) ctx->CurrentListNum; 1384 break; 1317 1385 case GL_LIST_MODE: 1318 1319 1320 1386 *params = ctx->ExecuteFlag ? ENUM_TO_DOUBLE(GL_COMPILE_AND_EXECUTE) 1387 : ENUM_TO_DOUBLE(GL_COMPILE); 1388 break; 1321 1389 case GL_INDEX_LOGIC_OP: 1322 1323 1390 *params = (GLdouble) ctx->Color.IndexLogicOpEnabled; 1391 break; 1324 1392 case GL_COLOR_LOGIC_OP: 1325 1326 1393 *params = (GLdouble) ctx->Color.ColorLogicOpEnabled; 1394 break; 1327 1395 case GL_LOGIC_OP_MODE: 1328 1396 *params = ENUM_TO_DOUBLE(ctx->Color.LogicOp); 1329 1397 break; 1330 1398 case GL_MAP1_COLOR_4: 1331 1332 1399 *params = (GLdouble) ctx->Eval.Map1Color4; 1400 break; 1333 1401 case GL_MAP1_GRID_DOMAIN: 1334 1335 1336 1402 params[0] = (GLdouble) ctx->Eval.MapGrid1u1; 1403 params[1] = (GLdouble) ctx->Eval.MapGrid1u2; 1404 break; 1337 1405 case GL_MAP1_GRID_SEGMENTS: 1338 1339 1406 *params = (GLdouble) ctx->Eval.MapGrid1un; 1407 break; 1340 1408 case GL_MAP1_INDEX: 1341 1342 1409 *params = (GLdouble) ctx->Eval.Map1Index; 1410 break; 1343 1411 case GL_MAP1_NORMAL: 1344 1345 1412 *params = (GLdouble) ctx->Eval.Map1Normal; 1413 break; 1346 1414 case GL_MAP1_TEXTURE_COORD_1: 1347 1348 1415 *params = (GLdouble) ctx->Eval.Map1TextureCoord1; 1416 break; 1349 1417 case GL_MAP1_TEXTURE_COORD_2: 1350 1351 1418 *params = (GLdouble) ctx->Eval.Map1TextureCoord2; 1419 break; 1352 1420 case GL_MAP1_TEXTURE_COORD_3: 1353 1354 1421 *params = (GLdouble) ctx->Eval.Map1TextureCoord3; 1422 break; 1355 1423 case GL_MAP1_TEXTURE_COORD_4: 1356 1357 1424 *params = (GLdouble) ctx->Eval.Map1TextureCoord4; 1425 break; 1358 1426 case GL_MAP1_VERTEX_3: 1359 1360 1427 *params = (GLdouble) ctx->Eval.Map1Vertex3; 1428 break; 1361 1429 case GL_MAP1_VERTEX_4: 1362 1363 1430 *params = (GLdouble) ctx->Eval.Map1Vertex4; 1431 break; 1364 1432 case GL_MAP2_COLOR_4: 1365 1366 1433 *params = (GLdouble) ctx->Eval.Map2Color4; 1434 break; 1367 1435 case GL_MAP2_GRID_DOMAIN: 1368 1369 1370 1371 1372 1436 params[0] = (GLdouble) ctx->Eval.MapGrid2u1; 1437 params[1] = (GLdouble) ctx->Eval.MapGrid2u2; 1438 params[2] = (GLdouble) ctx->Eval.MapGrid2v1; 1439 params[3] = (GLdouble) ctx->Eval.MapGrid2v2; 1440 break; 1373 1441 case GL_MAP2_GRID_SEGMENTS: 1374 1375 1376 1442 params[0] = (GLdouble) ctx->Eval.MapGrid2un; 1443 params[1] = (GLdouble) ctx->Eval.MapGrid2vn; 1444 break; 1377 1445 case GL_MAP2_INDEX: 1378 1379 1446 *params = (GLdouble) ctx->Eval.Map2Index; 1447 break; 1380 1448 case GL_MAP2_NORMAL: 1381 1382 1449 *params = (GLdouble) ctx->Eval.Map2Normal; 1450 break; 1383 1451 case GL_MAP2_TEXTURE_COORD_1: 1384 1385 1452 *params = (GLdouble) ctx->Eval.Map2TextureCoord1; 1453 break; 1386 1454 case GL_MAP2_TEXTURE_COORD_2: 1387 1388 1455 *params = (GLdouble) ctx->Eval.Map2TextureCoord2; 1456 break; 1389 1457 case GL_MAP2_TEXTURE_COORD_3: 1390 1391 1458 *params = (GLdouble) ctx->Eval.Map2TextureCoord3; 1459 break; 1392 1460 case GL_MAP2_TEXTURE_COORD_4: 1393 1394 1461 *params = (GLdouble) ctx->Eval.Map2TextureCoord4; 1462 break; 1395 1463 case GL_MAP2_VERTEX_3: 1396 1397 1464 *params = (GLdouble) ctx->Eval.Map2Vertex3; 1465 break; 1398 1466 case GL_MAP2_VERTEX_4: 1399 1400 1467 *params = (GLdouble) ctx->Eval.Map2Vertex4; 1468 break; 1401 1469 case GL_MAP_COLOR: 1402 1403 1470 *params = (GLdouble) ctx->Pixel.MapColorFlag; 1471 break; 1404 1472 case GL_MAP_STENCIL: 1405 1406 1473 *params = (GLdouble) ctx->Pixel.MapStencilFlag; 1474 break; 1407 1475 case GL_MATRIX_MODE: 1408 1409 1476 *params = ENUM_TO_DOUBLE(ctx->Transform.MatrixMode); 1477 break; 1410 1478 case GL_MAX_ATTRIB_STACK_DEPTH: 1411 1412 1479 *params = (GLdouble) MAX_ATTRIB_STACK_DEPTH; 1480 break; 1413 1481 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: 1414 1482 *params = (GLdouble) MAX_CLIENT_ATTRIB_STACK_DEPTH; 1415 1483 break; 1416 1484 case GL_MAX_CLIP_PLANES: 1417 1418 1485 *params = (GLdouble) MAX_CLIP_PLANES; 1486 break; 1419 1487 case GL_MAX_ELEMENTS_VERTICES: /* GL_VERSION_1_2 */ 1420 1488 *params = (GLdouble) VB_MAX; … … 1424 1492 break; 1425 1493 case GL_MAX_EVAL_ORDER: 1426 1427 1494 *params = (GLdouble) MAX_EVAL_ORDER; 1495 break; 1428 1496 case GL_MAX_LIGHTS: 1429 1430 1497 *params = (GLdouble) MAX_LIGHTS; 1498 break; 1431 1499 case GL_MAX_LIST_NESTING: 1432 1433 1500 *params = (GLdouble) MAX_LIST_NESTING; 1501 break; 1434 1502 case GL_MAX_MODELVIEW_STACK_DEPTH: 1435 1436 1503 *params = (GLdouble) MAX_MODELVIEW_STACK_DEPTH; 1504 break; 1437 1505 case GL_MAX_NAME_STACK_DEPTH: 1438 1439 1506 *params = (GLdouble) MAX_NAME_STACK_DEPTH; 1507 break; 1440 1508 case GL_MAX_PIXEL_MAP_TABLE: 1441 1442 1509 *params = (GLdouble) MAX_PIXEL_MAP_TABLE; 1510 break; 1443 1511 case GL_MAX_PROJECTION_STACK_DEPTH: 1444 1445 1512 *params = (GLdouble) MAX_PROJECTION_STACK_DEPTH; 1513 break; 1446 1514 case GL_MAX_TEXTURE_SIZE: 1447 1515 case GL_MAX_3D_TEXTURE_SIZE: 1448 1516 *params = (GLdouble) ctx->Const.MaxTextureSize; 1449 1517 break; 1450 1518 case GL_MAX_TEXTURE_STACK_DEPTH: 1451 1452 1519 *params = (GLdouble) MAX_TEXTURE_STACK_DEPTH; 1520 break; 1453 1521 case GL_MAX_VIEWPORT_DIMS: 1454 1522 params[0] = (GLdouble) MAX_WIDTH; … … 1456 1524 break; 1457 1525 case GL_MODELVIEW_MATRIX: 1458 1459 1460 1461 1526 for (i=0;i<16;i++) { 1527 params[i] = (GLdouble) ctx->ModelView.m[i]; 1528 } 1529 break; 1462 1530 case GL_MODELVIEW_STACK_DEPTH: 1463 1464 1531 *params = (GLdouble) (ctx->ModelViewStackDepth + 1); 1532 break; 1465 1533 case GL_NAME_STACK_DEPTH: 1466 1467 1534 *params = (GLdouble) ctx->Select.NameStackDepth; 1535 break; 1468 1536 case GL_NORMALIZE: 1469 1470 1537 *params = (GLdouble) ctx->Transform.Normalize; 1538 break; 1471 1539 case GL_PACK_ALIGNMENT: 1472 1473 1540 *params = (GLdouble) ctx->Pack.Alignment; 1541 break; 1474 1542 case GL_PACK_LSB_FIRST: 1475 1476 1543 *params = (GLdouble) ctx->Pack.LsbFirst; 1544 break; 1477 1545 case GL_PACK_ROW_LENGTH: 1478 1479 1546 *params = (GLdouble) ctx->Pack.RowLength; 1547 break; 1480 1548 case GL_PACK_SKIP_PIXELS: 1481 1482 1549 *params = (GLdouble) ctx->Pack.SkipPixels; 1550 break; 1483 1551 case GL_PACK_SKIP_ROWS: 1484 1485 1552 *params = (GLdouble) ctx->Pack.SkipRows; 1553 break; 1486 1554 case GL_PACK_SWAP_BYTES: 1487 1488 1555 *params = (GLdouble) ctx->Pack.SwapBytes; 1556 break; 1489 1557 case GL_PACK_SKIP_IMAGES_EXT: 1490 1558 *params = (GLdouble) ctx->Pack.SkipImages; … … 1494 1562 break; 1495 1563 case GL_PERSPECTIVE_CORRECTION_HINT: 1496 1497 1564 *params = ENUM_TO_DOUBLE(ctx->Hint.PerspectiveCorrection); 1565 break; 1498 1566 case GL_PIXEL_MAP_A_TO_A_SIZE: 1499 1500 1567 *params = (GLdouble) ctx->Pixel.MapAtoAsize; 1568 break; 1501 1569 case GL_PIXEL_MAP_B_TO_B_SIZE: 1502 1503 1570 *params = (GLdouble) ctx->Pixel.MapBtoBsize; 1571 break; 1504 1572 case GL_PIXEL_MAP_G_TO_G_SIZE: 1505 1506 1573 *params = (GLdouble) ctx->Pixel.MapGtoGsize; 1574 break; 1507 1575 case GL_PIXEL_MAP_I_TO_A_SIZE: 1508 1509 1576 *params = (GLdouble) ctx->Pixel.MapItoAsize; 1577 break; 1510 1578 case GL_PIXEL_MAP_I_TO_B_SIZE: 1511 1512 1579 *params = (GLdouble) ctx->Pixel.MapItoBsize; 1580 break; 1513 1581 case GL_PIXEL_MAP_I_TO_G_SIZE: 1514 1515 1582 *params = (GLdouble) ctx->Pixel.MapItoGsize; 1583 break; 1516 1584 case GL_PIXEL_MAP_I_TO_I_SIZE: 1517 1518 1585 *params = (GLdouble) ctx->Pixel.MapItoIsize; 1586 break; 1519 1587 case GL_PIXEL_MAP_I_TO_R_SIZE: 1520 1521 1588 *params = (GLdouble) ctx->Pixel.MapItoRsize; 1589 break; 1522 1590 case GL_PIXEL_MAP_R_TO_R_SIZE: 1523 1524 1591 *params = (GLdouble) ctx->Pixel.MapRtoRsize; 1592 break; 1525 1593 case GL_PIXEL_MAP_S_TO_S_SIZE: 1526 1527 1594 *params = (GLdouble) ctx->Pixel.MapStoSsize; 1595 break; 1528 1596 case GL_POINT_SIZE: 1529 1597 *params = (GLdouble) ctx->Point.Size; 1530 1598 break; 1531 1599 case GL_POINT_SIZE_GRANULARITY: 1532 *params = (GLdouble) POINT_SIZE_GRANULARITY;1533 1600 *params = (GLdouble) ctx->Const.PointSizeGranularity; 1601 break; 1534 1602 case GL_POINT_SIZE_RANGE: 1535 params[0] = (GLdouble) MIN_POINT_SIZE; 1536 params[1] = (GLdouble) MAX_POINT_SIZE; 1537 break; 1603 params[0] = (GLdouble) ctx->Const.MinPointSizeAA; 1604 params[1] = (GLdouble) ctx->Const.MaxPointSizeAA; 1605 break; 1606 case GL_ALIASED_POINT_SIZE_RANGE: 1607 params[0] = (GLdouble) ctx->Const.MinPointSize; 1608 params[1] = (GLdouble) ctx->Const.MaxPointSize; 1609 break; 1538 1610 case GL_POINT_SMOOTH: 1539 1540 1611 *params = (GLdouble) ctx->Point.SmoothFlag; 1612 break; 1541 1613 case GL_POINT_SMOOTH_HINT: 1542 1543 1614 *params = ENUM_TO_DOUBLE(ctx->Hint.PointSmooth); 1615 break; 1544 1616 case GL_POINT_SIZE_MIN_EXT: 1545 1546 1617 *params = (GLdouble) (ctx->Point.MinSize); 1618 break; 1547 1619 case GL_POINT_SIZE_MAX_EXT: 1548 1549 1620 *params = (GLdouble) (ctx->Point.MaxSize); 1621 break; 1550 1622 case GL_POINT_FADE_THRESHOLD_SIZE_EXT: 1551 1552 1623 *params = (GLdouble) (ctx->Point.Threshold); 1624 break; 1553 1625 case GL_DISTANCE_ATTENUATION_EXT: 1554 1555 1556 1557 1626 params[0] = (GLdouble) (ctx->Point.Params[0]); 1627 params[1] = (GLdouble) (ctx->Point.Params[1]); 1628 params[2] = (GLdouble) (ctx->Point.Params[2]); 1629 break; 1558 1630 case GL_POLYGON_MODE: 1559 params[0] = ENUM_TO_DOUBLE(ctx->Polygon.FrontMode); 1560 params[1] = ENUM_TO_DOUBLE(ctx->Polygon.BackMode); 1561 break; 1562 #ifdef GL_EXT_polygon_offset 1563 case GL_POLYGON_OFFSET_BIAS_EXT: 1631 params[0] = ENUM_TO_DOUBLE(ctx->Polygon.FrontMode); 1632 params[1] = ENUM_TO_DOUBLE(ctx->Polygon.BackMode); 1633 break; 1634 case GL_POLYGON_OFFSET_BIAS_EXT: /* GL_EXT_polygon_offset */ 1564 1635 *params = (GLdouble) ctx->Polygon.OffsetUnits; 1565 1636 break; 1566 #endif1567 1637 case GL_POLYGON_OFFSET_FACTOR: 1568 1638 *params = (GLdouble) ctx->Polygon.OffsetFactor; … … 1572 1642 break; 1573 1643 case GL_POLYGON_SMOOTH: 1574 1575 1644 *params = (GLdouble) ctx->Polygon.SmoothFlag; 1645 break; 1576 1646 case GL_POLYGON_SMOOTH_HINT: 1577 1578 1647 *params = ENUM_TO_DOUBLE(ctx->Hint.PolygonSmooth); 1648 break; 1579 1649 case GL_POLYGON_STIPPLE: 1580 1650 *params = (GLdouble) ctx->Polygon.StippleFlag; 1581 1651 break; 1582 1652 case GL_PROJECTION_MATRIX: 1583 1584 1585 1586 1653 for (i=0;i<16;i++) { 1654 params[i] = (GLdouble) ctx->ProjectionMatrix.m[i]; 1655 } 1656 break; 1587 1657 case GL_PROJECTION_STACK_DEPTH: 1588 1589 1658 *params = (GLdouble) (ctx->ProjectionStackDepth + 1); 1659 break; 1590 1660 case GL_READ_BUFFER: 1591 1592 1661 *params = ENUM_TO_DOUBLE(ctx->Pixel.ReadBuffer); 1662 break; 1593 1663 case GL_RED_BIAS: 1594 1664 *params = (GLdouble) ctx->Pixel.RedBias; … … 1601 1671 break; 1602 1672 case GL_RENDER_MODE: 1603 1604 1673 *params = ENUM_TO_DOUBLE(ctx->RenderMode); 1674 break; 1605 1675 case GL_RGBA_MODE: 1606 1607 1676 *params = (GLdouble) ctx->Visual->RGBAflag; 1677 break; 1608 1678 case GL_SCISSOR_BOX: 1609 1610 1611 1612 1613 1679 params[0] = (GLdouble) ctx->Scissor.X; 1680 params[1] = (GLdouble) ctx->Scissor.Y; 1681 params[2] = (GLdouble) ctx->Scissor.Width; 1682 params[3] = (GLdouble) ctx->Scissor.Height; 1683 break; 1614 1684 case GL_SCISSOR_TEST: 1615 1616 1685 *params = (GLdouble) ctx->Scissor.Enabled; 1686 break; 1617 1687 case GL_SELECTION_BUFFER_SIZE: 1618 1688 *params = (GLdouble) ctx->Select.BufferSize; 1619 1689 break; 1620 1690 case GL_SHADE_MODEL: 1621 1622 1691 *params = ENUM_TO_DOUBLE(ctx->Light.ShadeModel); 1692 break; 1623 1693 case GL_SHARED_TEXTURE_PALETTE_EXT: 1624 1694 *params = (GLdouble) ctx->Texture.SharedPalette; … … 1628 1698 break; 1629 1699 case GL_STENCIL_CLEAR_VALUE: 1630 1631 1700 *params = (GLdouble) ctx->Stencil.Clear; 1701 break; 1632 1702 case GL_STENCIL_FAIL: 1633 1634 1703 *params = ENUM_TO_DOUBLE(ctx->Stencil.FailFunc); 1704 break; 1635 1705 case GL_STENCIL_FUNC: 1636 1637 1706 *params = ENUM_TO_DOUBLE(ctx->Stencil.Function); 1707 break; 1638 1708 case GL_STENCIL_PASS_DEPTH_FAIL: 1639 1640 1709 *params = ENUM_TO_DOUBLE(ctx->Stencil.ZFailFunc); 1710 break; 1641 1711 case GL_STENCIL_PASS_DEPTH_PASS: 1642 1643 1712 *params = ENUM_TO_DOUBLE(ctx->Stencil.ZPassFunc); 1713 break; 1644 1714 case GL_STENCIL_REF: 1645 1646 1715 *params = (GLdouble) ctx->Stencil.Ref; 1716 break; 1647 1717 case GL_STENCIL_TEST: 1648 1649 1718 *params = (GLdouble) ctx->Stencil.Enabled; 1719 break; 1650 1720 case GL_STENCIL_VALUE_MASK: 1651 1652 1721 *params = (GLdouble) ctx->Stencil.ValueMask; 1722 break; 1653 1723 case GL_STENCIL_WRITEMASK: 1654 1655 1724 *params = (GLdouble) ctx->Stencil.WriteMask; 1725 break; 1656 1726 case GL_STEREO: 1657 1658 1727 *params = (GLdouble) ctx->Visual->StereoFlag; 1728 break; 1659 1729 case GL_SUBPIXEL_BITS: 1660 *params = 0.0; /* TODO */ 1661 1730 *params = (GLdouble) ctx->Const.SubPixelBits; 1731 break; 1662 1732 case GL_TEXTURE_1D: 1663 *params = gl_IsEnabled(ctx,GL_TEXTURE_1D) ? 1.0 : 0.0;1664 1733 *params = _mesa_IsEnabled(GL_TEXTURE_1D) ? 1.0 : 0.0; 1734 break; 1665 1735 case GL_TEXTURE_2D: 1666 *params = gl_IsEnabled(ctx,GL_TEXTURE_2D) ? 1.0 : 0.0;1667 1736 *params = _mesa_IsEnabled(GL_TEXTURE_2D) ? 1.0 : 0.0; 1737 break; 1668 1738 case GL_TEXTURE_3D: 1669 *params = gl_IsEnabled(ctx,GL_TEXTURE_3D) ? 1.0 : 0.0;1670 1739 *params = _mesa_IsEnabled(GL_TEXTURE_3D) ? 1.0 : 0.0; 1740 break; 1671 1741 case GL_TEXTURE_BINDING_1D: 1672 1742 *params = (GLdouble) textureUnit->CurrentD[1]->Name; … … 1679 1749 break; 1680 1750 case GL_TEXTURE_ENV_COLOR: 1681 1682 1683 1684 1685 1751 params[0] = (GLdouble) textureUnit->EnvColor[0]; 1752 params[1] = (GLdouble) textureUnit->EnvColor[1]; 1753 params[2] = (GLdouble) textureUnit->EnvColor[2]; 1754 params[3] = (GLdouble) textureUnit->EnvColor[3]; 1755 break; 1686 1756 case GL_TEXTURE_ENV_MODE: 1687 1688 1757 *params = ENUM_TO_DOUBLE(textureUnit->EnvMode); 1758 break; 1689 1759 case GL_TEXTURE_GEN_S: 1690 1691 1760 *params = (textureUnit->TexGenEnabled & S_BIT) ? 1.0 : 0.0; 1761 break; 1692 1762 case GL_TEXTURE_GEN_T: 1693 1694 1763 *params = (textureUnit->TexGenEnabled & T_BIT) ? 1.0 : 0.0; 1764 break; 1695 1765 case GL_TEXTURE_GEN_R: 1696 1697 1766 *params = (textureUnit->TexGenEnabled & R_BIT) ? 1.0 : 0.0; 1767 break; 1698 1768 case GL_TEXTURE_GEN_Q: 1699 1700 1769 *params = (textureUnit->TexGenEnabled & Q_BIT) ? 1.0 : 0.0; 1770 break; 1701 1771 case GL_TEXTURE_MATRIX: 1702 1772 for (i=0;i<16;i++) { 1703 1704 1705 1773 params[i] = (GLdouble) ctx->TextureMatrix[texTransformUnit].m[i]; 1774 } 1775 break; 1706 1776 case GL_TEXTURE_STACK_DEPTH: 1707 1708 1777 *params = (GLdouble) (ctx->TextureStackDepth[texTransformUnit] + 1); 1778 break; 1709 1779 case GL_UNPACK_ALIGNMENT: 1710 1711 1780 *params = (GLdouble) ctx->Unpack.Alignment; 1781 break; 1712 1782 case GL_UNPACK_LSB_FIRST: 1713 1714 1783 *params = (GLdouble) ctx->Unpack.LsbFirst; 1784 break; 1715 1785 case GL_UNPACK_ROW_LENGTH: 1716 1717 1786 *params = (GLdouble) ctx->Unpack.RowLength; 1787 break; 1718 1788 case GL_UNPACK_SKIP_PIXELS: 1719 1720 1789 *params = (GLdouble) ctx->Unpack.SkipPixels; 1790 break; 1721 1791 case GL_UNPACK_SKIP_ROWS: 1722 1723 1792 *params = (GLdouble) ctx->Unpack.SkipRows; 1793 break; 1724 1794 case GL_UNPACK_SWAP_BYTES: 1725 1726 1795 *params = (GLdouble) ctx->Unpack.SwapBytes; 1796 break; 1727 1797 case GL_UNPACK_SKIP_IMAGES_EXT: 1728 1798 *params = (GLdouble) ctx->Unpack.SkipImages; … … 1732 1802 break; 1733 1803 case GL_VIEWPORT: 1734 1735 1736 1737 1738 1804 params[0] = (GLdouble) ctx->Viewport.X; 1805 params[1] = (GLdouble) ctx->Viewport.Y; 1806 params[2] = (GLdouble) ctx->Viewport.Width; 1807 params[3] = (GLdouble) ctx->Viewport.Height; 1808 break; 1739 1809 case GL_ZOOM_X: 1740 1741 1810 *params = (GLdouble) ctx->Pixel.ZoomX; 1811 break; 1742 1812 case GL_ZOOM_Y: 1743 1744 1813 *params = (GLdouble) ctx->Pixel.ZoomY; 1814 break; 1745 1815 case GL_VERTEX_ARRAY: 1746 1816 *params = (GLdouble) ctx->Array.Vertex.Enabled; … … 1835 1905 /* GL_PGI_misc_hints */ 1836 1906 case GL_STRICT_DEPTHFUNC_HINT_PGI: 1837 1907 *params = ENUM_TO_DOUBLE(GL_NICEST); 1838 1908 break; 1839 1909 case GL_STRICT_LIGHTING_HINT_PGI: 1840 1841 1910 *params = ENUM_TO_DOUBLE(ctx->Hint.StrictLighting); 1911 break; 1842 1912 case GL_STRICT_SCISSOR_HINT_PGI: 1843 1913 case GL_FULL_STIPPLE_HINT_PGI: 1844 1845 1914 *params = ENUM_TO_DOUBLE(GL_TRUE); 1915 break; 1846 1916 case GL_CONSERVE_MEMORY_HINT_PGI: 1847 1848 1917 *params = ENUM_TO_DOUBLE(GL_FALSE); 1918 break; 1849 1919 case GL_ALWAYS_FAST_HINT_PGI: 1850 1851 1852 1853 1920 *params = (GLdouble) (ctx->Hint.AllowDrawWin == GL_TRUE && 1921 ctx->Hint.AllowDrawSpn == GL_FALSE && 1922 ctx->Hint.AllowDrawMem == GL_FALSE); 1923 break; 1854 1924 case GL_ALWAYS_SOFT_HINT_PGI: 1855 1856 1857 1858 1925 *params = (GLdouble) (ctx->Hint.AllowDrawWin == GL_TRUE && 1926 ctx->Hint.AllowDrawSpn == GL_TRUE && 1927 ctx->Hint.AllowDrawMem == GL_TRUE); 1928 break; 1859 1929 case GL_ALLOW_DRAW_OBJ_HINT_PGI: 1860 1861 1930 *params = (GLdouble) GL_TRUE; 1931 break; 1862 1932 case GL_ALLOW_DRAW_WIN_HINT_PGI: 1863 1864 1933 *params = (GLdouble) ctx->Hint.AllowDrawWin; 1934 break; 1865 1935 case GL_ALLOW_DRAW_SPN_HINT_PGI: 1866 1867 1936 *params = (GLdouble) ctx->Hint.AllowDrawSpn; 1937 break; 1868 1938 case GL_ALLOW_DRAW_MEM_HINT_PGI: 1869 1870 1939 *params = (GLdouble) ctx->Hint.AllowDrawMem; 1940 break; 1871 1941 case GL_CLIP_NEAR_HINT_PGI: 1872 1942 case GL_CLIP_FAR_HINT_PGI: 1873 1874 1943 *params = ENUM_TO_DOUBLE(GL_TRUE); 1944 break; 1875 1945 case GL_WIDE_LINE_HINT_PGI: 1876 1877 1946 *params = ENUM_TO_DOUBLE(GL_DONT_CARE); 1947 break; 1878 1948 case GL_BACK_NORMALS_HINT_PGI: 1879 1880 1949 *params = ENUM_TO_DOUBLE(GL_TRUE); 1950 break; 1881 1951 case GL_NATIVE_GRAPHICS_HANDLE_PGI: 1882 *params = 0; 1883 break; 1884 1885 1952 *params = 0; 1953 break; 1954 1955 /* GL_EXT_compiled_vertex_array */ 1956 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: 1957 *params = (GLdouble) ctx->Array.LockFirst; 1958 break; 1959 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: 1960 *params = (GLdouble) ctx->Array.LockCount; 1961 break; 1962 1963 /* GL_ARB_transpose_matrix */ 1964 case GL_TRANSPOSE_COLOR_MATRIX_ARB: 1965 /* don't have a color matrix */ 1966 break; 1967 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB: 1968 { 1969 GLfloat tm[16]; 1970 GLuint i; 1971 gl_matrix_transposef(tm, ctx->ModelView.m); 1972 for (i=0;i<16;i++) { 1973 params[i] = (GLdouble) tm[i]; 1974 } 1975 } 1976 break; 1977 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB: 1978 { 1979 GLfloat tm[16]; 1980 GLuint i; 1981 gl_matrix_transposef(tm, ctx->ProjectionMatrix.m); 1982 for (i=0;i<16;i++) { 1983 params[i] = (GLdouble) tm[i]; 1984 } 1985 } 1986 break; 1987 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB: 1988 { 1989 GLfloat tm[16]; 1990 GLuint i; 1991 gl_matrix_transposef(tm, ctx->TextureMatrix[texTransformUnit].m); 1992 for (i=0;i<16;i++) { 1993 params[i] = (GLdouble) tm[i]; 1994 } 1995 } 1996 break; 1997 1998 /* GL_HP_occlusion_test */ 1999 case GL_OCCLUSION_TEST_HP: 2000 if (ctx->Extensions.HaveHpOcclusionTest) { 2001 *params = (GLdouble) ctx->Depth.OcclusionTest; 2002 } 2003 else { 2004 gl_error( ctx, GL_INVALID_ENUM, "glGetDoublev" ); 2005 } 2006 return; 2007 case GL_OCCLUSION_TEST_RESULT_HP: 2008 if (ctx->Extensions.HaveHpOcclusionTest) { 2009 *params = (GLdouble) ctx->OcclusionResult; 2010 ctx->OcclusionResult = GL_FALSE; /* reset now */ 2011 } 2012 else { 2013 gl_error( ctx, GL_INVALID_ENUM, "glGetDoublev" ); 2014 } 2015 return; 1886 2016 1887 2017 default: 1888 printf("invalid enum: %x\n", pname);1889 2018 gl_error( ctx, GL_INVALID_ENUM, "glGetDoublev" ); 1890 2019 } … … 1894 2023 1895 2024 1896 void gl_GetFloatv( GLcontext *ctx, GLenum pname, GLfloat *params ) 2025 void 2026 _mesa_GetFloatv( GLenum pname, GLfloat *params ) 1897 2027 { 2028 GET_CURRENT_CONTEXT(ctx); 1898 2029 GLuint i; 1899 2030 GLuint texUnit = ctx->Texture.CurrentUnit; … … 1944 2075 break; 1945 2076 case GL_AUX_BUFFERS: 1946 *params = (GLfloat) NUM_AUX_BUFFERS;2077 *params = (GLfloat) ctx->Const.NumAuxBuffers; 1947 2078 break; 1948 2079 case GL_BLEND: … … 1955 2086 *params = ENUM_TO_FLOAT(ctx->Color.BlendSrcRGB); 1956 2087 break; 1957 case GL_BLEND_SRC_RGB_ INGR:2088 case GL_BLEND_SRC_RGB_EXT: 1958 2089 *params = ENUM_TO_FLOAT(ctx->Color.BlendSrcRGB); 1959 2090 break; 1960 case GL_BLEND_DST_RGB_ INGR:2091 case GL_BLEND_DST_RGB_EXT: 1961 2092 *params = ENUM_TO_FLOAT(ctx->Color.BlendDstRGB); 1962 2093 break; 1963 case GL_BLEND_SRC_ALPHA_ INGR:2094 case GL_BLEND_SRC_ALPHA_EXT: 1964 2095 *params = ENUM_TO_FLOAT(ctx->Color.BlendSrcA); 1965 2096 break; 1966 case GL_BLEND_DST_ALPHA_ INGR:2097 case GL_BLEND_DST_ALPHA_EXT: 1967 2098 *params = ENUM_TO_FLOAT(ctx->Color.BlendDstA); 1968 2099 break; 1969 2100 case GL_BLEND_EQUATION_EXT: 1970 1971 2101 *params = ENUM_TO_FLOAT(ctx->Color.BlendEquation); 2102 break; 1972 2103 case GL_BLEND_COLOR_EXT: 1973 1974 1975 1976 1977 2104 params[0] = ctx->Color.BlendColor[0]; 2105 params[1] = ctx->Color.BlendColor[1]; 2106 params[2] = ctx->Color.BlendColor[2]; 2107 params[3] = ctx->Color.BlendColor[3]; 2108 break; 1978 2109 case GL_BLUE_BIAS: 1979 2110 *params = ctx->Pixel.BlueBias; … … 2024 2155 break; 2025 2156 case GL_CURRENT_COLOR: 2026 2157 UBYTE_RGBA_TO_FLOAT_RGBA(params, ctx->Current.ByteColor); 2027 2158 break; 2028 2159 case GL_CURRENT_INDEX: … … 2035 2166 break; 2036 2167 case GL_CURRENT_RASTER_COLOR: 2037 2038 2039 2040 2041 2168 params[0] = ctx->Current.RasterColor[0]; 2169 params[1] = ctx->Current.RasterColor[1]; 2170 params[2] = ctx->Current.RasterColor[2]; 2171 params[3] = ctx->Current.RasterColor[3]; 2172 break; 2042 2173 case GL_CURRENT_RASTER_DISTANCE: 2043 2044 2174 params[0] = ctx->Current.RasterDistance; 2175 break; 2045 2176 case GL_CURRENT_RASTER_INDEX: 2046 2047 2177 *params = (GLfloat) ctx->Current.RasterIndex; 2178 break; 2048 2179 case GL_CURRENT_RASTER_POSITION: 2049 2050 2051 2052 2053 2180 params[0] = ctx->Current.RasterPos[0]; 2181 params[1] = ctx->Current.RasterPos[1]; 2182 params[2] = ctx->Current.RasterPos[2]; 2183 params[3] = ctx->Current.RasterPos[3]; 2184 break; 2054 2185 case GL_CURRENT_RASTER_TEXTURE_COORDS: 2055 2056 2057 2058 2059 2186 params[0] = ctx->Current.RasterMultiTexCoord[texTransformUnit][0]; 2187 params[1] = ctx->Current.RasterMultiTexCoord[texTransformUnit][1]; 2188 params[2] = ctx->Current.RasterMultiTexCoord[texTransformUnit][2]; 2189 params[3] = ctx->Current.RasterMultiTexCoord[texTransformUnit][3]; 2190 break; 2060 2191 case GL_CURRENT_RASTER_POSITION_VALID: 2061 2062 2192 *params = (GLfloat) ctx->Current.RasterPosValid; 2193 break; 2063 2194 case GL_CURRENT_TEXTURE_COORDS: 2064 2065 2066 2067 2068 2195 params[0] = (GLfloat) ctx->Current.Texcoord[texTransformUnit][0]; 2196 params[1] = (GLfloat) ctx->Current.Texcoord[texTransformUnit][1]; 2197 params[2] = (GLfloat) ctx->Current.Texcoord[texTransformUnit][2]; 2198 params[3] = (GLfloat) ctx->Current.Texcoord[texTransformUnit][3]; 2199 break; 2069 2200 case GL_DEPTH_BIAS: 2070 2071 2201 *params = (GLfloat) ctx->Pixel.DepthBias; 2202 break; 2072 2203 case GL_DEPTH_BITS: 2073 2074 2204 *params = (GLfloat) ctx->Visual->DepthBits; 2205 break; 2075 2206 case GL_DEPTH_CLEAR_VALUE: 2076 2077 2207 *params = (GLfloat) ctx->Depth.Clear; 2208 break; 2078 2209 case GL_DEPTH_FUNC: 2079 2080 2210 *params = ENUM_TO_FLOAT(ctx->Depth.Func); 2211 break; 2081 2212 case GL_DEPTH_RANGE: 2082 2213 params[0] = (GLfloat) ctx->Viewport.Near; 2083 2214 params[1] = (GLfloat) ctx->Viewport.Far; 2084 2215 break; 2085 2216 case GL_DEPTH_SCALE: 2086 2087 2217 *params = (GLfloat) ctx->Pixel.DepthScale; 2218 break; 2088 2219 case GL_DEPTH_TEST: 2089 2090 2220 *params = (GLfloat) ctx->Depth.Test; 2221 break; 2091 2222 case GL_DEPTH_WRITEMASK: 2092 2093 2223 *params = (GLfloat) ctx->Depth.Mask; 2224 break; 2094 2225 case GL_DITHER: 2095 2096 2226 *params = (GLfloat) ctx->Color.DitherFlag; 2227 break; 2097 2228 case GL_DOUBLEBUFFER: 2098 2099 2229 *params = (GLfloat) ctx->Visual->DBflag; 2230 break; 2100 2231 case GL_DRAW_BUFFER: 2101 2102 2232 *params = ENUM_TO_FLOAT(ctx->Color.DrawBuffer); 2233 break; 2103 2234 case GL_EDGE_FLAG: 2104 2105 2235 *params = (GLfloat) ctx->Current.EdgeFlag; 2236 break; 2106 2237 case GL_FEEDBACK_BUFFER_SIZE: 2107 /* TODO: is this right? Or, return number of entries in buffer? */2108 2238 *params = (GLfloat) ctx->Feedback.BufferSize; 2109 2239 break; … … 2112 2242 break; 2113 2243 case GL_FOG: 2114 2115 2244 *params = (GLfloat) ctx->Fog.Enabled; 2245 break; 2116 2246 case GL_FOG_COLOR: 2117 2118 2119 2120 2121 2247 params[0] = ctx->Fog.Color[0]; 2248 params[1] = ctx->Fog.Color[1]; 2249 params[2] = ctx->Fog.Color[2]; 2250 params[3] = ctx->Fog.Color[3]; 2251 break; 2122 2252 case GL_FOG_DENSITY: 2123 2124 2253 *params = ctx->Fog.Density; 2254 break; 2125 2255 case GL_FOG_END: 2126 2127 2256 *params = ctx->Fog.End; 2257 break; 2128 2258 case GL_FOG_HINT: 2129 2130 2259 *params = ENUM_TO_FLOAT(ctx->Hint.Fog); 2260 break; 2131 2261 case GL_FOG_INDEX: 2132 2133 2262 *params = ctx->Fog.Index; 2263 break; 2134 2264 case GL_FOG_MODE: 2135 2136 2265 *params = ENUM_TO_FLOAT(ctx->Fog.Mode); 2266 break; 2137 2267 case GL_FOG_START: 2138 2139 2268 *params = ctx->Fog.Start; 2269 break; 2140 2270 case GL_FRONT_FACE: 2141 2142 2271 *params = ENUM_TO_FLOAT(ctx->Polygon.FrontFace); 2272 break; 2143 2273 case GL_GREEN_BIAS: 2144 2274 *params = (GLfloat) ctx->Pixel.GreenBias; … … 2152 2282 case GL_INDEX_BITS: 2153 2283 *params = (GLfloat) ctx->Visual->IndexBits; 2154 2284 break; 2155 2285 case GL_INDEX_CLEAR_VALUE: 2156 2286 *params = (GLfloat) ctx->Color.ClearIndex; 2157 2287 break; 2158 2288 case GL_INDEX_MODE: 2159 2160 2289 *params = ctx->Visual->RGBAflag ? 0.0F : 1.0F; 2290 break; 2161 2291 case GL_INDEX_OFFSET: 2162 2163 2292 *params = (GLfloat) ctx->Pixel.IndexOffset; 2293 break; 2164 2294 case GL_INDEX_SHIFT: 2165 2166 2295 *params = (GLfloat) ctx->Pixel.IndexShift; 2296 break; 2167 2297 case GL_INDEX_WRITEMASK: 2168 2169 2298 *params = (GLfloat) ctx->Color.IndexMask; 2299 break; 2170 2300 case GL_LIGHT0: 2171 2301 case GL_LIGHT1: … … 2176 2306 case GL_LIGHT6: 2177 2307 case GL_LIGHT7: 2178 2179 2308 *params = (GLfloat) ctx->Light.Light[pname-GL_LIGHT0].Enabled; 2309 break; 2180 2310 case GL_LIGHTING: 2181 2182 2311 *params = (GLfloat) ctx->Light.Enabled; 2312 break; 2183 2313 case GL_LIGHT_MODEL_AMBIENT: 2184 2185 2186 2187 2188 2314 params[0] = ctx->Light.Model.Ambient[0]; 2315 params[1] = ctx->Light.Model.Ambient[1]; 2316 params[2] = ctx->Light.Model.Ambient[2]; 2317 params[3] = ctx->Light.Model.Ambient[3]; 2318 break; 2189 2319 case GL_LIGHT_MODEL_COLOR_CONTROL: 2190 2320 params[0] = ENUM_TO_FLOAT(ctx->Light.Model.ColorControl); 2191 2321 break; 2192 2322 case GL_LIGHT_MODEL_LOCAL_VIEWER: 2193 2194 2323 *params = (GLfloat) ctx->Light.Model.LocalViewer; 2324 break; 2195 2325 case GL_LIGHT_MODEL_TWO_SIDE: 2196 2197 2326 *params = (GLfloat) ctx->Light.Model.TwoSide; 2327 break; 2198 2328 case GL_LINE_SMOOTH: 2199 2200 2329 *params = (GLfloat) ctx->Line.SmoothFlag; 2330 break; 2201 2331 case GL_LINE_SMOOTH_HINT: 2202 2203 2332 *params = ENUM_TO_FLOAT(ctx->Hint.LineSmooth); 2333 break; 2204 2334 case GL_LINE_STIPPLE: 2205 2206 2335 *params = (GLfloat) ctx->Line.StippleFlag; 2336 break; 2207 2337 case GL_LINE_STIPPLE_PATTERN: 2208 2338 *params = (GLfloat) ctx->Line.StipplePattern; … … 2212 2342 break; 2213 2343 case GL_LINE_WIDTH: 2214 2215 2344 *params = (GLfloat) ctx->Line.Width; 2345 break; 2216 2346 case GL_LINE_WIDTH_GRANULARITY: 2217 *params = (GLfloat) LINE_WIDTH_GRANULARITY;2218 2347 *params = (GLfloat) ctx->Const.LineWidthGranularity; 2348 break; 2219 2349 case GL_LINE_WIDTH_RANGE: 2220 params[0] = (GLfloat) MIN_LINE_WIDTH; 2221 params[1] = (GLfloat) MAX_LINE_WIDTH; 2222 break; 2350 params[0] = (GLfloat) ctx->Const.MinLineWidthAA; 2351 params[1] = (GLfloat) ctx->Const.MaxLineWidthAA; 2352 break; 2353 case GL_ALIASED_LINE_WIDTH_RANGE: 2354 params[0] = (GLfloat) ctx->Const.MinLineWidth; 2355 params[1] = (GLfloat) ctx->Const.MaxLineWidth; 2356 break; 2223 2357 case GL_LIST_BASE: 2224 2225 2358 *params = (GLfloat) ctx->List.ListBase; 2359 break; 2226 2360 case GL_LIST_INDEX: 2227 2228 2361 *params = (GLfloat) ctx->CurrentListNum; 2362 break; 2229 2363 case GL_LIST_MODE: 2230 2231 2232 2364 *params = ctx->ExecuteFlag ? ENUM_TO_FLOAT(GL_COMPILE_AND_EXECUTE) 2365 : ENUM_TO_FLOAT(GL_COMPILE); 2366 break; 2233 2367 case GL_INDEX_LOGIC_OP: 2234 2235 2368 *params = (GLfloat) ctx->Color.IndexLogicOpEnabled; 2369 break; 2236 2370 case GL_COLOR_LOGIC_OP: 2237 2238 2371 *params = (GLfloat) ctx->Color.ColorLogicOpEnabled; 2372 break; 2239 2373 case GL_LOGIC_OP_MODE: 2240 2374 *params = ENUM_TO_FLOAT(ctx->Color.LogicOp); 2241 2375 break; 2242 2376 case GL_MAP1_COLOR_4: 2243 2244 2377 *params = (GLfloat) ctx->Eval.Map1Color4; 2378 break; 2245 2379 case GL_MAP1_GRID_DOMAIN: 2246 2247 2248 2380 params[0] = ctx->Eval.MapGrid1u1; 2381 params[1] = ctx->Eval.MapGrid1u2; 2382 break; 2249 2383 case GL_MAP1_GRID_SEGMENTS: 2250 2251 2384 *params = (GLfloat) ctx->Eval.MapGrid1un; 2385 break; 2252 2386 case GL_MAP1_INDEX: 2253 2254 2387 *params = (GLfloat) ctx->Eval.Map1Index; 2388 break; 2255 2389 case GL_MAP1_NORMAL: 2256 2257 2390 *params = (GLfloat) ctx->Eval.Map1Normal; 2391 break; 2258 2392 case GL_MAP1_TEXTURE_COORD_1: 2259 2260 2393 *params = (GLfloat) ctx->Eval.Map1TextureCoord1; 2394 break; 2261 2395 case GL_MAP1_TEXTURE_COORD_2: 2262 2263 2396 *params = (GLfloat) ctx->Eval.Map1TextureCoord2; 2397 break; 2264 2398 case GL_MAP1_TEXTURE_COORD_3: 2265 2266 2399 *params = (GLfloat) ctx->Eval.Map1TextureCoord3; 2400 break; 2267 2401 case GL_MAP1_TEXTURE_COORD_4: 2268 2269 2402 *params = (GLfloat) ctx->Eval.Map1TextureCoord4; 2403 break; 2270 2404 case GL_MAP1_VERTEX_3: 2271 2272 2405 *params = (GLfloat) ctx->Eval.Map1Vertex3; 2406 break; 2273 2407 case GL_MAP1_VERTEX_4: 2274 2275 2408 *params = (GLfloat) ctx->Eval.Map1Vertex4; 2409 break; 2276 2410 case GL_MAP2_COLOR_4: 2277 2278 2411 *params = (GLfloat) ctx->Eval.Map2Color4; 2412 break; 2279 2413 case GL_MAP2_GRID_DOMAIN: 2280 2281 2282 2283 2284 2414 params[0] = ctx->Eval.MapGrid2u1; 2415 params[1] = ctx->Eval.MapGrid2u2; 2416 params[2] = ctx->Eval.MapGrid2v1; 2417 params[3] = ctx->Eval.MapGrid2v2; 2418 break; 2285 2419 case GL_MAP2_GRID_SEGMENTS: 2286 2287 2288 2420 params[0] = (GLfloat) ctx->Eval.MapGrid2un; 2421 params[1] = (GLfloat) ctx->Eval.MapGrid2vn; 2422 break; 2289 2423 case GL_MAP2_INDEX: 2290 2291 2424 *params = (GLfloat) ctx->Eval.Map2Index; 2425 break; 2292 2426 case GL_MAP2_NORMAL: 2293 2294 2427 *params = (GLfloat) ctx->Eval.Map2Normal; 2428 break; 2295 2429 case GL_MAP2_TEXTURE_COORD_1: 2296 2297 2430 *params = ctx->Eval.Map2TextureCoord1; 2431 break; 2298 2432 case GL_MAP2_TEXTURE_COORD_2: 2299 2300 2433 *params = ctx->Eval.Map2TextureCoord2; 2434 break; 2301 2435 case GL_MAP2_TEXTURE_COORD_3: 2302 2303 2436 *params = ctx->Eval.Map2TextureCoord3; 2437 break; 2304 2438 case GL_MAP2_TEXTURE_COORD_4: 2305 2306 2439 *params = ctx->Eval.Map2TextureCoord4; 2440 break; 2307 2441 case GL_MAP2_VERTEX_3: 2308 2309 2442 *params = (GLfloat) ctx->Eval.Map2Vertex3; 2443 break; 2310 2444 case GL_MAP2_VERTEX_4: 2311 2312 2445 *params = (GLfloat) ctx->Eval.Map2Vertex4; 2446 break; 2313 2447 case GL_MAP_COLOR: 2314 2315 2448 *params = (GLfloat) ctx->Pixel.MapColorFlag; 2449 break; 2316 2450 case GL_MAP_STENCIL: 2317 2318 2451 *params = (GLfloat) ctx->Pixel.MapStencilFlag; 2452 break; 2319 2453 case GL_MATRIX_MODE: 2320 2321 2454 *params = ENUM_TO_FLOAT(ctx->Transform.MatrixMode); 2455 break; 2322 2456 case GL_MAX_ATTRIB_STACK_DEPTH: 2323 2324 2457 *params = (GLfloat) MAX_ATTRIB_STACK_DEPTH; 2458 break; 2325 2459 case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: 2326 2460 *params = (GLfloat) MAX_CLIENT_ATTRIB_STACK_DEPTH; 2327 2461 break; 2328 2462 case GL_MAX_CLIP_PLANES: 2329 2330 2463 *params = (GLfloat) MAX_CLIP_PLANES; 2464 break; 2331 2465 case GL_MAX_ELEMENTS_VERTICES: /* GL_VERSION_1_2 */ 2332 2466 *params = (GLfloat) VB_MAX; … … 2336 2470 break; 2337 2471 case GL_MAX_EVAL_ORDER: 2338 2339 2472 *params = (GLfloat) MAX_EVAL_ORDER; 2473 break; 2340 2474 case GL_MAX_LIGHTS: 2341 2342 2475 *params = (GLfloat) MAX_LIGHTS; 2476 break; 2343 2477 case GL_MAX_LIST_NESTING: 2344 2345 2478 *params = (GLfloat) MAX_LIST_NESTING; 2479 break; 2346 2480 case GL_MAX_MODELVIEW_STACK_DEPTH: 2347 2348 2481 *params = (GLfloat) MAX_MODELVIEW_STACK_DEPTH; 2482 break; 2349 2483 case GL_MAX_NAME_STACK_DEPTH: 2350 2351 2484 *params = (GLfloat) MAX_NAME_STACK_DEPTH; 2485 break; 2352 2486 case GL_MAX_PIXEL_MAP_TABLE: 2353 2354 2487 *params = (GLfloat) MAX_PIXEL_MAP_TABLE; 2488 break; 2355 2489 case GL_MAX_PROJECTION_STACK_DEPTH: 2356 2357 2490 *params = (GLfloat) MAX_PROJECTION_STACK_DEPTH; 2491 break; 2358 2492 case GL_MAX_TEXTURE_SIZE: 2359 2493 case GL_MAX_3D_TEXTURE_SIZE: 2360 2494 *params = (GLfloat) ctx->Const.MaxTextureSize; 2361 2495 break; 2362 2496 case GL_MAX_TEXTURE_STACK_DEPTH: 2363 2364 2497 *params = (GLfloat) MAX_TEXTURE_STACK_DEPTH; 2498 break; 2365 2499 case GL_MAX_VIEWPORT_DIMS: 2366 2500 params[0] = (GLfloat) MAX_WIDTH; … … 2368 2502 break; 2369 2503 case GL_MODELVIEW_MATRIX: 2370 2371 2372 2373 2504 for (i=0;i<16;i++) { 2505 params[i] = ctx->ModelView.m[i]; 2506 } 2507 break; 2374 2508 case GL_MODELVIEW_STACK_DEPTH: 2375 2376 2509 *params = (GLfloat) (ctx->ModelViewStackDepth + 1); 2510 break; 2377 2511 case GL_NAME_STACK_DEPTH: 2378 2379 2512 *params = (GLfloat) ctx->Select.NameStackDepth; 2513 break; 2380 2514 case GL_NORMALIZE: 2381 2382 2515 *params = (GLfloat) ctx->Transform.Normalize; 2516 break; 2383 2517 case GL_PACK_ALIGNMENT: 2384 2385 2518 *params = (GLfloat) ctx->Pack.Alignment; 2519 break; 2386 2520 case GL_PACK_LSB_FIRST: 2387 2388 2521 *params = (GLfloat) ctx->Pack.LsbFirst; 2522 break; 2389 2523 case GL_PACK_ROW_LENGTH: 2390 2391 2524 *params = (GLfloat) ctx->Pack.RowLength; 2525 break; 2392 2526 case GL_PACK_SKIP_PIXELS: 2393 2394 2527 *params = (GLfloat) ctx->Pack.SkipPixels; 2528 break; 2395 2529 case GL_PACK_SKIP_ROWS: 2396 2397 2530 *params = (GLfloat) ctx->Pack.SkipRows; 2531 break; 2398 2532 case GL_PACK_SWAP_BYTES: 2399 2400 2533 *params = (GLfloat) ctx->Pack.SwapBytes; 2534 break; 2401 2535 case GL_PACK_SKIP_IMAGES_EXT: 2402 2536 *params = (GLfloat) ctx->Pack.SkipImages; … … 2406 2540 break; 2407 2541 case GL_PERSPECTIVE_CORRECTION_HINT: 2408 2409 2542 *params = ENUM_TO_FLOAT(ctx->Hint.PerspectiveCorrection); 2543 break; 2410 2544 case GL_PIXEL_MAP_A_TO_A_SIZE: 2411 2412 2545 *params = (GLfloat) ctx->Pixel.MapAtoAsize; 2546 break; 2413 2547 case GL_PIXEL_MAP_B_TO_B_SIZE: 2414 2415 2548 *params = (GLfloat) ctx->Pixel.MapBtoBsize; 2549 break; 2416 2550 case GL_PIXEL_MAP_G_TO_G_SIZE: 2417 2418 2551 *params = (GLfloat) ctx->Pixel.MapGtoGsize; 2552 break; 2419 2553 case GL_PIXEL_MAP_I_TO_A_SIZE: 2420 2421 2554 *params = (GLfloat) ctx->Pixel.MapItoAsize; 2555 break; 2422 2556 case GL_PIXEL_MAP_I_TO_B_SIZE: 2423 2424 2557 *params = (GLfloat) ctx->Pixel.MapItoBsize; 2558 break; 2425 2559 case GL_PIXEL_MAP_I_TO_G_SIZE: 2426 2427 2560 *params = (GLfloat) ctx->Pixel.MapItoGsize; 2561 break; 2428 2562 case GL_PIXEL_MAP_I_TO_I_SIZE: 2429 2430 2563 *params = (GLfloat) ctx->Pixel.MapItoIsize; 2564 break; 2431 2565 case GL_PIXEL_MAP_I_TO_R_SIZE: 2432 2433 2566 *params = (GLfloat) ctx->Pixel.MapItoRsize; 2567 break; 2434 2568 case GL_PIXEL_MAP_R_TO_R_SIZE: 2435 2436 2569 *params = (GLfloat) ctx->Pixel.MapRtoRsize; 2570 break; 2437 2571 case GL_PIXEL_MAP_S_TO_S_SIZE: 2438 2439 2572 *params = (GLfloat) ctx->Pixel.MapStoSsize; 2573 break; 2440 2574 case GL_POINT_SIZE: 2441 2575 *params = (GLfloat) ctx->Point.Size; 2442 2576 break; 2443 2577 case GL_POINT_SIZE_GRANULARITY: 2444 *params = (GLfloat) POINT_SIZE_GRANULARITY;2445 2578 *params = (GLfloat) ctx->Const.PointSizeGranularity; 2579 break; 2446 2580 case GL_POINT_SIZE_RANGE: 2447 params[0] = (GLfloat) MIN_POINT_SIZE; 2448 params[1] = (GLfloat) MAX_POINT_SIZE; 2449 break; 2581 params[0] = (GLfloat) ctx->Const.MinPointSizeAA; 2582 params[1] = (GLfloat) ctx->Const.MaxPointSizeAA; 2583 break; 2584 case GL_ALIASED_POINT_SIZE_RANGE: 2585 params[0] = (GLfloat) ctx->Const.MinPointSize; 2586 params[1] = (GLfloat) ctx->Const.MaxPointSize; 2587 break; 2450 2588 case GL_POINT_SMOOTH: 2451 2452 2589 *params = (GLfloat) ctx->Point.SmoothFlag; 2590 break; 2453 2591 case GL_POINT_SMOOTH_HINT: 2454 2455 2592 *params = ENUM_TO_FLOAT(ctx->Hint.PointSmooth); 2593 break; 2456 2594 case GL_POINT_SIZE_MIN_EXT: 2457 2458 2595 *params = (GLfloat) (ctx->Point.MinSize); 2596 break; 2459 2597 case GL_POINT_SIZE_MAX_EXT: 2460 2461 2598 *params = (GLfloat) (ctx->Point.MaxSize); 2599 break; 2462 2600 case GL_POINT_FADE_THRESHOLD_SIZE_EXT: 2463 2464 2601 *params = (GLfloat) (ctx->Point.Threshold); 2602 break; 2465 2603 case GL_DISTANCE_ATTENUATION_EXT: 2466 2467 2468 2469 2604 params[0] = (GLfloat) (ctx->Point.Params[0]); 2605 params[1] = (GLfloat) (ctx->Point.Params[1]); 2606 params[2] = (GLfloat) (ctx->Point.Params[2]); 2607 break; 2470 2608 case GL_POLYGON_MODE: 2471 2472 2473 2609 params[0] = ENUM_TO_FLOAT(ctx->Polygon.FrontMode); 2610 params[1] = ENUM_TO_FLOAT(ctx->Polygon.BackMode); 2611 break; 2474 2612 #ifdef GL_EXT_polygon_offset 2475 2613 case GL_POLYGON_OFFSET_BIAS_EXT: … … 2484 2622 break; 2485 2623 case GL_POLYGON_SMOOTH: 2486 2487 2624 *params = (GLfloat) ctx->Polygon.SmoothFlag; 2625 break; 2488 2626 case GL_POLYGON_SMOOTH_HINT: 2489 2490 2627 *params = ENUM_TO_FLOAT(ctx->Hint.PolygonSmooth); 2628 break; 2491 2629 case GL_POLYGON_STIPPLE: 2492 2630 *params = (GLfloat) ctx->Polygon.StippleFlag; 2493 2631 break; 2494 2632 case GL_PROJECTION_MATRIX: 2495 2496 2497 2498 2633 for (i=0;i<16;i++) { 2634 params[i] = ctx->ProjectionMatrix.m[i]; 2635 } 2636 break; 2499 2637 case GL_PROJECTION_STACK_DEPTH: 2500 2501 2638 *params = (GLfloat) (ctx->ProjectionStackDepth + 1); 2639 break; 2502 2640 case GL_READ_BUFFER: 2503 2504 2641 *params = ENUM_TO_FLOAT(ctx->Pixel.ReadBuffer); 2642 break; 2505 2643 case GL_RED_BIAS: 2506 2644 *params = ctx->Pixel.RedBias; … … 2513 2651 break; 2514 2652 case GL_RENDER_MODE: 2515 2516 2653 *params = ENUM_TO_FLOAT(ctx->RenderMode); 2654 break; 2517 2655 case GL_RGBA_MODE: 2518 2519 2656 *params = (GLfloat) ctx->Visual->RGBAflag; 2657 break; 2520 2658 case GL_SCISSOR_BOX: 2521 2522 2523 2524 2525 2659 params[0] = (GLfloat) ctx->Scissor.X; 2660 params[1] = (GLfloat) ctx->Scissor.Y; 2661 params[2] = (GLfloat) ctx->Scissor.Width; 2662 params[3] = (GLfloat) ctx->Scissor.Height; 2663 break; 2526 2664 case GL_SCISSOR_TEST: 2527 2528 2665 *params = (GLfloat) ctx->Scissor.Enabled; 2666 break; 2529 2667 case GL_SELECTION_BUFFER_SIZE: 2530 2668 *params = (GLfloat) ctx->Select.BufferSize; 2531 2669 break; 2532 2670 case GL_SHADE_MODEL: 2533 2534 2671 *params = ENUM_TO_FLOAT(ctx->Light.ShadeModel); 2672 break; 2535 2673 case GL_SHARED_TEXTURE_PALETTE_EXT: 2536 2674 *params = (GLfloat) ctx->Texture.SharedPalette; … … 2540 2678 break; 2541 2679 case GL_STENCIL_CLEAR_VALUE: 2542 2543 2680 *params = (GLfloat) ctx->Stencil.Clear; 2681 break; 2544 2682 case GL_STENCIL_FAIL: 2545 2546 2683 *params = ENUM_TO_FLOAT(ctx->Stencil.FailFunc); 2684 break; 2547 2685 case GL_STENCIL_FUNC: 2548 2549 2686 *params = ENUM_TO_FLOAT(ctx->Stencil.Function); 2687 break; 2550 2688 case GL_STENCIL_PASS_DEPTH_FAIL: 2551 2552 2689 *params = ENUM_TO_FLOAT(ctx->Stencil.ZFailFunc); 2690 break; 2553 2691 case GL_STENCIL_PASS_DEPTH_PASS: 2554 2555 2692 *params = ENUM_TO_FLOAT(ctx->Stencil.ZPassFunc); 2693 break; 2556 2694 case GL_STENCIL_REF: 2557 2558 2695 *params = (GLfloat) ctx->Stencil.Ref; 2696 break; 2559 2697 case GL_STENCIL_TEST: 2560 2561 2698 *params = (GLfloat) ctx->Stencil.Enabled; 2699 break; 2562 2700 case GL_STENCIL_VALUE_MASK: 2563 2564 2701 *params = (GLfloat) ctx->Stencil.ValueMask; 2702 break; 2565 2703 case GL_STENCIL_WRITEMASK: 2566 2567 2704 *params = (GLfloat) ctx->Stencil.WriteMask; 2705 break; 2568 2706 case GL_STEREO: 2569 2570 2707 *params = (GLfloat) ctx->Visual->StereoFlag; 2708 break; 2571 2709 case GL_SUBPIXEL_BITS: 2572 *params = 0.0F; /* TODO */ 2573 2710 *params = (GLfloat) ctx->Const.SubPixelBits; 2711 break; 2574 2712 case GL_TEXTURE_1D: 2575 *params = gl_IsEnabled(ctx,GL_TEXTURE_1D) ? 1.0 : 0.0;2576 2713 *params = _mesa_IsEnabled(GL_TEXTURE_1D) ? 1.0 : 0.0; 2714 break; 2577 2715 case GL_TEXTURE_2D: 2578 *params = gl_IsEnabled(ctx,GL_TEXTURE_2D) ? 1.0 : 0.0;2579 2716 *params = _mesa_IsEnabled(GL_TEXTURE_2D) ? 1.0 : 0.0; 2717 break; 2580 2718 case GL_TEXTURE_3D: 2581 *params = gl_IsEnabled(ctx,GL_TEXTURE_3D) ? 1.0 : 0.0;2582 2719 *params = _mesa_IsEnabled(GL_TEXTURE_3D) ? 1.0 : 0.0; 2720 break; 2583 2721 case GL_TEXTURE_BINDING_1D: 2584 2722 *params = (GLfloat) textureUnit->CurrentD[1]->Name; … … 2591 2729 break; 2592 2730 case GL_TEXTURE_ENV_COLOR: 2593 2594 2595 2596 2597 2731 params[0] = textureUnit->EnvColor[0]; 2732 params[1] = textureUnit->EnvColor[1]; 2733 params[2] = textureUnit->EnvColor[2]; 2734 params[3] = textureUnit->EnvColor[3]; 2735 break; 2598 2736 case GL_TEXTURE_ENV_MODE: 2599 2600 2737 *params = ENUM_TO_FLOAT(textureUnit->EnvMode); 2738 break; 2601 2739 case GL_TEXTURE_GEN_S: 2602 2603 2740 *params = (textureUnit->TexGenEnabled & S_BIT) ? 1.0 : 0.0; 2741 break; 2604 2742 case GL_TEXTURE_GEN_T: 2605 2606 2743 *params = (textureUnit->TexGenEnabled & T_BIT) ? 1.0 : 0.0; 2744 break; 2607 2745 case GL_TEXTURE_GEN_R: 2608 2609 2746 *params = (textureUnit->TexGenEnabled & R_BIT) ? 1.0 : 0.0; 2747 break; 2610 2748 case GL_TEXTURE_GEN_Q: 2611 2612 2749 *params = (textureUnit->TexGenEnabled & Q_BIT) ? 1.0 : 0.0; 2750 break; 2613 2751 case GL_TEXTURE_MATRIX: 2614 2752 for (i=0;i<16;i++) { 2615 2616 2617 2753 params[i] = ctx->TextureMatrix[texTransformUnit].m[i]; 2754 } 2755 break; 2618 2756 case GL_TEXTURE_STACK_DEPTH: 2619 2620 2757 *params = (GLfloat) (ctx->TextureStackDepth[texTransformUnit] + 1); 2758 break; 2621 2759 case GL_UNPACK_ALIGNMENT: 2622 2623 2760 *params = (GLfloat) ctx->Unpack.Alignment; 2761 break; 2624 2762 case GL_UNPACK_LSB_FIRST: 2625 2626 2763 *params = (GLfloat) ctx->Unpack.LsbFirst; 2764 break; 2627 2765 case GL_UNPACK_ROW_LENGTH: 2628 2629 2766 *params = (GLfloat) ctx->Unpack.RowLength; 2767 break; 2630 2768 case GL_UNPACK_SKIP_PIXELS: 2631 2632 2769 *params = (GLfloat) ctx->Unpack.SkipPixels; 2770 break; 2633 2771 case GL_UNPACK_SKIP_ROWS: 2634 2635 2772 *params = (GLfloat) ctx->Unpack.SkipRows; 2773 break; 2636 2774 case GL_UNPACK_SWAP_BYTES: 2637 2638 2775 *params = (GLfloat) ctx->Unpack.SwapBytes; 2776 break; 2639 2777 case GL_UNPACK_SKIP_IMAGES_EXT: 2640 2778 *params = (GLfloat) ctx->Unpack.SkipImages; … … 2644 2782 break; 2645 2783 case GL_VIEWPORT: 2646 2647 2648 2649 2650 2784 params[0] = (GLfloat) ctx->Viewport.X; 2785 params[1] = (GLfloat) ctx->Viewport.Y; 2786 params[2] = (GLfloat) ctx->Viewport.Width; 2787 params[3] = (GLfloat) ctx->Viewport.Height; 2788 break; 2651 2789 case GL_ZOOM_X: 2652 2653 2790 *params = (GLfloat) ctx->Pixel.ZoomX; 2791 break; 2654 2792 case GL_ZOOM_Y: 2655 2656 2793 *params = (GLfloat) ctx->Pixel.ZoomY; 2794 break; 2657 2795 case GL_VERTEX_ARRAY: 2658 2796 *params = (GLfloat) ctx->Array.Vertex.Enabled; … … 2746 2884 /* GL_PGI_misc_hints */ 2747 2885 case GL_STRICT_DEPTHFUNC_HINT_PGI: 2748 2886 *params = ENUM_TO_FLOAT(GL_NICEST); 2749 2887 break; 2750 2888 case GL_STRICT_LIGHTING_HINT_PGI: 2751 2752 2889 *params = ENUM_TO_FLOAT(ctx->Hint.StrictLighting); 2890 break; 2753 2891 case GL_STRICT_SCISSOR_HINT_PGI: 2754 2892 case GL_FULL_STIPPLE_HINT_PGI: 2755 2756 2893 *params = ENUM_TO_FLOAT(GL_TRUE); 2894 break; 2757 2895 case GL_CONSERVE_MEMORY_HINT_PGI: 2758 2759 2896 *params = ENUM_TO_FLOAT(GL_FALSE); 2897 break; 2760 2898 case GL_ALWAYS_FAST_HINT_PGI: 2761 2762 2763 2764 2899 *params = (GLfloat) (ctx->Hint.AllowDrawWin == GL_TRUE && 2900 ctx->Hint.AllowDrawSpn == GL_FALSE && 2901 ctx->Hint.AllowDrawMem == GL_FALSE); 2902 break; 2765 2903 case GL_ALWAYS_SOFT_HINT_PGI: 2766 2767 2768 2769 2904 *params = (GLfloat) (ctx->Hint.AllowDrawWin == GL_TRUE && 2905 ctx->Hint.AllowDrawSpn == GL_TRUE && 2906 ctx->Hint.AllowDrawMem == GL_TRUE); 2907 break; 2770 2908 case GL_ALLOW_DRAW_OBJ_HINT_PGI: 2771 2772 2909 *params = (GLfloat) GL_TRUE; 2910 break; 2773 2911 case GL_ALLOW_DRAW_WIN_HINT_PGI: 2774 2775 2912 *params = (GLfloat) ctx->Hint.AllowDrawWin; 2913 break; 2776 2914 case GL_ALLOW_DRAW_SPN_HINT_PGI: 2777 2778 2915 *params = (GLfloat) ctx->Hint.AllowDrawSpn; 2916 break; 2779 2917 case GL_ALLOW_DRAW_MEM_HINT_PGI: 2780 2781 2918 *params = (GLfloat) ctx->Hint.AllowDrawMem; 2919 break; 2782 2920 case GL_CLIP_NEAR_HINT_PGI: 2783 2921 case GL_CLIP_FAR_HINT_PGI: 2784 2785 2922 *params = ENUM_TO_FLOAT(GL_TRUE); 2923 break; 2786 2924 case GL_WIDE_LINE_HINT_PGI: 2787 2788 2925 *params = ENUM_TO_FLOAT(GL_DONT_CARE); 2926 break; 2789 2927 case GL_BACK_NORMALS_HINT_PGI: 2790 2791 2928 *params = ENUM_TO_FLOAT(GL_TRUE); 2929 break; 2792 2930 case GL_NATIVE_GRAPHICS_HANDLE_PGI: 2793 *params = 0; 2794 break; 2931 *params = 0; 2932 break; 2933 2934 /* GL_EXT_compiled_vertex_array */ 2935 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: 2936 *params = (GLfloat) ctx->Array.LockFirst; 2937 break; 2938 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: 2939 *params = (GLfloat) ctx->Array.LockCount; 2940 break; 2941 2942 /* GL_ARB_transpose_matrix */ 2943 case GL_TRANSPOSE_COLOR_MATRIX_ARB: 2944 /* don't have a color matrix */ 2945 break; 2946 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB: 2947 gl_matrix_transposef(params, ctx->ModelView.m); 2948 break; 2949 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB: 2950 gl_matrix_transposef(params, ctx->ProjectionMatrix.m); 2951 break; 2952 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB: 2953 gl_matrix_transposef(params, ctx->TextureMatrix[texTransformUnit].m); 2954 break; 2955 2956 /* GL_HP_occlusion_test */ 2957 case GL_OCCLUSION_TEST_HP: 2958 if (ctx->Extensions.HaveHpOcclusionTest) { 2959 *params = (GLfloat) ctx->Depth.OcclusionTest; 2960 } 2961 else { 2962 gl_error( ctx, GL_INVALID_ENUM, "glGetFloatv" ); 2963 } 2964 return; 2965 case GL_OCCLUSION_TEST_RESULT_HP: 2966 if (ctx->Extensions.HaveHpOcclusionTest) { 2967 *params = (GLfloat) ctx->OcclusionResult; 2968 ctx->OcclusionResult = GL_FALSE; /* reset now */ 2969 } 2970 else { 2971 gl_error( ctx, GL_INVALID_ENUM, "glGetFloatv" ); 2972 } 2973 return; 2795 2974 2796 2975 default: 2797 printf("invalid enum: %x\n", pname);2798 2976 gl_error( ctx, GL_INVALID_ENUM, "glGetFloatv" ); 2799 2977 } … … 2803 2981 2804 2982 2805 void gl_GetIntegerv( GLcontext *ctx, GLenum pname, GLint *params ) 2983 void 2984 _mesa_GetIntegerv( GLenum pname, GLint *params ) 2806 2985 { 2986 GET_CURRENT_CONTEXT(ctx); 2807 2987 GLuint i; 2808 2988 GLuint texUnit = ctx->Texture.CurrentUnit; … … 2853 3033 break; 2854 3034 case GL_AUX_BUFFERS: 2855 *params = (GLint) NUM_AUX_BUFFERS;3035 *params = (GLint) ctx->Const.NumAuxBuffers; 2856 3036 break; 2857 3037 case GL_BLEND: … … 2864 3044 *params = (GLint) ctx->Color.BlendSrcRGB; 2865 3045 break; 2866 case GL_BLEND_SRC_RGB_ INGR:3046 case GL_BLEND_SRC_RGB_EXT: 2867 3047 *params = (GLint) ctx->Color.BlendSrcRGB; 2868 3048 break; 2869 case GL_BLEND_DST_RGB_ INGR:3049 case GL_BLEND_DST_RGB_EXT: 2870 3050 *params = (GLint) ctx->Color.BlendDstRGB; 2871 3051 break; 2872 case GL_BLEND_SRC_ALPHA_ INGR:3052 case GL_BLEND_SRC_ALPHA_EXT: 2873 3053 *params = (GLint) ctx->Color.BlendSrcA; 2874 3054 break; 2875 case GL_BLEND_DST_ALPHA_ INGR:3055 case GL_BLEND_DST_ALPHA_EXT: 2876 3056 *params = (GLint) ctx->Color.BlendDstA; 2877 3057 break; 2878 3058 case GL_BLEND_EQUATION_EXT: 2879 2880 3059 *params = (GLint) ctx->Color.BlendEquation; 3060 break; 2881 3061 case GL_BLEND_COLOR_EXT: 2882 2883 2884 2885 2886 3062 params[0] = FLOAT_TO_INT( ctx->Color.BlendColor[0] ); 3063 params[1] = FLOAT_TO_INT( ctx->Color.BlendColor[1] ); 3064 params[2] = FLOAT_TO_INT( ctx->Color.BlendColor[2] ); 3065 params[3] = FLOAT_TO_INT( ctx->Color.BlendColor[3] ); 3066 break; 2887 3067 case GL_BLUE_BIAS: 2888 3068 *params = (GLint) ctx->Pixel.BlueBias; … … 2948 3128 break; 2949 3129 case GL_CURRENT_RASTER_COLOR: 2950 2951 2952 2953 2954 3130 params[0] = FLOAT_TO_INT( ctx->Current.RasterColor[0] ); 3131 params[1] = FLOAT_TO_INT( ctx->Current.RasterColor[1] ); 3132 params[2] = FLOAT_TO_INT( ctx->Current.RasterColor[2] ); 3133 params[3] = FLOAT_TO_INT( ctx->Current.RasterColor[3] ); 3134 break; 2955 3135 case GL_CURRENT_RASTER_DISTANCE: 2956 2957 3136 params[0] = (GLint) ctx->Current.RasterDistance; 3137 break; 2958 3138 case GL_CURRENT_RASTER_INDEX: 2959 2960 3139 *params = (GLint) ctx->Current.RasterIndex; 3140 break; 2961 3141 case GL_CURRENT_RASTER_POSITION: 2962 2963 2964 2965 2966 3142 params[0] = (GLint) ctx->Current.RasterPos[0]; 3143 params[1] = (GLint) ctx->Current.RasterPos[1]; 3144 params[2] = (GLint) ctx->Current.RasterPos[2]; 3145 params[3] = (GLint) ctx->Current.RasterPos[3]; 3146 break; 2967 3147 case GL_CURRENT_RASTER_TEXTURE_COORDS: 2968 2969 2970 2971 2972 3148 params[0] = (GLint) ctx->Current.RasterMultiTexCoord[texTransformUnit][0]; 3149 params[1] = (GLint) ctx->Current.RasterMultiTexCoord[texTransformUnit][1]; 3150 params[2] = (GLint) ctx->Current.RasterMultiTexCoord[texTransformUnit][2]; 3151 params[3] = (GLint) ctx->Current.RasterMultiTexCoord[texTransformUnit][3]; 3152 break; 2973 3153 case GL_CURRENT_RASTER_POSITION_VALID: 2974 2975 3154 *params = (GLint) ctx->Current.RasterPosValid; 3155 break; 2976 3156 case GL_CURRENT_TEXTURE_COORDS: 2977 3157 params[0] = (GLint) ctx->Current.Texcoord[texTransformUnit][0]; … … 2979 3159 params[2] = (GLint) ctx->Current.Texcoord[texTransformUnit][2]; 2980 3160 params[3] = (GLint) ctx->Current.Texcoord[texTransformUnit][3]; 2981 3161 break; 2982 3162 case GL_DEPTH_BIAS: 2983 3163 *params = (GLint) ctx->Pixel.DepthBias; 2984 3164 break; 2985 3165 case GL_DEPTH_BITS: 2986 2987 3166 *params = ctx->Visual->DepthBits; 3167 break; 2988 3168 case GL_DEPTH_CLEAR_VALUE: 2989 3169 *params = (GLint) ctx->Depth.Clear; 2990 3170 break; 2991 3171 case GL_DEPTH_FUNC: 2992 3172 *params = (GLint) ctx->Depth.Func; 2993 3173 break; 2994 3174 case GL_DEPTH_RANGE: 2995 3175 params[0] = (GLint) ctx->Viewport.Near; 2996 3176 params[1] = (GLint) ctx->Viewport.Far; 2997 3177 break; 2998 3178 case GL_DEPTH_SCALE: 2999 3179 *params = (GLint) ctx->Pixel.DepthScale; 3000 3180 break; 3001 3181 case GL_DEPTH_TEST: 3002 3182 *params = (GLint) ctx->Depth.Test; 3003 3183 break; 3004 3184 case GL_DEPTH_WRITEMASK: 3005 3006 3185 *params = (GLint) ctx->Depth.Mask; 3186 break; 3007 3187 case GL_DITHER: 3008 3009 3188 *params = (GLint) ctx->Color.DitherFlag; 3189 break; 3010 3190 case GL_DOUBLEBUFFER: 3011 3012 3191 *params = (GLint) ctx->Visual->DBflag; 3192 break; 3013 3193 case GL_DRAW_BUFFER: 3014 3015 3194 *params = (GLint) ctx->Color.DrawBuffer; 3195 break; 3016 3196 case GL_EDGE_FLAG: 3017 3018 3197 *params = (GLint) ctx->Current.EdgeFlag; 3198 break; 3019 3199 case GL_FEEDBACK_BUFFER_SIZE: 3020 /* TODO: is this right? Or, return number of entries in buffer? */3021 3200 *params = ctx->Feedback.BufferSize; 3022 3201 break; … … 3025 3204 break; 3026 3205 case GL_FOG: 3027 3028 3206 *params = (GLint) ctx->Fog.Enabled; 3207 break; 3029 3208 case GL_FOG_COLOR: 3030 3031 3032 3033 3034 3209 params[0] = FLOAT_TO_INT( ctx->Fog.Color[0] ); 3210 params[1] = FLOAT_TO_INT( ctx->Fog.Color[1] ); 3211 params[2] = FLOAT_TO_INT( ctx->Fog.Color[2] ); 3212 params[3] = FLOAT_TO_INT( ctx->Fog.Color[3] ); 3213 break; 3035 3214 case GL_FOG_DENSITY: 3036 3037 3215 *params = (GLint) ctx->Fog.Density; 3216 break; 3038 3217 case GL_FOG_END: 3039 3040 3218 *params = (GLint) ctx->Fog.End; 3219 break; 3041 3220 case GL_FOG_HINT: 3042 3043 3221 *params = (GLint) ctx->Hint.Fog; 3222 break; 3044 3223 case GL_FOG_INDEX: 3045 3046 3224 *params = (GLint) ctx->Fog.Index; 3225 break; 3047 3226 case GL_FOG_MODE: 3048 3049 3227 *params = (GLint) ctx->Fog.Mode; 3228 break; 3050 3229 case GL_FOG_START: 3051 3052 3230 *params = (GLint) ctx->Fog.Start; 3231 break; 3053 3232 case GL_FRONT_FACE: 3054 3055 3233 *params = (GLint) ctx->Polygon.FrontFace; 3234 break; 3056 3235 case GL_GREEN_BIAS: 3057 3236 *params = (GLint) ctx->Pixel.GreenBias; … … 3070 3249 break; 3071 3250 case GL_INDEX_MODE: 3072 3073 3251 *params = ctx->Visual->RGBAflag ? 0 : 1; 3252 break; 3074 3253 case GL_INDEX_OFFSET: 3075 3076 3254 *params = ctx->Pixel.IndexOffset; 3255 break; 3077 3256 case GL_INDEX_SHIFT: 3078 3079 3257 *params = ctx->Pixel.IndexShift; 3258 break; 3080 3259 case GL_INDEX_WRITEMASK: 3081 3082 3260 *params = (GLint) ctx->Color.IndexMask; 3261 break; 3083 3262 case GL_LIGHT0: 3084 3263 case GL_LIGHT1: … … 3089 3268 case GL_LIGHT6: 3090 3269 case GL_LIGHT7: 3091 3092 3270 *params = (GLint) ctx->Light.Light[pname-GL_LIGHT0].Enabled; 3271 break; 3093 3272 case GL_LIGHTING: 3094 3095 3273 *params = (GLint) ctx->Light.Enabled; 3274 break; 3096 3275 case GL_LIGHT_MODEL_AMBIENT: 3097 3098 3099 3100 3101 3276 params[0] = FLOAT_TO_INT( ctx->Light.Model.Ambient[0] ); 3277 params[1] = FLOAT_TO_INT( ctx->Light.Model.Ambient[1] ); 3278 params[2] = FLOAT_TO_INT( ctx->Light.Model.Ambient[2] ); 3279 params[3] = FLOAT_TO_INT( ctx->Light.Model.Ambient[3] ); 3280 break; 3102 3281 case GL_LIGHT_MODEL_COLOR_CONTROL: 3103 3282 params[0] = (GLint) ctx->Light.Model.ColorControl; 3104 3283 break; 3105 3284 case GL_LIGHT_MODEL_LOCAL_VIEWER: 3106 3107 3285 *params = (GLint) ctx->Light.Model.LocalViewer; 3286 break; 3108 3287 case GL_LIGHT_MODEL_TWO_SIDE: 3109 3110 3288 *params = (GLint) ctx->Light.Model.TwoSide; 3289 break; 3111 3290 case GL_LINE_SMOOTH: 3112 3113 3291 *params = (GLint) ctx->Line.SmoothFlag; 3292 break; 3114 3293 case GL_LINE_SMOOTH_HINT: 3115 3116 3294 *params = (GLint) ctx->Hint.LineSmooth; 3295 break; 3117 3296 case GL_LINE_STIPPLE: 3118 3119 3297 *params = (GLint) ctx->Line.StippleFlag; 3298 break; 3120 3299 case GL_LINE_STIPPLE_PATTERN: 3121 3300 *params = (GLint) ctx->Line.StipplePattern; … … 3125 3304 break; 3126 3305 case GL_LINE_WIDTH: 3127 3128 3306 *params = (GLint) ctx->Line.Width; 3307 break; 3129 3308 case GL_LINE_WIDTH_GRANULARITY: 3130 *params = (GLint) LINE_WIDTH_GRANULARITY;3131 3309 *params = (GLint) ctx->Const.LineWidthGranularity; 3310 break; 3132 3311 case GL_LINE_WIDTH_RANGE: 3133 params[0] = (GLint) MIN_LINE_WIDTH; 3134 params[1] = (GLint) MAX_LINE_WIDTH; 3135 break; 3312 params[0] = (GLint) ctx->Const.MinLineWidthAA; 3313 params[1] = (GLint) ctx->Const.MaxLineWidthAA; 3314 break; 3315 case GL_ALIASED_LINE_WIDTH_RANGE: 3316 params[0] = (GLint) ctx->Const.MinLineWidth; 3317 params[1] = (GLint) ctx->Const.MaxLineWidth; 3318 break; 3136 3319 case GL_LIST_BASE: 3137 3138 3320 *params = (GLint) ctx->List.ListBase; 3321 break; 3139 3322 case GL_LIST_INDEX: 3140 3141 3323 *params = (GLint) ctx->CurrentListNum; 3324 break; 3142 3325 case GL_LIST_MODE: 3143 3144 3145 3326 *params = ctx->ExecuteFlag ? (GLint) GL_COMPILE_AND_EXECUTE 3327 : (GLint) GL_COMPILE; 3328 break; 3146 3329 case GL_INDEX_LOGIC_OP: 3147 3148 3330 *params = (GLint) ctx->Color.IndexLogicOpEnabled; 3331 break; 3149 3332 case GL_COLOR_LOGIC_OP: 3150 3151 3333 *params = (GLint) ctx->Color.ColorLogicOpEnabled; 3334 break; 3152 3335 case GL_LOGIC_OP_MODE: 3153 3336 *params = (GLint) ctx->Color.LogicOp; 3154 3337 break; 3155 3338 case GL_MAP1_COLOR_4: 3156 3157 3339 *params = (GLint) ctx->Eval.Map1Color4; 3340 break; 3158 3341 case GL_MAP1_GRID_DOMAIN: 3159 3160 3161 3342 params[0] = (GLint) ctx->Eval.MapGrid1u1; 3343 params[1] = (GLint) ctx->Eval.MapGrid1u2; 3344 break; 3162 3345 case GL_MAP1_GRID_SEGMENTS: 3163 3164 3346 *params = (GLint) ctx->Eval.MapGrid1un; 3347 break; 3165 3348 case GL_MAP1_INDEX: 3166 3167 3349 *params = (GLint) ctx->Eval.Map1Index; 3350 break; 3168 3351 case GL_MAP1_NORMAL: 3169 3170 3352 *params = (GLint) ctx->Eval.Map1Normal; 3353 break; 3171 3354 case GL_MAP1_TEXTURE_COORD_1: 3172 3173 3355 *params = (GLint) ctx->Eval.Map1TextureCoord1; 3356 break; 3174 3357 case GL_MAP1_TEXTURE_COORD_2: 3175 3176 3358 *params = (GLint) ctx->Eval.Map1TextureCoord2; 3359 break; 3177 3360 case GL_MAP1_TEXTURE_COORD_3: 3178 3179 3361 *params = (GLint) ctx->Eval.Map1TextureCoord3; 3362 break; 3180 3363 case GL_MAP1_TEXTURE_COORD_4: 3181 3182 3364 *params = (GLint) ctx->Eval.Map1TextureCoord4; 3365 break; 3183 3366 case GL_MAP1_VERTEX_3: 3184 3185 3367 *params = (GLint) ctx->Eval.Map1Vertex3; 3368 break; 3186 3369 case GL_MAP1_VERTEX_4: 3187 3188 3370 *params = (GLint) ctx->Eval.Map1Vertex4; 3371 break; 3189 3372 case GL_MAP2_COLOR_4: 3190 3191 3373 *params = (GLint) ctx->Eval.Map2Color4; 3374 break; 3192 3375 case GL_MAP2_GRID_DOMAIN: 3193 3194 3195 3196 3197 3376 params[0] = (GLint) ctx->Eval.MapGrid2u1; 3377 params[1] = (GLint) ctx->Eval.MapGrid2u2; 3378 params[2] = (GLint) ctx->Eval.MapGrid2v1; 3379 params[3] = (GLint) ctx->Eval.MapGrid2v2; 3380 break; 3198 3381 case GL_MAP2_GRID_SEGMENTS: 3199 3200 3201 3382 params[0] = (GLint) ctx->Eval.MapGrid2un; 3383 params[1] = (GLint) ctx->Eval.MapGrid2vn; 3384 break; 3202 3385 case GL_MAP2_INDEX: 3203 3204 3386 *params = (GLint) ctx->Eval.Map2Index; 3387 break; 3205 3388 case GL_MAP2_NORMAL: 3206 3207 3389 *params = (GLint) ctx->Eval.Map2Normal; 3390 break; 3208 3391 case GL_MAP2_TEXTURE_COORD_1: 3209 3210 3392 *params = (GLint) ctx->Eval.Map2TextureCoord1; 3393 break; 3211 3394 case GL_MAP2_TEXTURE_COORD_2: 3212 3213 3395 *params = (GLint) ctx->Eval.Map2TextureCoord2; 3396 break; 3214 3397 case GL_MAP2_TEXTURE_COORD_3: 3215 3216 3398 *params = (GLint) ctx->Eval.Map2TextureCoord3; 3399 break; 3217 3400 case GL_MAP2_TEXTURE_COORD_4: 3218 3219 3401 *params = (GLint) ctx->Eval.Map2TextureCoord4; 3402 break; 3220 3403 case GL_MAP2_VERTEX_3: 3221 3222 3404 *params = (GLint) ctx->Eval.Map2Vertex3; 3405 break; 3223 3406 case GL_MAP2_VERTEX_4: 3224 3225 3407 *params = (GLint) ctx->Eval.Map2Vertex4; 3408 break; 3226 3409 case GL_MAP_COLOR: 3227 3228 3410 *params = (GLint) ctx->Pixel.MapColorFlag; 3411 break; 3229 3412 case GL_MAP_STENCIL: 3230 3231 3413 *params = (GLint) ctx->Pixel.MapStencilFlag; 3414 break; 3232 3415 case GL_MATRIX_MODE: 3233 3234 3416 *params = (GLint) ctx->Transform.MatrixMode; 3417 break; 3235 3418 case GL_MAX_ATTRIB_STACK_DEPTH: 3236 3419 *params = (GLint) MAX_ATTRIB_STACK_DEPTH; … … 3249 3432 break; 3250 3433 case GL_MAX_EVAL_ORDER: 3251 3252 3434 *params = (GLint) MAX_EVAL_ORDER; 3435 break; 3253 3436 case GL_MAX_LIGHTS: 3254 3437 *params = (GLint) MAX_LIGHTS; … … 3261 3444 break; 3262 3445 case GL_MAX_NAME_STACK_DEPTH: 3263 3264 3446 *params = (GLint) MAX_NAME_STACK_DEPTH; 3447 break; 3265 3448 case GL_MAX_PIXEL_MAP_TABLE: 3266 3267 3449 *params = (GLint) MAX_PIXEL_MAP_TABLE; 3450 break; 3268 3451 case GL_MAX_PROJECTION_STACK_DEPTH: 3269 3452 *params = (GLint) MAX_PROJECTION_STACK_DEPTH; … … 3272 3455 case GL_MAX_3D_TEXTURE_SIZE: 3273 3456 *params = ctx->Const.MaxTextureSize; 3274 3457 break; 3275 3458 case GL_MAX_TEXTURE_STACK_DEPTH: 3276 3277 3459 *params = (GLint) MAX_TEXTURE_STACK_DEPTH; 3460 break; 3278 3461 case GL_MAX_VIEWPORT_DIMS: 3279 3462 params[0] = (GLint) MAX_WIDTH; … … 3281 3464 break; 3282 3465 case GL_MODELVIEW_MATRIX: 3283 3284 3285 3286 3466 for (i=0;i<16;i++) { 3467 params[i] = (GLint) ctx->ModelView.m[i]; 3468 } 3469 break; 3287 3470 case GL_MODELVIEW_STACK_DEPTH: 3288 3289 3471 *params = (GLint) (ctx->ModelViewStackDepth + 1); 3472 break; 3290 3473 case GL_NAME_STACK_DEPTH: 3291 3292 3474 *params = (GLint) ctx->Select.NameStackDepth; 3475 break; 3293 3476 case GL_NORMALIZE: 3294 3295 3477 *params = (GLint) ctx->Transform.Normalize; 3478 break; 3296 3479 case GL_PACK_ALIGNMENT: 3297 3298 3480 *params = ctx->Pack.Alignment; 3481 break; 3299 3482 case GL_PACK_LSB_FIRST: 3300 3301 3483 *params = (GLint) ctx->Pack.LsbFirst; 3484 break; 3302 3485 case GL_PACK_ROW_LENGTH: 3303 3304 3486 *params = ctx->Pack.RowLength; 3487 break; 3305 3488 case GL_PACK_SKIP_PIXELS: 3306 3307 3489 *params = ctx->Pack.SkipPixels; 3490 break; 3308 3491 case GL_PACK_SKIP_ROWS: 3309 3310 3492 *params = ctx->Pack.SkipRows; 3493 break; 3311 3494 case GL_PACK_SWAP_BYTES: 3312 3313 3495 *params = (GLint) ctx->Pack.SwapBytes; 3496 break; 3314 3497 case GL_PACK_SKIP_IMAGES_EXT: 3315 3498 *params = ctx->Pack.SkipImages; … … 3319 3502 break; 3320 3503 case GL_PERSPECTIVE_CORRECTION_HINT: 3321 3322 3504 *params = (GLint) ctx->Hint.PerspectiveCorrection; 3505 break; 3323 3506 case GL_PIXEL_MAP_A_TO_A_SIZE: 3324 3325 3507 *params = ctx->Pixel.MapAtoAsize; 3508 break; 3326 3509 case GL_PIXEL_MAP_B_TO_B_SIZE: 3327 3328 3510 *params = ctx->Pixel.MapBtoBsize; 3511 break; 3329 3512 case GL_PIXEL_MAP_G_TO_G_SIZE: 3330 3331 3513 *params = ctx->Pixel.MapGtoGsize; 3514 break; 3332 3515 case GL_PIXEL_MAP_I_TO_A_SIZE: 3333 3334 3516 *params = ctx->Pixel.MapItoAsize; 3517 break; 3335 3518 case GL_PIXEL_MAP_I_TO_B_SIZE: 3336 3337 3519 *params = ctx->Pixel.MapItoBsize; 3520 break; 3338 3521 case GL_PIXEL_MAP_I_TO_G_SIZE: 3339 3340 3522 *params = ctx->Pixel.MapItoGsize; 3523 break; 3341 3524 case GL_PIXEL_MAP_I_TO_I_SIZE: 3342 3343 3525 *params = ctx->Pixel.MapItoIsize; 3526 break; 3344 3527 case GL_PIXEL_MAP_I_TO_R_SIZE: 3345 3346 3528 *params = ctx->Pixel.MapItoRsize; 3529 break; 3347 3530 case GL_PIXEL_MAP_R_TO_R_SIZE: 3348 3349 3531 *params = ctx->Pixel.MapRtoRsize; 3532 break; 3350 3533 case GL_PIXEL_MAP_S_TO_S_SIZE: 3351 3352 3534 *params = ctx->Pixel.MapStoSsize; 3535 break; 3353 3536 case GL_POINT_SIZE: 3354 3537 *params = (GLint) ctx->Point.Size; 3355 3538 break; 3356 3539 case GL_POINT_SIZE_GRANULARITY: 3357 *params = (GLint) POINT_SIZE_GRANULARITY;3358 3540 *params = (GLint) ctx->Const.PointSizeGranularity; 3541 break; 3359 3542 case GL_POINT_SIZE_RANGE: 3360 params[0] = (GLint) MIN_POINT_SIZE; 3361 params[1] = (GLint) MAX_POINT_SIZE; 3362 break; 3543 params[0] = (GLint) ctx->Const.MinPointSizeAA; 3544 params[1] = (GLint) ctx->Const.MaxPointSizeAA; 3545 break; 3546 case GL_ALIASED_POINT_SIZE_RANGE: 3547 params[0] = (GLint) ctx->Const.MinPointSize; 3548 params[1] = (GLint) ctx->Const.MaxPointSize; 3549 break; 3363 3550 case GL_POINT_SMOOTH: 3364 3365 3551 *params = (GLint) ctx->Point.SmoothFlag; 3552 break; 3366 3553 case GL_POINT_SMOOTH_HINT: 3367 3368 3554 *params = (GLint) ctx->Hint.PointSmooth; 3555 break; 3369 3556 case GL_POINT_SIZE_MIN_EXT: 3370 3371 3557 *params = (GLint) (ctx->Point.MinSize); 3558 break; 3372 3559 case GL_POINT_SIZE_MAX_EXT: 3373 3374 3560 *params = (GLint) (ctx->Point.MaxSize); 3561 break; 3375 3562 case GL_POINT_FADE_THRESHOLD_SIZE_EXT: 3376 3377 3563 *params = (GLint) (ctx->Point.Threshold); 3564 break; 3378 3565 case GL_DISTANCE_ATTENUATION_EXT: 3379 3380 3381 3382 3566 params[0] = (GLint) (ctx->Point.Params[0]); 3567 params[1] = (GLint) (ctx->Point.Params[1]); 3568 params[2] = (GLint) (ctx->Point.Params[2]); 3569 break; 3383 3570 case GL_POLYGON_MODE: 3384 params[0] = (GLint) ctx->Polygon.FrontMode; 3385 params[1] = (GLint) ctx->Polygon.BackMode; 3386 break; 3387 #ifdef GL_EXT_polygon_offset 3388 case GL_POLYGON_OFFSET_BIAS_EXT: 3571 params[0] = (GLint) ctx->Polygon.FrontMode; 3572 params[1] = (GLint) ctx->Polygon.BackMode; 3573 break; 3574 case GL_POLYGON_OFFSET_BIAS_EXT: /* GL_EXT_polygon_offset */ 3389 3575 *params = (GLint) ctx->Polygon.OffsetUnits; 3390 3576 break; 3391 #endif3392 3577 case GL_POLYGON_OFFSET_FACTOR: 3393 3578 *params = (GLint) ctx->Polygon.OffsetFactor; … … 3397 3582 break; 3398 3583 case GL_POLYGON_SMOOTH: 3399 3400 3584 *params = (GLint) ctx->Polygon.SmoothFlag; 3585 break; 3401 3586 case GL_POLYGON_SMOOTH_HINT: 3402 3403 3587 *params = (GLint) ctx->Hint.PolygonSmooth; 3588 break; 3404 3589 case GL_POLYGON_STIPPLE: 3405 3590 *params = (GLint) ctx->Polygon.StippleFlag; 3406 3591 break; 3407 3592 case GL_PROJECTION_MATRIX: 3408 3409 3410 3411 3593 for (i=0;i<16;i++) { 3594 params[i] = (GLint) ctx->ProjectionMatrix.m[i]; 3595 } 3596 break; 3412 3597 case GL_PROJECTION_STACK_DEPTH: 3413 3414 3598 *params = (GLint) (ctx->ProjectionStackDepth + 1); 3599 break; 3415 3600 case GL_READ_BUFFER: 3416 3417 3601 *params = (GLint) ctx->Pixel.ReadBuffer; 3602 break; 3418 3603 case GL_RED_BIAS: 3419 3604 *params = (GLint) ctx->Pixel.RedBias; … … 3426 3611 break; 3427 3612 case GL_RENDER_MODE: 3428 3429 3613 *params = (GLint) ctx->RenderMode; 3614 break; 3430 3615 case GL_RGBA_MODE: 3431 3432 3616 *params = (GLint) ctx->Visual->RGBAflag; 3617 break; 3433 3618 case GL_SCISSOR_BOX: 3434 3435 3436 3437 3438 3619 params[0] = (GLint) ctx->Scissor.X; 3620 params[1] = (GLint) ctx->Scissor.Y; 3621 params[2] = (GLint) ctx->Scissor.Width; 3622 params[3] = (GLint) ctx->Scissor.Height; 3623 break; 3439 3624 case GL_SCISSOR_TEST: 3440 3441 3625 *params = (GLint) ctx->Scissor.Enabled; 3626 break; 3442 3627 case GL_SELECTION_BUFFER_SIZE: 3443 3628 *params = (GLint) ctx->Select.BufferSize; 3444 3629 break; 3445 3630 case GL_SHADE_MODEL: 3446 3447 3631 *params = (GLint) ctx->Light.ShadeModel; 3632 break; 3448 3633 case GL_SHARED_TEXTURE_PALETTE_EXT: 3449 3634 *params = (GLint) ctx->Texture.SharedPalette; … … 3453 3638 break; 3454 3639 case GL_STENCIL_CLEAR_VALUE: 3455 3456 3640 *params = (GLint) ctx->Stencil.Clear; 3641 break; 3457 3642 case GL_STENCIL_FAIL: 3458 3459 3643 *params = (GLint) ctx->Stencil.FailFunc; 3644 break; 3460 3645 case GL_STENCIL_FUNC: 3461 3462 3646 *params = (GLint) ctx->Stencil.Function; 3647 break; 3463 3648 case GL_STENCIL_PASS_DEPTH_FAIL: 3464 3465 3649 *params = (GLint) ctx->Stencil.ZFailFunc; 3650 break; 3466 3651 case GL_STENCIL_PASS_DEPTH_PASS: 3467 3468 3652 *params = (GLint) ctx->Stencil.ZPassFunc; 3653 break; 3469 3654 case GL_STENCIL_REF: 3470 3471 3655 *params = (GLint) ctx->Stencil.Ref; 3656 break; 3472 3657 case GL_STENCIL_TEST: 3473 3474 3658 *params = (GLint) ctx->Stencil.Enabled; 3659 break; 3475 3660 case GL_STENCIL_VALUE_MASK: 3476 3477 3661 *params = (GLint) ctx->Stencil.ValueMask; 3662 break; 3478 3663 case GL_STENCIL_WRITEMASK: 3479 3480 3664 *params = (GLint) ctx->Stencil.WriteMask; 3665 break; 3481 3666 case GL_STEREO: 3482 3483 3667 *params = (GLint) ctx->Visual->StereoFlag; 3668 break; 3484 3669 case GL_SUBPIXEL_BITS: 3485 *params = 0; /* TODO */ 3486 3670 *params = ctx->Const.SubPixelBits; 3671 break; 3487 3672 case GL_TEXTURE_1D: 3488 *params = gl_IsEnabled(ctx,GL_TEXTURE_1D) ? 1 : 0;3489 3673 *params = _mesa_IsEnabled(GL_TEXTURE_1D) ? 1 : 0; 3674 break; 3490 3675 case GL_TEXTURE_2D: 3491 *params = gl_IsEnabled(ctx,GL_TEXTURE_2D) ? 1 : 0;3492 3676 *params = _mesa_IsEnabled(GL_TEXTURE_2D) ? 1 : 0; 3677 break; 3493 3678 case GL_TEXTURE_3D: 3494 *params = gl_IsEnabled(ctx,GL_TEXTURE_3D) ? 1 : 0;3495 3679 *params = _mesa_IsEnabled(GL_TEXTURE_3D) ? 1 : 0; 3680 break; 3496 3681 case GL_TEXTURE_BINDING_1D: 3497 3682 *params = textureUnit->CurrentD[1]->Name; … … 3504 3689 break; 3505 3690 case GL_TEXTURE_ENV_COLOR: 3506 3507 3508 3509 3510 3691 params[0] = FLOAT_TO_INT( textureUnit->EnvColor[0] ); 3692 params[1] = FLOAT_TO_INT( textureUnit->EnvColor[1] ); 3693 params[2] = FLOAT_TO_INT( textureUnit->EnvColor[2] ); 3694 params[3] = FLOAT_TO_INT( textureUnit->EnvColor[3] ); 3695 break; 3511 3696 case GL_TEXTURE_ENV_MODE: 3512 3513 3697 *params = (GLint) textureUnit->EnvMode; 3698 break; 3514 3699 case GL_TEXTURE_GEN_S: 3515 3516 3700 *params = (textureUnit->TexGenEnabled & S_BIT) ? 1 : 0; 3701 break; 3517 3702 case GL_TEXTURE_GEN_T: 3518 3519 3703 *params = (textureUnit->TexGenEnabled & T_BIT) ? 1 : 0; 3704 break; 3520 3705 case GL_TEXTURE_GEN_R: 3521 3522 3706 *params = (textureUnit->TexGenEnabled & R_BIT) ? 1 : 0; 3707 break; 3523 3708 case GL_TEXTURE_GEN_Q: 3524 3525 3709 *params = (textureUnit->TexGenEnabled & Q_BIT) ? 1 : 0; 3710 break; 3526 3711 case GL_TEXTURE_MATRIX: 3527 3712 for (i=0;i<16;i++) { 3528 3529 3530 3713 params[i] = (GLint) ctx->TextureMatrix[texTransformUnit].m[i]; 3714 } 3715 break; 3531 3716 case GL_TEXTURE_STACK_DEPTH: 3532 3533 3717 *params = (GLint) (ctx->TextureStackDepth[texTransformUnit] + 1); 3718 break; 3534 3719 case GL_UNPACK_ALIGNMENT: 3535 3536 3720 *params = ctx->Unpack.Alignment; 3721 break; 3537 3722 case GL_UNPACK_LSB_FIRST: 3538 3539 3723 *params = (GLint) ctx->Unpack.LsbFirst; 3724 break; 3540 3725 case GL_UNPACK_ROW_LENGTH: 3541 3542 3726 *params = ctx->Unpack.RowLength; 3727 break; 3543 3728 case GL_UNPACK_SKIP_PIXELS: 3544 3545 3729 *params = ctx->Unpack.SkipPixels; 3730 break; 3546 3731 case GL_UNPACK_SKIP_ROWS: 3547 3548 3732 *params = ctx->Unpack.SkipRows; 3733 break; 3549 3734 case GL_UNPACK_SWAP_BYTES: 3550 3551 3735 *params = (GLint) ctx->Unpack.SwapBytes; 3736 break; 3552 3737 case GL_UNPACK_SKIP_IMAGES_EXT: 3553 3738 *params = ctx->Unpack.SkipImages; … … 3563 3748 break; 3564 3749 case GL_ZOOM_X: 3565 3566 3750 *params = (GLint) ctx->Pixel.ZoomX; 3751 break; 3567 3752 case GL_ZOOM_Y: 3568 3569 3753 *params = (GLint) ctx->Pixel.ZoomY; 3754 break; 3570 3755 case GL_VERTEX_ARRAY: 3571 3756 *params = (GLint) ctx->Array.Vertex.Enabled; … … 3657 3842 break; 3658 3843 3659 3660 3844 /* GL_PGI_misc_hints */ 3661 3845 case GL_STRICT_DEPTHFUNC_HINT_PGI: 3662 3846 *params = (GL_NICEST); 3663 3847 break; 3664 3848 case GL_STRICT_LIGHTING_HINT_PGI: 3665 3666 3849 *params = (ctx->Hint.StrictLighting); 3850 break; 3667 3851 case GL_STRICT_SCISSOR_HINT_PGI: 3668 3852 case GL_FULL_STIPPLE_HINT_PGI: 3669 3670 3853 *params = (GL_TRUE); 3854 break; 3671 3855 case GL_CONSERVE_MEMORY_HINT_PGI: 3672 3673 3856 *params = (GL_FALSE); 3857 break; 3674 3858 case GL_ALWAYS_FAST_HINT_PGI: 3675 3676 3677 3678 3859 *params = (ctx->Hint.AllowDrawWin == GL_TRUE && 3860 ctx->Hint.AllowDrawSpn == GL_FALSE && 3861 ctx->Hint.AllowDrawMem == GL_FALSE); 3862 break; 3679 3863 case GL_ALWAYS_SOFT_HINT_PGI: 3680 3681 3682 3683 3864 *params = (ctx->Hint.AllowDrawWin == GL_TRUE && 3865 ctx->Hint.AllowDrawSpn == GL_TRUE && 3866 ctx->Hint.AllowDrawMem == GL_TRUE); 3867 break; 3684 3868 case GL_ALLOW_DRAW_OBJ_HINT_PGI: 3685 3686 3869 *params = GL_TRUE; 3870 break; 3687 3871 case GL_ALLOW_DRAW_WIN_HINT_PGI: 3688 3689 3872 *params = ctx->Hint.AllowDrawWin; 3873 break; 3690 3874 case GL_ALLOW_DRAW_SPN_HINT_PGI: 3691 3692 3875 *params = ctx->Hint.AllowDrawSpn; 3876 break; 3693 3877 case GL_ALLOW_DRAW_MEM_HINT_PGI: 3694 3695 3878 *params = ctx->Hint.AllowDrawMem; 3879 break; 3696 3880 case GL_CLIP_NEAR_HINT_PGI: 3697 3881 case GL_CLIP_FAR_HINT_PGI: 3698 3699 3882 *params = GL_TRUE; 3883 break; 3700 3884 case GL_WIDE_LINE_HINT_PGI: 3701 3702 3885 *params = GL_DONT_CARE; 3886 break; 3703 3887 case GL_BACK_NORMALS_HINT_PGI: 3704 3705 3888 *params = (GL_TRUE); 3889 break; 3706 3890 case GL_NATIVE_GRAPHICS_HANDLE_PGI: 3707 *params = 0; 3708 break; 3709 3710 /* GL_EXT_compiled_vertex_array 3711 */ 3712 case GL_ARRAY_ELEMENT_LOCK_FIRST_SGI: 3713 *params = ctx->Array.LockFirst; 3714 break; 3715 3716 case GL_ARRAY_ELEMENT_LOCK_COUNT_SGI: 3717 *params = ctx->Array.LockCount; 3718 break; 3719 3891 *params = 0; 3892 break; 3893 3894 /* GL_EXT_compiled_vertex_array */ 3895 case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: 3896 *params = ctx->Array.LockFirst; 3897 break; 3898 case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: 3899 *params = ctx->Array.LockCount; 3900 break; 3901 3902 /* GL_ARB_transpose_matrix */ 3903 case GL_TRANSPOSE_COLOR_MATRIX_ARB: 3904 /* don't have a color matrix */ 3905 break; 3906 case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB: 3907 { 3908 GLfloat tm[16]; 3909 GLuint i; 3910 gl_matrix_transposef(tm, ctx->ModelView.m); 3911 for (i=0;i<16;i++) { 3912 params[i] = (GLint) tm[i]; 3913 } 3914 } 3915 break; 3916 case GL_TRANSPOSE_PROJECTION_MATRIX_ARB: 3917 { 3918 GLfloat tm[16]; 3919 GLuint i; 3920 gl_matrix_transposef(tm, ctx->ProjectionMatrix.m); 3921 for (i=0;i<16;i++) { 3922 params[i] = (GLint) tm[i]; 3923 } 3924 } 3925 break; 3926 case GL_TRANSPOSE_TEXTURE_MATRIX_ARB: 3927 { 3928 GLfloat tm[16]; 3929 GLuint i; 3930 gl_matrix_transposef(tm, ctx->TextureMatrix[texTransformUnit].m); 3931 for (i=0;i<16;i++) { 3932 params[i] = (GLint) tm[i]; 3933 } 3934 } 3935 break; 3936 3937 /* GL_HP_occlusion_test */ 3938 case GL_OCCLUSION_TEST_HP: 3939 if (ctx->Extensions.HaveHpOcclusionTest) { 3940 *params = (GLint) ctx->Depth.OcclusionTest; 3941 } 3942 else { 3943 gl_error( ctx, GL_INVALID_ENUM, "glGetIntegerv" ); 3944 } 3945 return; 3946 case GL_OCCLUSION_TEST_RESULT_HP: 3947 if (ctx->Extensions.HaveHpOcclusionTest) { 3948 *params = (GLint) ctx->OcclusionResult; 3949 ctx->OcclusionResult = GL_FALSE; /* reset now */ 3950 } 3951 else { 3952 gl_error( ctx, GL_INVALID_ENUM, "glGetIntegerv" ); 3953 } 3954 return; 3955 3720 3956 default: 3721 printf("invalid enum: %x\n", pname);3722 3957 gl_error( ctx, GL_INVALID_ENUM, "glGetIntegerv" ); 3723 3958 } … … 3726 3961 3727 3962 3728 void gl_GetPointerv( GLcontext *ctx, GLenum pname, GLvoid **params ) 3963 void 3964 _mesa_GetPointerv( GLenum pname, GLvoid **params ) 3729 3965 { 3966 GET_CURRENT_CONTEXT(ctx); 3730 3967 GLuint texUnit = ctx->Texture.CurrentUnit; 3731 3968 /*GLuint texTransformUnit = ctx->Texture.CurrentTransformUnit;*/ … … 3767 4004 3768 4005 3769 const GLubyte *gl_GetString( GLcontext *ctx, GLenum name ) 4006 const GLubyte * 4007 _mesa_GetString( GLenum name ) 3770 4008 { 3771 static char result[1000];4009 GET_CURRENT_CONTEXT(ctx); 3772 4010 static char *vendor = "Brian Paul"; 3773 static char *version = "1.2 Mesa 3.1"; 4011 static char *renderer = "Mesa"; 4012 static char *version = "1.2 Mesa 3.3 beta"; 3774 4013 3775 4014 ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx, "glGetString", 0); 3776 4015 3777 /* First see if device driver can satisfy this call */ 3778 switch (name) { 3779 case GL_VENDOR: 3780 case GL_RENDERER: 3781 case GL_VERSION: 3782 if (ctx->Driver.GetString) { 3783 const GLubyte *str = (*ctx->Driver.GetString)(ctx, name); 3784 if (str && str[0]) 3785 return str; 3786 } 3787 break; 3788 /* Extensions always handled by extensions.c */ 3789 case GL_EXTENSIONS: 3790 return (GLubyte *) gl_extensions_get_string( ctx ); 3791 default: 3792 gl_error( ctx, GL_INVALID_ENUM, "glGetString" ); 3793 return (GLubyte *) 0; 3794 } 3795 3796 /* If we get here, device driver didn't return a string */ 3797 switch (name) { 3798 case GL_VENDOR: 3799 return (GLubyte *) vendor; 3800 case GL_RENDERER: 3801 strcpy(result, "Mesa"); 3802 if (ctx->Driver.RendererString) { 3803 strcat(result, " "); 3804 strcat(result, (*ctx->Driver.RendererString)()); 3805 } 3806 return (GLubyte *) result; 3807 case GL_VERSION: 3808 return (GLubyte *) version; 3809 default: 3810 /* caught above */ 3811 return NULL; 4016 /* this is a required driver function */ 4017 ASSERT(ctx->Driver.GetString); 4018 { 4019 const GLubyte *str = (*ctx->Driver.GetString)(ctx, name); 4020 if (str) 4021 return str; 4022 4023 switch (name) { 4024 case GL_VENDOR: 4025 return (const GLubyte *) vendor; 4026 case GL_RENDERER: 4027 return (const GLubyte *) renderer; 4028 case GL_VERSION: 4029 return (const GLubyte *) version; 4030 case GL_EXTENSIONS: 4031 return (GLubyte *) gl_extensions_get_string( ctx ); 4032 default: 4033 gl_error( ctx, GL_INVALID_ENUM, "glGetString" ); 4034 return (GLubyte *) 0; 4035 } 3812 4036 } 3813 4037 } 4038 4039 4040 /* 4041 * Execute a glGetError command 4042 */ 4043 GLenum 4044 _mesa_GetError( void ) 4045 { 4046 GET_CURRENT_CONTEXT(ctx); 4047 4048 GLenum e = ctx->ErrorValue; 4049 4050 ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL( ctx, "glGetError", (GLenum) 0); 4051 4052 if (MESA_VERBOSE & VERBOSE_API) 4053 fprintf(stderr, "glGetError <-- %s\n", gl_lookup_enum_by_nr(e)); 4054 4055 ctx->ErrorValue = (GLenum) GL_NO_ERROR; 4056 return e; 4057 } 4058
Note:
See TracChangeset
for help on using the changeset viewer.