Merge branch 'glsl2-head' into glsl2
[mesa.git] / src / gallium / targets / graw-xlib / graw_util.c
1
2 #include "pipe/p_compiler.h"
3 #include "pipe/p_context.h"
4 #include "tgsi/tgsi_text.h"
5 #include "util/u_memory.h"
6 #include "state_tracker/graw.h"
7
8
9 /* Helper functions. These are the same for all graw implementations.
10 */
11 void *graw_parse_geometry_shader(struct pipe_context *pipe,
12 const char *text)
13 {
14 struct tgsi_token tokens[1024];
15 struct pipe_shader_state state;
16
17 if (!tgsi_text_translate(text, tokens, Elements(tokens)))
18 return NULL;
19
20 state.tokens = tokens;
21 return pipe->create_gs_state(pipe, &state);
22 }
23
24 void *graw_parse_vertex_shader(struct pipe_context *pipe,
25 const char *text)
26 {
27 struct tgsi_token tokens[1024];
28 struct pipe_shader_state state;
29
30 if (!tgsi_text_translate(text, tokens, Elements(tokens)))
31 return NULL;
32
33 state.tokens = tokens;
34 return pipe->create_vs_state(pipe, &state);
35 }
36
37 void *graw_parse_fragment_shader(struct pipe_context *pipe,
38 const char *text)
39 {
40 struct tgsi_token tokens[1024];
41 struct pipe_shader_state state;
42
43 if (!tgsi_text_translate(text, tokens, Elements(tokens)))
44 return NULL;
45
46 state.tokens = tokens;
47 return pipe->create_fs_state(pipe, &state);
48 }
49