20 #include "../util/cf-parser.h" 59 static inline void shader_var_init(
struct shader_var *sv)
64 static inline void shader_var_init_param(
struct shader_var *sv,
65 char *type,
char *name,
bool is_uniform,
82 static inline void shader_var_free(
struct shader_var *sv)
106 for (i = 0; i < ss->states.num; i++)
107 bfree(ss->states.array[i]);
108 for (i = 0; i < ss->values.num; i++)
109 bfree(ss->values.array[i]);
126 static inline void shader_struct_init(
struct shader_struct *ss)
131 static inline void shader_struct_free(
struct shader_struct *ss)
135 for (i = 0; i < ss->vars.num; i++)
136 shader_var_free(ss->vars.array+i);
153 static inline void shader_func_init(
struct shader_func *sf,
154 char *return_type,
char *name)
165 static inline void shader_func_free(
struct shader_func *sf)
169 for (i = 0; i < sf->params.num; i++)
170 shader_var_free(sf->params.array+i);
189 static inline void shader_parser_init(
struct shader_parser *sp)
191 cf_parser_init(&sp->
cfp);
199 static inline void shader_parser_free(
struct shader_parser *sp)
203 for (i = 0; i < sp->params.num; i++)
204 shader_var_free(sp->params.array+i);
205 for (i = 0; i < sp->structs.num; i++)
206 shader_struct_free(sp->structs.array+i);
207 for (i = 0; i < sp->samplers.num; i++)
208 shader_sampler_free(sp->samplers.array+i);
209 for (i = 0; i < sp->funcs.num; i++)
210 shader_func_free(sp->funcs.array+i);
212 cf_parser_free(&sp->
cfp);
222 static inline char *shader_parser_geterrors(
struct shader_parser *sp)
227 static inline struct shader_var *shader_parser_getparam(
231 for (i = 0; i < sp->params.num; i++) {
232 struct shader_var *param = sp->params.array+i;
233 if (strcmp(param->
name, param_name) == 0)
244 for (i = 0; i < sp->structs.num; i++) {
246 if (strcmp(st->
name, struct_name) == 0)
257 for (i = 0; i < sp->samplers.num; i++) {
259 if (strcmp(sampler->
name, sampler_name) == 0)
266 static inline struct shader_func *shader_parser_getfunc(
270 for (i = 0; i < sp->funcs.num; i++) {
272 if (strcmp(func->
name, func_name) == 0)
EXPORT char * error_data_buildstring(struct error_data *ed)
DARRAY(struct shader_var) vars
Definition: graphics.h:216
gs_sample_filter
Definition: graphics.h:145
char * name
Definition: shader-parser.h:93
int array_count
Definition: shader-parser.h:53
char * return_type
Definition: shader-parser.h:146
enum shader_var_type var_type
Definition: shader-parser.h:52
shader_var_type
Definition: shader-parser.h:39
char * mapping
Definition: shader-parser.h:147
char * name
Definition: shader-parser.h:122
DARRAY(struct shader_var) params
Definition: cf-lexer.h:47
struct cf_parser cfp
Definition: shader-parser.h:181
unsigned char uint8_t
Definition: vc_stdint.h:27
char * type
Definition: shader-parser.h:49
EXPORT void shader_sampler_convert(struct shader_sampler *ss, struct gs_sampler_info *info)
#define EXPORT
Definition: c99defs.h:49
Definition: shader-parser.h:45
Definition: shader-parser.h:121
Definition: shader-parser.h:92
struct cf_token * end
Definition: shader-parser.h:150
gs_shader_param_type
Definition: graphics.h:278
EXPORT enum gs_shader_param_type get_shader_param_type(const char *type)
Definition: shader-parser.h:42
EXPORT bool shader_parse(struct shader_parser *sp, const char *shader, const char *file)
char * name
Definition: shader-parser.h:145
Definition: shader-parser.h:144
Definition: shader-parser.h:48
struct cf_token * start
Definition: shader-parser.h:150
#define da_free(v)
Definition: darray.h:458
EXPORT enum gs_sample_filter get_sample_filter(const char *filter)
Definition: shader-parser.h:44
struct error_data error_list
Definition: cf-parser.h:43
char * mapping
Definition: shader-parser.h:51
char * name
Definition: shader-parser.h:50
Definition: shader-parser.h:41
DARRAY(uint8_t) default_val
EXPORT enum gs_address_mode get_address_mode(const char *address_mode)
Definition: cf-parser.h:40
Definition: shader-parser.h:40
#define da_init(v)
Definition: darray.h:456
gs_address_mode
Definition: graphics.h:157
Definition: shader-parser.h:180
size_t gl_sampler_id
Definition: shader-parser.h:54
EXPORT void bfree(void *ptr)
Definition: shader-parser.h:43
DARRAY(struct shader_var) params