20 #include "../util/darray.h" 21 #include "../util/cf-parser.h" 54 static inline void ep_var_init(
struct ep_var *epv)
56 memset(epv, 0,
sizeof(
struct ep_var));
59 static inline void ep_var_free(
struct ep_var *epv)
71 DARRAY(uint8_t) default_val;
81 static inline void ep_param_init(
struct ep_param *epp,
char *
type,
char *
name,
82 bool is_property,
bool is_const,
99 static inline void ep_param_free(
struct ep_param *epp)
106 for (
size_t i = 0; i < epp->annotations.num; i++)
107 ep_param_free(epp->annotations.array + i);
120 static inline bool ep_struct_mapped(
struct ep_struct *eps)
122 if (eps->vars.num > 0)
123 return eps->vars.array[0].mapping != NULL;
128 static inline void ep_struct_init(
struct ep_struct *eps)
130 memset(eps, 0,
sizeof(
struct ep_struct));
133 static inline void ep_struct_free(
struct ep_struct *eps)
138 for (i = 0; i < eps->vars.num; i++)
139 ep_var_free(eps->vars.array + i);
154 static inline void ep_sampler_init(
struct ep_sampler *eps)
159 static inline void ep_sampler_free(
struct ep_sampler *eps)
163 for (i = 0; i < eps->states.num; i++)
164 bfree(eps->states.array[i]);
165 for (i = 0; i < eps->values.num; i++)
166 bfree(eps->values.array[i]);
183 static inline void ep_pass_init(
struct ep_pass *epp)
185 memset(epp, 0,
sizeof(
struct ep_pass));
188 static inline void ep_pass_free(
struct ep_pass *epp)
192 da_free(epp->fragment_program);
203 static inline void ep_technique_init(
struct ep_technique *ept)
208 static inline void ep_technique_free(
struct ep_technique *ept)
212 for (i = 0; i < ept->passes.num; i++)
213 ep_pass_free(ept->passes.array + i);
226 DARRAY(
const char *) func_deps;
227 DARRAY(
const char *) struct_deps;
228 DARRAY(
const char *) param_deps;
229 DARRAY(
const char *) sampler_deps;
233 static inline void ep_func_init(
struct ep_func *epf,
char *ret_type,
char *name)
235 memset(epf, 0,
sizeof(
struct ep_func));
240 static inline void ep_func_free(
struct ep_func *epf)
243 for (i = 0; i < epf->param_vars.num; i++)
244 ep_var_free(epf->param_vars.array + i);
287 cf_parser_init(&ep->
cfp);
293 const char *effect_string,
const char *file);
struct cf_parser cfp
Definition: effect-parser.h:273
Definition: effect-parser.h:43
char * name
Definition: effect-parser.h:177
char * mapping
Definition: effect-parser.h:223
bool written
Definition: effect-parser.h:230
bool is_const
Definition: effect-parser.h:74
bool is_uniform
Definition: effect-parser.h:74
EXPORT int astrcmp_n(const char *str1, const char *str2, size_t n)
struct dstr contents
Definition: effect-parser.h:224
Definition: effect-parser.h:69
char * name
Definition: effect-parser.h:70
Definition: effect-parser.h:222
Definition: effect-parser.h:42
Definition: cf-lexer.h:47
Definition: effect-parser.h:259
char * name
Definition: effect-parser.h:147
DARRAY(struct ep_param) params
bool ep_parse(struct effect_parser *ep, gs_effect_t *effect, const char *effect_string, const char *file)
DARRAY(struct ep_var) param_vars
bool written
Definition: effect-parser.h:151
char * name
Definition: effect-parser.h:50
Definition: effect-parser.h:49
char * name
Definition: effect-parser.h:115
char * type
Definition: effect-parser.h:50
bool is_property
Definition: effect-parser.h:74
char * type
Definition: effect-parser.h:70
Definition: effect-parser.h:146
Definition: effect-parser.h:198
DARRAY(struct ep_pass) passes
int array_count
Definition: effect-parser.h:75
#define da_free(v)
Definition: darray.h:467
struct gs_effect_pass * cur_pass
Definition: effect-parser.h:271
struct gs_effect_pass * pass
Definition: effect-parser.h:180
enum gs_shader_param_type type
Definition: effect.h:54
void ep_free(struct effect_parser *ep)
Definition: effect-parser.h:46
void ep_param_writevar(struct dstr *dst, struct darray *use_params)
Definition: cf-lexer.h:85
bool written
Definition: effect-parser.h:74
char * ret_type
Definition: effect-parser.h:223
Definition: effect-parser.h:114
enum ep_var_type var_type
Definition: effect-parser.h:51
ep_var_type
Definition: effect-parser.h:41
Definition: effect-parser.h:44
struct gs_effect_param * param
Definition: effect-parser.h:73
DARRAY(uint8_t) default_val
Definition: effect-parser.h:45
Definition: cf-parser.h:40
char * mapping
Definition: effect-parser.h:50
DARRAY(struct cf_token) vertex_program
#define da_init(v)
Definition: darray.h:465
char * name
Definition: effect.h:51
int writeorder
Definition: effect-parser.h:75
DARRAY(struct ep_var) vars
char * name
Definition: effect-parser.h:223
EXPORT void bfree(void *ptr)
Definition: effect-parser.h:176
bool written
Definition: effect-parser.h:117
bool is_texture
Definition: effect-parser.h:74
char * name
Definition: effect-parser.h:199
gs_effect_t * effect
Definition: effect-parser.h:260