main: Report GL_SHADING_LANGUAGE_VERSION according to API
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 22 Apr 2010 12:34:42 +0000 (08:34 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 22 Apr 2010 16:42:23 +0000 (12:42 -0400)
src/mesa/es/main/specials_es2.c
src/mesa/main/getstring.c

index 24fecb837fd4fbe78493a4f7346bd57245c35e51..ac499473a3778ed41b0b1636c3ac4bc7b381342f 100644 (file)
@@ -129,8 +129,6 @@ const GLubyte * GLAPIENTRY
 _es_GetString(GLenum name)
 {
    switch (name) {
-   case GL_SHADING_LANGUAGE_VERSION:
-      return (const GLubyte *) "OpenGL ES GLSL ES 1.0.16";
    case GL_EXTENSIONS:
       return compute_es_extensions();
    default:
index 51dd5f779572ee045139349c9c907d1a08953854..e3a60fa6eb568047255ba01c65422386907d93cb 100644 (file)
 #include "enums.h"
 #include "extensions.h"
 
+static const GLubyte *
+shading_laguage_version(GLcontext *ctx)
+{
+   switch (ctx->API) {
+#if FEATURE_ARB_shading_language_100
+   case API_OPENGL:
+      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
+
+   case API_OPENGLES2:
+      return (const GLubyte *) "OpenGL ES GLSL ES 1.0.16";
+
+   case API_OPENGLES:
+   default:
+   error:
+      _mesa_error( ctx, GL_INVALID_ENUM, "glGetString" );
+      return (const GLubyte *) 0;
+   }
+}
+
 
 /**
  * Query string-valued state.  The return value should _not_ be freed by
@@ -74,13 +98,9 @@ _mesa_GetString( GLenum name )
          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_120)
-            return (const GLubyte *) "1.20";
-         else if (ctx->Extensions.ARB_shading_language_100)
-            return (const GLubyte *) "1.10";
-         goto error;
+#if FEATURE_ARB_shading_language_100 || FEATURE_ES2
+      case GL_SHADING_LANGUAGE_VERSION:
+        return shading_laguage_version(ctx);
 #endif
 #if FEATURE_NV_fragment_program || FEATURE_ARB_fragment_program || \
     FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program
@@ -92,9 +112,6 @@ _mesa_GetString( GLenum name )
             return (const GLubyte *) ctx->Program.ErrorString;
          }
          /* FALL-THROUGH */
-#endif
-#if FEATURE_ARB_shading_language_100
-      error:
 #endif
       default:
          _mesa_error( ctx, GL_INVALID_ENUM, "glGetString" );