gallium: added tgsi_num_tokens() function to return number of tokens in token array.
authorBrian <brian.paul@tungstengraphics.com>
Mon, 24 Mar 2008 22:24:32 +0000 (16:24 -0600)
committerBrian <brian.paul@tungstengraphics.com>
Mon, 24 Mar 2008 22:35:24 +0000 (16:35 -0600)
Maybe move to a different file someday.

src/gallium/auxiliary/tgsi/util/tgsi_parse.c
src/gallium/auxiliary/tgsi/util/tgsi_parse.h

index bf6b89ce56434b496d22067006b06436897c9d70..c3526cb71ffe97df1475cd759fff45636447b610 100644 (file)
@@ -317,3 +317,16 @@ tgsi_parse_token(
    }
 }
 
+
+unsigned
+tgsi_num_tokens(const struct tgsi_token *tokens)
+{
+   struct tgsi_parse_context ctx;
+   if (tgsi_parse_init(&ctx, tokens) == TGSI_PARSE_OK) {
+      unsigned len = (ctx.FullHeader.Header.HeaderSize +
+                      ctx.FullHeader.Header.BodySize +
+                      1);
+      return len;
+   }
+   return 0;
+}
index 40083728d646744dc3c435da834e04c0876b5ea1..a98e88e3437ad9adc499b25508cb4402d7b37592 100644 (file)
@@ -113,6 +113,10 @@ void
 tgsi_parse_token(
    struct tgsi_parse_context *ctx );
 
+unsigned
+tgsi_num_tokens(const struct tgsi_token *tokens);
+
+
 #if defined __cplusplus
 }
 #endif