This will be re-used later on.
---
 tests/shaders/parser_utils.c  | 17 +++++++++++++++++
 tests/shaders/parser_utils.h  |  6 ++++++
 tests/shaders/shader_runner.c | 14 +-------------
 3 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/tests/shaders/parser_utils.c b/tests/shaders/parser_utils.c
index d180842..ba59671 100644
--- a/tests/shaders/parser_utils.c
+++ b/tests/shaders/parser_utils.c
@@ -222,6 +222,23 @@ parse_enum_tab(const struct string_to_enum *tab,
 }
 
 bool
+parse_tex_target(const char *s, unsigned *t, const char **rest)
+{
+       static const struct string_to_enum tab[] = {
+               { "1D", GL_TEXTURE_1D },
+               { "2D", GL_TEXTURE_2D },
+               { "3D", GL_TEXTURE_3D },
+               { "Rect", GL_TEXTURE_RECTANGLE },
+               { "Cube", GL_TEXTURE_CUBE_MAP },
+               { "1DArray", GL_TEXTURE_1D_ARRAY },
+               { "2DArray", GL_TEXTURE_2D_ARRAY },
+               { "CubeArray", GL_TEXTURE_CUBE_MAP_ARRAY },
+               { NULL, 0 }
+       };
+       return parse_enum_tab(tab, s, t, rest);
+}
+
+bool
 parse_comparison_op(const char *s, enum comparison *t, const char **rest)
 {
        if (parse_str(s, "==", rest)) {
diff --git a/tests/shaders/parser_utils.h b/tests/shaders/parser_utils.h
index 6907a69..28e0630 100644
--- a/tests/shaders/parser_utils.h
+++ b/tests/shaders/parser_utils.h
@@ -184,6 +184,12 @@ bool
 parse_enum_tab(const struct string_to_enum *tab,
               const char *s, unsigned *e, const char **rest);
 
+/**
+ * Parse a texture target symbolic constant.
+ */
+bool
+parse_tex_target(const char *s, GLenum *t, const char **rest);
+
 const char *eat_whitespace(const char *src);
 const char *eat_text(const char *src);
 bool string_match(const char *string, const char *line);
diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
index 9aa988d..6d2f7f4 100644
--- a/tests/shaders/shader_runner.c
+++ b/tests/shaders/shader_runner.c
@@ -2469,18 +2469,6 @@ decode_drawing_mode(const char *mode_str)
 static void
 handle_texparameter(const char *line)
 {
-       static const struct string_to_enum texture_target[] = {
-               { "1D",        GL_TEXTURE_1D             },
-               { "2D",        GL_TEXTURE_2D             },
-               { "3D",        GL_TEXTURE_3D             },
-               { "Rect",      GL_TEXTURE_RECTANGLE      },
-               { "Cube",      GL_TEXTURE_CUBE_MAP       },
-               { "1DArray",   GL_TEXTURE_1D_ARRAY       },
-               { "2DArray",   GL_TEXTURE_2D_ARRAY       },
-               { "CubeArray", GL_TEXTURE_CUBE_MAP_ARRAY },
-               { NULL, 0 }
-       };
-
        static const struct string_to_enum compare_funcs[] = {
                { "greater", GL_GREATER },
                { "gequal", GL_GEQUAL },
@@ -2532,7 +2520,7 @@ handle_texparameter(const char *line)
        const struct string_to_enum *strings = NULL;
        unsigned value;
 
-       REQUIRE(parse_enum_tab(texture_target, line, &value, NULL),
+       REQUIRE(parse_tex_target(line, &target, &line),
                "Bad texture target at: %s\n", line);
 
        if (parse_str(line, "compare_func ", &line)) {
-- 
2.9.0

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to