[Mesa-dev] [PATCH 4/6] tgsi/text: add str_match_format helper function
Nicolai Hähnle
nhaehnle at gmail.com
Thu Apr 28 22:50:51 UTC 2016
From: Nicolai Hähnle <nicolai.haehnle at amd.com>
---
src/gallium/auxiliary/tgsi/tgsi_text.c | 31 ++++++++++++++++++++++---------
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c
index 114e6e5..8a6645f 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_text.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_text.c
@@ -119,6 +119,24 @@ static boolean str_match_nocase_whole( const char **pcur, const char *str )
return FALSE;
}
+/* Return the format corresponding to the name at *pcur.
+ * Returns -1 if there is no format name.
+ *
+ * On success, the pointer to the string is moved to the end of the read format
+ * name.
+ */
+static int str_match_format(const char **pcur)
+{
+ for (unsigned i = 0; i < PIPE_FORMAT_COUNT; i++) {
+ const struct util_format_description *desc =
+ util_format_description(i);
+ if (desc && str_match_nocase_whole(pcur, desc->name)) {
+ return i;
+ }
+ }
+ return -1;
+}
+
/* Eat zero or more whitespaces.
*/
static void eat_opt_white( const char **pcur )
@@ -1302,16 +1320,11 @@ static boolean parse_declaration( struct translate_ctx *ctx )
decl.Image.Writable = 1;
} else {
- for (i = 0; i < PIPE_FORMAT_COUNT; i++) {
- const struct util_format_description *desc =
- util_format_description(i);
- if (desc && str_match_nocase_whole(&cur2, desc->name)) {
- decl.Image.Format = i;
- break;
- }
- }
- if (i == PIPE_FORMAT_COUNT)
+ int format = str_match_format(&cur2);
+ if (format < 0)
break;
+
+ decl.Image.Format = format;
}
cur = cur2;
eat_opt_white(&cur2);
--
2.5.0
More information about the mesa-dev
mailing list