-/* $Id: get.c,v 1.23 2000/05/07 20:37:40 brianp Exp $ */
+/* $Id: get.c,v 1.29 2000/05/23 20:10:49 brianp Exp $ */
/*
* Mesa 3-D graphics library
*params = INT_TO_BOOL(ctx->Pixel.MapStoSsize);
break;
case GL_POINT_SIZE:
- *params = FLOAT_TO_BOOL(ctx->Point.Size );
+ *params = FLOAT_TO_BOOL(ctx->Point.UserSize);
break;
case GL_POINT_SIZE_GRANULARITY:
*params = FLOAT_TO_BOOL(ctx->Const.PointSizeGranularity );
*params = INT_TO_BOOL(ctx->Const.SubPixelBits);
break;
case GL_TEXTURE_1D:
- *params = _mesa_IsEnabled(GL_TEXTURE_1D );
+ *params = _mesa_IsEnabled(GL_TEXTURE_1D);
break;
case GL_TEXTURE_2D:
- *params = _mesa_IsEnabled(GL_TEXTURE_2D );
+ *params = _mesa_IsEnabled(GL_TEXTURE_2D);
break;
case GL_TEXTURE_3D:
- *params = _mesa_IsEnabled(GL_TEXTURE_3D );
+ *params = _mesa_IsEnabled(GL_TEXTURE_3D);
break;
case GL_TEXTURE_BINDING_1D:
*params = INT_TO_BOOL(textureUnit->CurrentD[1]->Name);
break;
case GL_TEXTURE_BINDING_3D:
*params = INT_TO_BOOL(textureUnit->CurrentD[3]->Name);
- break;
+ break;
case GL_TEXTURE_ENV_COLOR:
{
params[0] = FLOAT_TO_BOOL(textureUnit->EnvColor[0]);
*params = INT_TO_BOOL(ctx->Array.EdgeFlag.Stride);
break;
+ /* GL_ARB_multitexture */
case GL_MAX_TEXTURE_UNITS_ARB:
*params = ctx->Const.MaxTextureUnits;
break;
*params = INT_TO_BOOL(GL_TEXTURE0_ARB + ctx->Array.ActiveTexture);
break;
+ /* GL_ARB_texture_cube_map */
+ case GL_TEXTURE_CUBE_MAP_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB);
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
+ return;
+ case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = INT_TO_BOOL(textureUnit->CurrentCubeMap->Name);
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
+ return;
+ case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = INT_TO_BOOL(ctx->Const.MaxCubeTextureSize);
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
+ break;
+
+ /* GL_ARB_texture_compression */
+ case GL_TEXTURE_COMPRESSION_HINT_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ *params = INT_TO_BOOL(ctx->Hint.TextureCompression);
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
+ break;
+ case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ *params = INT_TO_BOOL(ctx->Const.NumCompressedTextureFormats);
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
+ break;
+ case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ GLuint i;
+ for (i = 0; i < ctx->Const.NumCompressedTextureFormats; i++)
+ params[i] = INT_TO_BOOL(ctx->Const.CompressedTextureFormats[i]);
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
+ break;
+
/* GL_PGI_misc_hints */
case GL_STRICT_DEPTHFUNC_HINT_PGI:
*params = ENUM_TO_BOOL(GL_NICEST);
/* GL_ARB_transpose_matrix */
case GL_TRANSPOSE_COLOR_MATRIX_ARB:
- /* don't have a color matrix */
+ {
+ GLfloat tm[16];
+ GLuint i;
+ gl_matrix_transposef(tm, ctx->ColorMatrix.m);
+ for (i=0;i<16;i++) {
+ params[i] = FLOAT_TO_BOOL(tm[i]);
+ }
+ }
break;
case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
{
*params = (GLdouble) ctx->Pixel.MapStoSsize;
break;
case GL_POINT_SIZE:
- *params = (GLdouble) ctx->Point.Size;
+ *params = (GLdouble) ctx->Point.UserSize;
break;
case GL_POINT_SIZE_GRANULARITY:
*params = (GLdouble) ctx->Const.PointSizeGranularity;
*params = 0.0;
break;
+ /* GL_ARB_multitexture */
case GL_MAX_TEXTURE_UNITS_ARB:
*params = (GLdouble) ctx->Const.MaxTextureUnits;
break;
*params = (GLdouble) (GL_TEXTURE0_ARB + ctx->Array.ActiveTexture);
break;
+ /* GL_ARB_texture_cube_map */
+ case GL_TEXTURE_CUBE_MAP_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = (GLdouble) _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB);
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
+ return;
+ case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = (GLdouble) textureUnit->CurrentCubeMap->Name;
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
+ return;
+ case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = (GLdouble) ctx->Const.MaxCubeTextureSize;
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
+ return;
+
+ /* GL_ARB_texture_compression */
+ case GL_TEXTURE_COMPRESSION_HINT_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ *params = (GLdouble) ctx->Hint.TextureCompression;
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
+ break;
+ case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ *params = (GLdouble) ctx->Const.NumCompressedTextureFormats;
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
+ break;
+ case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ GLuint i;
+ for (i = 0; i < ctx->Const.NumCompressedTextureFormats; i++)
+ params[i] = (GLdouble) ctx->Const.CompressedTextureFormats[i];
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
+ break;
/* GL_PGI_misc_hints */
case GL_STRICT_DEPTHFUNC_HINT_PGI:
/* GL_ARB_transpose_matrix */
case GL_TRANSPOSE_COLOR_MATRIX_ARB:
- /* don't have a color matrix */
+ {
+ GLfloat tm[16];
+ GLuint i;
+ gl_matrix_transposef(tm, ctx->ColorMatrix.m);
+ for (i=0;i<16;i++) {
+ params[i] = (GLdouble) tm[i];
+ }
+ }
break;
case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
{
*params = (GLfloat) ctx->Pixel.MapStoSsize;
break;
case GL_POINT_SIZE:
- *params = (GLfloat) ctx->Point.Size;
+ *params = (GLfloat) ctx->Point.UserSize;
break;
case GL_POINT_SIZE_GRANULARITY:
*params = (GLfloat) ctx->Const.PointSizeGranularity;
*params = 0.0;
break;
+ /* GL_ARB_multitexture */
case GL_MAX_TEXTURE_UNITS_ARB:
*params = (GLfloat) ctx->Const.MaxTextureUnits;
break;
*params = (GLfloat) (GL_TEXTURE0_ARB + ctx->Array.ActiveTexture);
break;
+ /* GL_ARB_texture_cube_map */
+ case GL_TEXTURE_CUBE_MAP_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = (GLfloat) _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB);
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetFloatv");
+ return;
+ case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = (GLfloat) textureUnit->CurrentCubeMap->Name;
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetFloatv");
+ return;
+ case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = (GLfloat) ctx->Const.MaxCubeTextureSize;
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetFloatv");
+ return;
+
+ /* GL_ARB_texture_compression */
+ case GL_TEXTURE_COMPRESSION_HINT_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ *params = (GLfloat) ctx->Hint.TextureCompression;
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetFloatv");
+ break;
+ case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ *params = (GLfloat) ctx->Const.NumCompressedTextureFormats;
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetFloatv");
+ break;
+ case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ GLuint i;
+ for (i = 0; i < ctx->Const.NumCompressedTextureFormats; i++)
+ params[i] = (GLfloat) ctx->Const.CompressedTextureFormats[i];
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetFloatv");
+ break;
+
/* GL_PGI_misc_hints */
case GL_STRICT_DEPTHFUNC_HINT_PGI:
*params = ENUM_TO_FLOAT(GL_NICEST);
/* GL_ARB_transpose_matrix */
case GL_TRANSPOSE_COLOR_MATRIX_ARB:
- /* don't have a color matrix */
+ gl_matrix_transposef(params, ctx->ColorMatrix.m);
break;
case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
gl_matrix_transposef(params, ctx->ModelView.m);
*params = ctx->Pixel.MapStoSsize;
break;
case GL_POINT_SIZE:
- *params = (GLint) ctx->Point.Size;
+ *params = (GLint) ctx->Point.UserSize;
break;
case GL_POINT_SIZE_GRANULARITY:
*params = (GLint) ctx->Const.PointSizeGranularity;
*params = 0;
break;
+ /* GL_ARB_multitexture */
case GL_MAX_TEXTURE_UNITS_ARB:
*params = ctx->Const.MaxTextureUnits;
break;
*params = GL_TEXTURE0_ARB + ctx->Array.ActiveTexture;
break;
+ /* GL_ARB_texture_cube_map */
+ case GL_TEXTURE_CUBE_MAP_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = (GLint) _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB);
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
+ return;
+ case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = textureUnit->CurrentCubeMap->Name;
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
+ return;
+ case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
+ if (ctx->Extensions.HaveTextureCubeMap)
+ *params = ctx->Const.MaxCubeTextureSize;
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
+ return;
+
+ /* GL_ARB_texture_compression */
+ case GL_TEXTURE_COMPRESSION_HINT_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ *params = (GLint) ctx->Hint.TextureCompression;
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
+ break;
+ case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ *params = (GLint) ctx->Const.NumCompressedTextureFormats;
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
+ break;
+ case GL_COMPRESSED_TEXTURE_FORMATS_ARB:
+ if (ctx->Extensions.HaveTextureCompression) {
+ GLuint i;
+ for (i = 0; i < ctx->Const.NumCompressedTextureFormats; i++)
+ params[i] = (GLint) ctx->Const.CompressedTextureFormats[i];
+ }
+ else
+ gl_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
+ break;
+
/* GL_PGI_misc_hints */
case GL_STRICT_DEPTHFUNC_HINT_PGI:
*params = (GL_NICEST);
break;
case GL_STRICT_SCISSOR_HINT_PGI:
case GL_FULL_STIPPLE_HINT_PGI:
- *params = (GL_TRUE);
+ *params = GL_TRUE;
break;
case GL_CONSERVE_MEMORY_HINT_PGI:
- *params = (GL_FALSE);
+ *params = GL_FALSE;
break;
case GL_ALWAYS_FAST_HINT_PGI:
*params = (ctx->Hint.AllowDrawWin == GL_TRUE &&
*params = GL_DONT_CARE;
break;
case GL_BACK_NORMALS_HINT_PGI:
- *params = (GL_TRUE);
+ *params = GL_TRUE;
break;
case GL_NATIVE_GRAPHICS_HANDLE_PGI:
*params = 0;
/* GL_ARB_transpose_matrix */
case GL_TRANSPOSE_COLOR_MATRIX_ARB:
- /* don't have a color matrix */
+ {
+ GLfloat tm[16];
+ GLuint i;
+ gl_matrix_transposef(tm, ctx->ColorMatrix.m);
+ for (i=0;i<16;i++) {
+ params[i] = (GLint) tm[i];
+ }
+ }
break;
case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB:
{