mesa: initialize extension string when context is first bound
authorBrian Paul <brianp@vmware.com>
Thu, 24 Jun 2010 20:10:24 +0000 (14:10 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 25 Jun 2010 14:47:33 +0000 (08:47 -0600)
...instead of waiting until glGetString(GL_EXTENSIONS) is called.
This fixes a problem where the MESA_EXTENSION_OVERRIDE env var is
ignored if the app never calls glGetString(GL_EXTENSIONS).

NOTE: this is a candidate patch for the 7.8 branch.

src/mesa/main/context.c
src/mesa/main/getstring.c

index 0afd77d3759a308fa28bc5ccad68c1ad5c943ea2..f597b23194e73ce93761ed199865098aed50609d 100644 (file)
@@ -1462,6 +1462,8 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
       if (newCtx->FirstTimeCurrent) {
          _mesa_compute_version(newCtx);
 
+         newCtx->Extensions.String = _mesa_make_extension_string(newCtx);
+
          check_context_limits(newCtx);
 
          /* We can use this to help debug user's problems.  Tell them to set
index 54db5794bf64becfa16a20d56d8b256ba8a982f3..7961ad7e7dd048774cc84baaf3a7f9a1f2ed4198 100644 (file)
@@ -95,8 +95,6 @@ _mesa_GetString( GLenum name )
       case GL_VERSION:
          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 || FEATURE_ES2
       case GL_SHADING_LANGUAGE_VERSION: