X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fgetstring.c;h=55fb42096dfea0ee42bea911b700fa04ba065cdc;hb=d4e1d85dba8ec4a37f68a284b5a2be15b4f2987a;hp=5188a79c95137d28571a9f8b47bc2c2359170f78;hpb=a0c85249244e1af8dac88076d5f384cf4bd01236;p=mesa.git diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c index 5188a79c951..55fb42096df 100644 --- a/src/mesa/main/getstring.c +++ b/src/mesa/main/getstring.c @@ -1,8 +1,8 @@ /* * Mesa 3-D graphics library - * Version: 6.3 + * Version: 7.1 * - * Copyright (C) 1999-2005 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"), @@ -54,7 +54,15 @@ _mesa_GetString( GLenum name ) 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 = "1.5 Mesa " MESA_VERSION_STRING;/*XXX FIX*/ + 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; ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, NULL); @@ -73,6 +81,7 @@ _mesa_GetString( GLenum name ) case GL_RENDERER: return (const GLubyte *) renderer; case GL_VERSION: + /* tests for 1.3: */ if (ctx->Extensions.ARB_multisample && ctx->Extensions.ARB_multitexture && ctx->Extensions.ARB_texture_border_clamp && @@ -81,6 +90,7 @@ _mesa_GetString( GLenum name ) ctx->Extensions.EXT_texture_env_add && ctx->Extensions.ARB_texture_env_combine && ctx->Extensions.ARB_texture_env_dot3) { + /* tests for 1.4: */ if (ctx->Extensions.ARB_depth_texture && ctx->Extensions.ARB_shadow && ctx->Extensions.ARB_texture_env_crossbar && @@ -88,7 +98,6 @@ _mesa_GetString( GLenum name ) ctx->Extensions.ARB_window_pos && ctx->Extensions.EXT_blend_color && ctx->Extensions.EXT_blend_func_separate && - ctx->Extensions.EXT_blend_logic_op && ctx->Extensions.EXT_blend_minmax && ctx->Extensions.EXT_blend_subtract && ctx->Extensions.EXT_fog_coord && @@ -98,14 +107,27 @@ _mesa_GetString( GLenum name ) ctx->Extensions.EXT_stencil_wrap && ctx->Extensions.EXT_texture_lod_bias && ctx->Extensions.SGIS_generate_mipmap) { + /* tests for 1.5: */ if (ctx->Extensions.ARB_occlusion_query && ctx->Extensions.ARB_vertex_buffer_object && ctx->Extensions.EXT_shadow_funcs) { + /* tests for 2.0: */ 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_stencil_two_side) { - return (const GLubyte *) version_2_0; + ctx->Extensions.EXT_blend_equation_separate) { + /* tests for 2.1: */ + 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; @@ -126,6 +148,12 @@ _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_100) + return (const GLubyte *) sl_version_110; + goto error; +#endif #if FEATURE_NV_fragment_program || FEATURE_ARB_fragment_program || \ FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program case GL_PROGRAM_ERROR_STRING_NV: @@ -136,6 +164,9 @@ _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" ); @@ -174,28 +205,28 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params ) switch (pname) { case GL_VERTEX_ARRAY_POINTER: - *params = (GLvoid *) ctx->Array.Vertex.Ptr; + *params = (GLvoid *) ctx->Array.ArrayObj->Vertex.Ptr; break; case GL_NORMAL_ARRAY_POINTER: - *params = (GLvoid *) ctx->Array.Normal.Ptr; + *params = (GLvoid *) ctx->Array.ArrayObj->Normal.Ptr; break; case GL_COLOR_ARRAY_POINTER: - *params = (GLvoid *) ctx->Array.Color.Ptr; + *params = (GLvoid *) ctx->Array.ArrayObj->Color.Ptr; break; case GL_SECONDARY_COLOR_ARRAY_POINTER_EXT: - *params = (GLvoid *) ctx->Array.SecondaryColor.Ptr; + *params = (GLvoid *) ctx->Array.ArrayObj->SecondaryColor.Ptr; break; case GL_FOG_COORDINATE_ARRAY_POINTER_EXT: - *params = (GLvoid *) ctx->Array.FogCoord.Ptr; + *params = (GLvoid *) ctx->Array.ArrayObj->FogCoord.Ptr; break; case GL_INDEX_ARRAY_POINTER: - *params = (GLvoid *) ctx->Array.Index.Ptr; + *params = (GLvoid *) ctx->Array.ArrayObj->Index.Ptr; break; case GL_TEXTURE_COORD_ARRAY_POINTER: - *params = (GLvoid *) ctx->Array.TexCoord[clientUnit].Ptr; + *params = (GLvoid *) ctx->Array.ArrayObj->TexCoord[clientUnit].Ptr; break; case GL_EDGE_FLAG_ARRAY_POINTER: - *params = (GLvoid *) ctx->Array.EdgeFlag.Ptr; + *params = (GLvoid *) ctx->Array.ArrayObj->EdgeFlag.Ptr; break; case GL_FEEDBACK_BUFFER_POINTER: *params = ctx->Feedback.Buffer;