20 #include "../util/cf-parser.h" 56 static inline
void shader_var_init(struct
shader_var *sv)
61 static inline void shader_var_init_param(
struct shader_var *sv,
62 char *type,
char *name,
bool is_uniform,
79 static inline void shader_var_free(
struct shader_var *sv)
103 for (i = 0; i < ss->states.num; i++)
104 bfree(ss->states.array[i]);
105 for (i = 0; i < ss->values.num; i++)
106 bfree(ss->values.array[i]);
123 static inline
void shader_struct_init(struct
shader_struct *ss)
128 static inline void shader_struct_free(
struct shader_struct *ss)
132 for (i = 0; i < ss->vars.num; i++)
133 shader_var_free(ss->vars.array+i);
150 static inline
void shader_func_init(struct
shader_func *sf,
151 char *return_type,
char *name)
155 sf->return_type = return_type;
162 static inline void shader_func_free(
struct shader_func *sf)
166 for (i = 0; i < sf->params.num; i++)
167 shader_var_free(sf->params.array+i);
186 static inline
void shader_parser_init(struct
shader_parser *sp)
188 cf_parser_init(&sp->cfp);
196 static inline void shader_parser_free(
struct shader_parser *sp)
200 for (i = 0; i < sp->params.num; i++)
201 shader_var_free(sp->params.array+i);
202 for (i = 0; i < sp->structs.num; i++)
203 shader_struct_free(sp->structs.array+i);
204 for (i = 0; i < sp->samplers.num; i++)
205 shader_sampler_free(sp->samplers.array+i);
206 for (i = 0; i < sp->funcs.num; i++)
207 shader_func_free(sp->funcs.array+i);
209 cf_parser_free(&sp->
cfp);
219 static inline char *shader_parser_geterrors(
struct shader_parser *sp)
224 static inline struct shader_var *shader_parser_getparam(
228 for (i = 0; i < sp->params.num; i++) {
229 struct shader_var *param = sp->params.array+i;
230 if (strcmp(param->
name, param_name) == 0)
241 for (i = 0; i < sp->structs.num; i++) {
243 if (strcmp(st->
name, struct_name) == 0)
254 for (i = 0; i < sp->samplers.num; i++) {
256 if (strcmp(sampler->
name, sampler_name) == 0)
263 static inline struct shader_func *shader_parser_getfunc(
267 for (i = 0; i < sp->funcs.num; i++) {
269 if (strcmp(func->
name, func_name) == 0)
EXPORT char * error_data_buildstring(struct error_data *ed)
Definition: graphics.h:216
gs_sample_filter
Definition: graphics.h:145
char * name
Definition: shader-parser.h:90
int array_count
Definition: shader-parser.h:50
char * return_type
Definition: shader-parser.h:143
enum shader_var_type var_type
Definition: shader-parser.h:49
shader_var_type
Definition: shader-parser.h:39
char * mapping
Definition: shader-parser.h:144
char * name
Definition: shader-parser.h:119
Definition: cf-lexer.h:47
struct cf_parser cfp
Definition: shader-parser.h:178
unsigned char uint8_t
Definition: vc_stdint.h:27
char * type
Definition: shader-parser.h:46
EXPORT void shader_sampler_convert(struct shader_sampler *ss, struct gs_sampler_info *info)
#define EXPORT
Definition: c99defs.h:49
Definition: shader-parser.h:42
Definition: shader-parser.h:118
Definition: shader-parser.h:89
gs_shader_param_type
Definition: graphics.h:278
EXPORT enum gs_shader_param_type get_shader_param_type(const char *type)
EXPORT bool shader_parse(struct shader_parser *sp, const char *shader, const char *file)
char * name
Definition: shader-parser.h:142
Definition: shader-parser.h:141
Definition: shader-parser.h:45
#define da_free(v)
Definition: darray.h:456
EXPORT enum gs_sample_filter get_sample_filter(const char *filter)
Definition: shader-parser.h:41
struct error_data error_list
Definition: cf-parser.h:43
char * mapping
Definition: shader-parser.h:48
char * name
Definition: shader-parser.h:47
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:454
gs_address_mode
Definition: graphics.h:157
Definition: shader-parser.h:177
size_t gl_sampler_id
Definition: shader-parser.h:51
EXPORT void bfree(void *ptr)