From: Keith Whitwell Date: Mon, 7 Jun 2010 18:37:44 +0000 (+0100) Subject: graw: add parse_geometry_shader helper X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9d343f4ba18e506942a9c1f70f0ccae1309d7ece;p=mesa.git graw: add parse_geometry_shader helper --- diff --git a/src/gallium/include/state_tracker/graw.h b/src/gallium/include/state_tracker/graw.h index e5b298e03d9..59b0e337c92 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 147532cdee1..47aca4464db 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) {