mesa: Remove unnecessary header.
[mesa.git] / src / mesa / main / getstring.c
index c15f6a39bcb15fe2a87ea7bfcae4fff689459b3d..51dd5f779572ee045139349c9c907d1a08953854 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * Mesa 3-D graphics library
- * Version:  6.5.2
+ * Version:  7.1
  *
- * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
 
 
 #include "glheader.h"
-#include "colormac.h"
 #include "context.h"
 #include "get.h"
-#include "version.h"
 #include "enums.h"
 #include "extensions.h"
 
@@ -50,16 +48,6 @@ _mesa_GetString( GLenum name )
    GET_CURRENT_CONTEXT(ctx);
    static const char *vendor = "Brian Paul";
    static const char *renderer = "Mesa";
-   static const char *version_1_2 = "1.2 Mesa " MESA_VERSION_STRING;
-   static const char *version_1_3 = "1.3 Mesa " MESA_VERSION_STRING;
-   static const char *version_1_4 = "1.4 Mesa " MESA_VERSION_STRING;
-   static const char *version_1_5 = "1.5 Mesa " MESA_VERSION_STRING;
-   static const char *version_2_0 = "2.0 Mesa " MESA_VERSION_STRING;
-   static const char *version_2_1 = "2.1 Mesa " MESA_VERSION_STRING;
-
-#if FEATURE_ARB_shading_language_100
-   static const char *sl_version_110 = "1.10 Mesa " MESA_VERSION_STRING;
-#endif
 
    if (!ctx)
       return NULL;
@@ -79,74 +67,19 @@ _mesa_GetString( GLenum name )
       case GL_VENDOR:
          return (const GLubyte *) vendor;
       case GL_RENDERER:
-          return (const GLubyte *) renderer;
+         return (const GLubyte *) renderer;
       case GL_VERSION:
-         if (ctx->Extensions.ARB_multisample &&
-             ctx->Extensions.ARB_multitexture &&
-             ctx->Extensions.ARB_texture_border_clamp &&
-             ctx->Extensions.ARB_texture_compression &&
-             ctx->Extensions.ARB_texture_cube_map &&
-             ctx->Extensions.EXT_texture_env_add &&
-             ctx->Extensions.ARB_texture_env_combine &&
-             ctx->Extensions.ARB_texture_env_dot3) {
-            if (ctx->Extensions.ARB_depth_texture &&
-                ctx->Extensions.ARB_shadow &&
-                ctx->Extensions.ARB_texture_env_crossbar &&
-                ctx->Extensions.ARB_texture_mirrored_repeat &&
-                ctx->Extensions.ARB_window_pos &&
-                ctx->Extensions.EXT_blend_color &&
-                ctx->Extensions.EXT_blend_func_separate &&
-                ctx->Extensions.EXT_blend_minmax &&
-                ctx->Extensions.EXT_blend_subtract &&
-                ctx->Extensions.EXT_fog_coord &&
-                ctx->Extensions.EXT_multi_draw_arrays &&
-                ctx->Extensions.EXT_point_parameters && /*aka ARB*/
-                ctx->Extensions.EXT_secondary_color &&
-                ctx->Extensions.EXT_stencil_wrap &&
-                ctx->Extensions.EXT_texture_lod_bias &&
-                ctx->Extensions.SGIS_generate_mipmap) {
-               if (ctx->Extensions.ARB_occlusion_query &&
-                   ctx->Extensions.ARB_vertex_buffer_object &&
-                   ctx->Extensions.EXT_shadow_funcs) {
-                  if (ctx->Extensions.ARB_draw_buffers &&
-                      ctx->Extensions.ARB_point_sprite &&
-                      ctx->Extensions.ARB_shader_objects &&
-                      ctx->Extensions.ARB_vertex_shader &&
-                      ctx->Extensions.ARB_fragment_shader &&
-                      ctx->Extensions.ARB_texture_non_power_of_two &&
-                      ctx->Extensions.EXT_blend_equation_separate) {
-                     if (ctx->Extensions.ARB_shading_language_120 &&
-                         ctx->Extensions.EXT_pixel_buffer_object &&
-                         ctx->Extensions.EXT_texture_sRGB) {
-                        return (const GLubyte *) version_2_1;
-                     }
-                     else {
-                        return (const GLubyte *) version_2_0;
-                     }
-                  }
-                  else {
-                     return (const GLubyte *) version_1_5;
-                  }
-               }
-               else {
-                  return (const GLubyte *) version_1_4;
-               }
-            }
-            else {
-               return (const GLubyte *) version_1_3;
-            }
-         }
-         else {
-            return (const GLubyte *) version_1_2;
-         }
+         return (const GLubyte *) ctx->VersionString;
       case GL_EXTENSIONS:
          if (!ctx->Extensions.String)
             ctx->Extensions.String = _mesa_make_extension_string(ctx);
          return (const GLubyte *) ctx->Extensions.String;
 #if FEATURE_ARB_shading_language_100
       case GL_SHADING_LANGUAGE_VERSION_ARB:
-         if (ctx->Extensions.ARB_shading_language_100)
-            return (const GLubyte *) sl_version_110;
+         if (ctx->Extensions.ARB_shading_language_120)
+            return (const GLubyte *) "1.20";
+         else if (ctx->Extensions.ARB_shading_language_100)
+            return (const GLubyte *) "1.10";
          goto error;
 #endif
 #if FEATURE_NV_fragment_program || FEATURE_ARB_fragment_program || \
@@ -170,6 +103,34 @@ _mesa_GetString( GLenum name )
 }
 
 
+/**
+ * GL3
+ */
+const GLubyte * GLAPIENTRY
+_mesa_GetStringi(GLenum name, GLuint index)
+{
+   GET_CURRENT_CONTEXT(ctx);
+
+   if (!ctx)
+      return NULL;
+
+   ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, NULL);
+
+   switch (name) {
+   case GL_EXTENSIONS:
+      if (index >= _mesa_get_extension_count(ctx)) {
+         _mesa_error(ctx, GL_INVALID_VALUE, "glGetStringi(index=%u)", index);
+         return (const GLubyte *) 0;
+      }
+      return _mesa_get_enabled_extension(ctx, index);
+   default:
+      _mesa_error( ctx, GL_INVALID_ENUM, "glGetString" );
+      return (const GLubyte *) 0;
+   }
+}
+
+
+
 /**
  * Return pointer-valued state, such as a vertex array pointer.
  *
@@ -229,34 +190,9 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params )
       case GL_SELECTION_BUFFER_POINTER:
          *params = ctx->Select.Buffer;
          break;
-#if FEATURE_MESA_program_debug
-      case GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA:
-         if (!ctx->Extensions.MESA_program_debug) {
-            _mesa_error(ctx, GL_INVALID_ENUM, "glGetPointerv");
-            return;
-         }
-         *params = *(GLvoid **) &ctx->FragmentProgram.Callback;
-         break;
-      case GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA:
-         if (!ctx->Extensions.MESA_program_debug) {
-            _mesa_error(ctx, GL_INVALID_ENUM, "glGetPointerv");
-            return;
-         }
-         *params = ctx->FragmentProgram.CallbackData;
-         break;
-      case GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA:
-         if (!ctx->Extensions.MESA_program_debug) {
-            _mesa_error(ctx, GL_INVALID_ENUM, "glGetPointerv");
-            return;
-         }
-         *params = *(GLvoid **) &ctx->VertexProgram.Callback;
-         break;
-      case GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA:
-         if (!ctx->Extensions.MESA_program_debug) {
-            _mesa_error(ctx, GL_INVALID_ENUM, "glGetPointerv");
-            return;
-         }
-         *params = ctx->VertexProgram.CallbackData;
+#if FEATURE_point_size_array
+      case GL_POINT_SIZE_ARRAY_POINTER_OES:
+         *params = (GLvoid *) ctx->Array.ArrayObj->PointSize.Ptr;
          break;
 #endif
       default:
@@ -283,5 +219,6 @@ _mesa_GetError( void )
       _mesa_debug(ctx, "glGetError <-- %s\n", _mesa_lookup_enum_by_nr(e));
 
    ctx->ErrorValue = (GLenum) GL_NO_ERROR;
+   ctx->ErrorDebugCount = 0;
    return e;
 }