diff options
author | Jordan Justen <jordan.l.justen@intel.com> | 2012-09-01 10:02:32 -0700 |
---|---|---|
committer | Jordan Justen <jordan.l.justen@intel.com> | 2012-10-01 12:57:32 -0700 |
commit | 5e0fde7fc64f27d3b34c2d10e2431e30f03fe2c5 (patch) | |
tree | 82bde9d94dbc454220c1f7827112fd7987949781 | |
parent | ea88d66369b2f136ae6287dd1ae22dc1b9a60aa8 (diff) |
piglit gl: use glGetStringi for GL >= 3.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
-rw-r--r-- | tests/util/piglit-util-gl-common.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/util/piglit-util-gl-common.c b/tests/util/piglit-util-gl-common.c index 8bf9c9480..a7433ab83 100644 --- a/tests/util/piglit-util-gl-common.c +++ b/tests/util/piglit-util-gl-common.c @@ -90,13 +90,43 @@ static const char** gl_extension_array_from_getstring() return split_string(gl_extensions_string); } +#if defined(USE_OPENGL) +static const char** gl_extension_array_from_getstringi() +{ + const char **strings; + int loop, num_extensions; + + glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions); + strings = malloc (sizeof(char*) * (num_extensions + 1)); + assert (strings != NULL); + + for (loop = 0; loop < num_extensions; loop++) { + strings[loop] = (const char*) glGetStringi(GL_EXTENSIONS, loop); + } + + strings[loop] = NULL; + + return (const char**) strings; +} +#endif + static void initialize_piglit_extension_support(void) { if (gl_extensions != NULL) { return; } +#if defined(USE_OPENGL_ES1) || defined(USE_OPENGL_ES2) gl_extensions = gl_extension_array_from_getstring(); +#elif defined(USE_OPENGL) + if (piglit_get_gl_version() < 30) { + gl_extensions = gl_extension_array_from_getstring(); + } else { + gl_extensions = gl_extension_array_from_getstringi(); + } +#else +#error Need code implemented to read extensions +#endif } bool piglit_is_extension_supported(const char *name) |