20 #include "../util/cf-parser.h" 56 DARRAY(uint8_t) default_val;
59 static inline void shader_var_init(
struct shader_var *sv)
64 static inline void shader_var_init_param(
struct shader_var *sv,
char *type,
65 char *name,
bool is_uniform,
83 static inline void shader_var_free(
struct shader_var *sv)
107 for (i = 0; i < ss->states.num; i++)
108 bfree(ss->states.array[i]);
109 for (i = 0; i < ss->values.num; i++)
110 bfree(ss->values.array[i]);
127 static inline void shader_struct_init(
struct shader_struct *ss)
132 static inline void shader_struct_free(
struct shader_struct *ss)
136 for (i = 0; i < ss->vars.num; i++)
137 shader_var_free(ss->vars.array + i);
154 static inline void shader_func_init(
struct shader_func *sf,
char *return_type,
166 static inline void shader_func_free(
struct shader_func *sf)
170 for (i = 0; i < sf->params.num; i++)
171 shader_var_free(sf->params.array + i);
190 static inline void shader_parser_init(
struct shader_parser *sp)
192 cf_parser_init(&sp->
cfp);
200 static inline void shader_parser_free(
struct shader_parser *sp)
204 for (i = 0; i < sp->params.num; i++)
205 shader_var_free(sp->params.array + i);
206 for (i = 0; i < sp->structs.num; i++)
207 shader_struct_free(sp->structs.array + i);
208 for (i = 0; i < sp->samplers.num; i++)
209 shader_sampler_free(sp->samplers.array + i);
210 for (i = 0; i < sp->funcs.num; i++)
211 shader_func_free(sp->funcs.array + i);
213 cf_parser_free(&sp->
cfp);
223 static inline char *shader_parser_geterrors(
struct shader_parser *sp)
229 shader_parser_getparam(
struct shader_parser *sp,
const char *param_name)
232 for (i = 0; i < sp->params.num; i++) {
233 struct shader_var *param = sp->params.array + i;
234 if (strcmp(param->
name, param_name) == 0)
242 shader_parser_getstruct(
struct shader_parser *sp,
const char *struct_name)
245 for (i = 0; i < sp->structs.num; i++) {
247 if (strcmp(st->
name, struct_name) == 0)
255 shader_parser_getsampler(
struct shader_parser *sp,
const char *sampler_name)
258 for (i = 0; i < sp->samplers.num; i++) {
260 if (strcmp(sampler->
name, sampler_name) == 0)
268 shader_parser_getfunc(
struct shader_parser *sp,
const char *func_name)
271 for (i = 0; i < sp->funcs.num; i++) {
273 if (strcmp(func->
name, func_name) == 0)
EXPORT char * error_data_buildstring(struct error_data *ed)
DARRAY(struct shader_var) vars
Definition: graphics.h:223
gs_sample_filter
Definition: graphics.h:146
char * name
Definition: shader-parser.h:94
int array_count
Definition: shader-parser.h:53
char * return_type
Definition: shader-parser.h:147
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:148
char * name
Definition: shader-parser.h:123
DARRAY(struct shader_var) params
Definition: cf-lexer.h:47
struct cf_parser cfp
Definition: shader-parser.h:182
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:37
Definition: shader-parser.h:45
Definition: shader-parser.h:122
Definition: shader-parser.h:93
struct cf_token * end
Definition: shader-parser.h:151
gs_shader_param_type
Definition: graphics.h:289
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:146
Definition: shader-parser.h:145
Definition: shader-parser.h:48
struct cf_token * start
Definition: shader-parser.h:151
#define da_free(v)
Definition: darray.h:467
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:465
gs_address_mode
Definition: graphics.h:158
Definition: shader-parser.h:181
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