From 98b10c1244eebfd7be3d2b07301c29fd52133032 Mon Sep 17 00:00:00 2001 From: Chad Versace Date: Wed, 9 Mar 2011 14:06:08 -0800 Subject: util: Change signature of piglit_get_gl_version() Change signature from piglit_get_gl_version(bool *es, float *version) to piglit_get_gl_version(bool *es, int *major_version, int *minor_version) This eliminates floating point error. Signed-off-by: Chad Versace --- tests/glslparsertest/glslparsertest.c | 10 +++++----- tests/util/piglit-util.c | 24 +++++++++++------------- tests/util/piglit-util.h | 3 +-- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/tests/glslparsertest/glslparsertest.c b/tests/glslparsertest/glslparsertest.c index 4ceb5981c..965e5b5af 100644 --- a/tests/glslparsertest/glslparsertest.c +++ b/tests/glslparsertest/glslparsertest.c @@ -41,7 +41,7 @@ static char *filename; static int expected_pass; -static float gl_version = 0; +static int gl_major_version = 0; static GLint get_shader_compile_status(GLuint shader) @@ -49,7 +49,7 @@ get_shader_compile_status(GLuint shader) GLint status; #if defined USE_OPENGL - if (gl_version >= 2.0) { + if (gl_major_version >= 2) { glGetShaderiv(shader, GL_COMPILE_STATUS, &status); } else { glGetObjectParameterivARB(shader, GL_OBJECT_COMPILE_STATUS_ARB, &status); @@ -69,7 +69,7 @@ get_shader_info_log_length(GLuint shader) GLsizei length; #if defined USE_OPENGL - if (gl_version >= 2.0) { + if (gl_major_version >= 2) { glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length); } else { glGetObjectParameterivARB(shader, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length); @@ -215,13 +215,13 @@ int main(int argc, char**argv) glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT); glutCreateWindow("glslparsertest"); - piglit_get_gl_version(NULL, &gl_version); + piglit_get_gl_version(NULL, &gl_major_version, NULL); #ifdef USE_OPENGL glewInit(); #endif - if (gl_version < 2.0 + if (gl_major_version < 2 && !piglit_is_extension_supported("GL_ARB_shader_objects")) { printf("Requires OpenGL 2.0\n"); piglit_report_result(PIGLIT_SKIP); diff --git a/tests/util/piglit-util.c b/tests/util/piglit-util.c index d0cb6abef..e5ee2b588 100644 --- a/tests/util/piglit-util.c +++ b/tests/util/piglit-util.c @@ -48,14 +48,12 @@ void piglit_glutInit(int argc, char **argv) #endif } -void piglit_get_gl_version(bool *es, float* version) +void piglit_get_gl_version(bool *es, int* major, int* minor) { /* Version of OpenGL API. */ bool es_local; - int major; - int minor; - const size_t buffer_size = 32; - char buffer[32]; + int major_local; + int minor_local; const char *version_string; int c; /* scanf count */ @@ -65,23 +63,23 @@ void piglit_get_gl_version(bool *es, float* version) if (es_local) { c = sscanf(version_string, "OpenGL ES %i.%i", - &major, - &minor); + &major_local, + &minor_local); } else { c = sscanf(version_string, "%i.%i", - &major, - &minor); + &major_local, + &minor_local); } assert(c == 2); - memset(buffer, 0, buffer_size * sizeof(char)); - sprintf(buffer, "%i.%i", major, minor); /* Write outputs. */ if (es != NULL) *es = es_local; - if (version != NULL) - *version = strtod(buffer, NULL); + if (major != NULL) + *major = major_local; + if (minor != NULL) + *minor = minor_local; } bool piglit_is_extension_supported(const char *name) diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h index 13b4adc3a..2a8e72fe9 100644 --- a/tests/util/piglit-util.h +++ b/tests/util/piglit-util.h @@ -86,9 +86,8 @@ void piglit_glutInit(int argc, char **argv); * Null parameters are ignored. * * \param es Is the API OpenGL or OpenGL ES? - * \param version In the form of 'major.minor'. */ -void piglit_get_gl_version(bool *es, float* version); +void piglit_get_gl_version(bool *es, int* major, int* minor); /** * \precondition name is not null -- cgit v1.2.3