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