From 9d343f4ba18e506942a9c1f70f0ccae1309d7ece Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Mon, 7 Jun 2010 19:37:44 +0100 Subject: graw: add parse_geometry_shader helper --- src/gallium/include/state_tracker/graw.h | 3 +++ src/gallium/targets/graw-xlib/graw_util.c | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/gallium/include/state_tracker/graw.h b/src/gallium/include/state_tracker/graw.h index e5b298e03d..59b0e337c9 100644 --- a/src/gallium/include/state_tracker/graw.h +++ b/src/gallium/include/state_tracker/graw.h @@ -34,6 +34,9 @@ PUBLIC struct pipe_screen *graw_create_window_and_screen( int x, PUBLIC void graw_set_display_func( void (*func)( void ) ); PUBLIC void graw_main_loop( void ); +PUBLIC void *graw_parse_geometry_shader( struct pipe_context *pipe, + const char *text ); + PUBLIC void *graw_parse_vertex_shader( struct pipe_context *pipe, const char *text ); diff --git a/src/gallium/targets/graw-xlib/graw_util.c b/src/gallium/targets/graw-xlib/graw_util.c index 147532cdee..47aca4464d 100644 --- a/src/gallium/targets/graw-xlib/graw_util.c +++ b/src/gallium/targets/graw-xlib/graw_util.c @@ -8,6 +8,19 @@ /* Helper functions. These are the same for all graw implementations. */ +void *graw_parse_geometry_shader(struct pipe_context *pipe, + const char *text) +{ + struct tgsi_token tokens[1024]; + struct pipe_shader_state state; + + if (!tgsi_text_translate(text, tokens, Elements(tokens))) + return NULL; + + state.tokens = tokens; + return pipe->create_gs_state(pipe, &state); +} + void *graw_parse_vertex_shader(struct pipe_context *pipe, const char *text) { -- cgit v1.2.3