summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2012-09-01 10:02:32 -0700
committerJordan Justen <jordan.l.justen@intel.com>2012-10-01 12:57:32 -0700
commit5e0fde7fc64f27d3b34c2d10e2431e30f03fe2c5 (patch)
tree82bde9d94dbc454220c1f7827112fd7987949781
parentea88d66369b2f136ae6287dd1ae22dc1b9a60aa8 (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.c30
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)