diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/main/context.c | 5 | ||||
| -rw-r--r-- | src/mesa/main/getstring.c | 81 | 
2 files changed, 6 insertions, 80 deletions
| diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 5c20ce017f..320c59068c 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1015,6 +1015,9 @@ _mesa_free_context_data( GLcontext *ctx )     if (ctx->Extensions.String)        _mesa_free((void *) ctx->Extensions.String); +   if (ctx->VersionString) +      _mesa_free(ctx->VersionString); +     /* unbind the context if it's currently bound */     if (ctx == _mesa_get_current_context()) {        _mesa_make_current(NULL, NULL, NULL); @@ -1374,6 +1377,8 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,        }        if (newCtx->FirstTimeCurrent) { +         _mesa_compute_version(newCtx); +           check_context_limits(newCtx);           /* We can use this to help debug user's problems.  Tell them to set diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c index cac5eef1cb..e76a790d0a 100644 --- a/src/mesa/main/getstring.c +++ b/src/mesa/main/getstring.c @@ -33,85 +33,6 @@  /** - * Examine enabled GL extensions to determine GL version. - * \return version string - */ -static const char * -compute_version(const GLcontext *ctx) -{ -   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; - -   const GLboolean ver_1_3 = (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); -   const GLboolean ver_1_4 = (ver_1_3 && -                              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 && -                              ctx->Extensions.EXT_secondary_color && -                              ctx->Extensions.EXT_stencil_wrap && -                              ctx->Extensions.EXT_texture_lod_bias && -                              ctx->Extensions.SGIS_generate_mipmap); -   const GLboolean ver_1_5 = (ver_1_4 && -                              ctx->Extensions.ARB_occlusion_query && -                              ctx->Extensions.ARB_vertex_buffer_object && -                              ctx->Extensions.EXT_shadow_funcs); -   const GLboolean ver_2_0 = (ver_1_5 && -                              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 && - -			      /* Technically, 2.0 requires the functionality -			       * of the EXT version.  Enable 2.0 if either -			       * extension is available, and assume that a -			       * driver that only exposes the ATI extension -			       * will fallback to software when necessary. -			       */ -			      (ctx->Extensions.EXT_stencil_two_side -			       || ctx->Extensions.ATI_separate_stencil)); -   const GLboolean ver_2_1 = (ver_2_0 && -                              ctx->Extensions.ARB_shading_language_120 && -                              ctx->Extensions.EXT_pixel_buffer_object && -                              ctx->Extensions.EXT_texture_sRGB); -   if (ver_2_1) -      return version_2_1; -   if (ver_2_0) -      return version_2_0; -   if (ver_1_5) -      return version_1_5; -   if (ver_1_4) -      return version_1_4; -   if (ver_1_3) -      return version_1_3; -   return version_1_2; -} - - - -/**   * Query string-valued state.  The return value should _not_ be freed by   * the caller.   * @@ -149,7 +70,7 @@ _mesa_GetString( GLenum name )        case GL_RENDERER:           return (const GLubyte *) renderer;        case GL_VERSION: -         return (const GLubyte *) compute_version(ctx); +         return (const GLubyte *) ctx->VersionString;        case GL_EXTENSIONS:           if (!ctx->Extensions.String)              ctx->Extensions.String = _mesa_make_extension_string(ctx); | 
