20 #include "../util/darray.h"
21 #include "../util/cf-parser.h"
45 static inline void ep_var_init(
struct ep_var *epv)
47 memset(epv, 0,
sizeof(
struct ep_var));
50 static inline void ep_var_free(
struct ep_var *epv)
71 static inline
void ep_param_init(struct
ep_param *epp,
73 bool is_property,
bool is_const,
bool is_uniform)
80 epp->is_texture = (
astrcmp_n(epp->type,
"texture", 7) == 0);
82 epp->writeorder =
false;
88 static inline void ep_param_free(
struct ep_param *epp)
105 static inline
bool ep_struct_mapped(struct
ep_struct *eps)
107 if (eps->vars.num > 0)
108 return eps->vars.array[0].mapping != NULL;
113 static inline void ep_struct_init(
struct ep_struct *eps)
115 memset(eps, 0,
sizeof(
struct ep_struct));
118 static inline void ep_struct_free(
struct ep_struct *eps)
123 for (i = 0; i < eps->vars.num; i++)
124 ep_var_free(eps->vars.array+i);
139 static inline
void ep_sampler_init(struct
ep_sampler *eps)
144 static inline void ep_sampler_free(
struct ep_sampler *eps)
148 for (i = 0; i < eps->states.num; i++)
149 bfree(eps->states.array[i]);
150 for (i = 0; i < eps->values.num; i++)
151 bfree(eps->values.array[i]);
168 static inline
void ep_pass_init(struct
ep_pass *epp)
170 memset(epp, 0,
sizeof(
struct ep_pass));
173 static inline void ep_pass_free(
struct ep_pass *epp)
177 da_free(epp->fragment_program);
188 static inline
void ep_technique_init(struct
ep_technique *ept)
193 static inline void ep_technique_free(
struct ep_technique *ept)
197 for (i = 0; i < ept->passes.num; i++)
198 ep_pass_free(ept->passes.array+i);
211 DARRAY(const
char*) func_deps;
212 DARRAY(const
char*) struct_deps;
213 DARRAY(const
char*) param_deps;
214 DARRAY(const
char*) sampler_deps;
218 static inline
void ep_func_init(struct
ep_func *epf,
char *ret_type,
221 memset(epf, 0,
sizeof(
struct ep_func));
223 epf->ret_type = ret_type;
226 static inline void ep_func_free(
struct ep_func *epf)
229 for (i = 0; i < epf->param_vars.num; i++)
230 ep_var_free(epf->param_vars.array+i);
273 cf_parser_init(&ep->cfp);
279 const char *effect_string,
const char *file);
char * name
Definition: effect-parser.h:162
char * mapping
Definition: effect-parser.h:208
bool is_const
Definition: effect-parser.h:65
bool is_uniform
Definition: effect-parser.h:65
EXPORT int astrcmp_n(const char *str1, const char *str2, size_t n)
struct dstr contents
Definition: effect-parser.h:209
Definition: effect-parser.h:60
char * name
Definition: effect-parser.h:61
Definition: effect-parser.h:207
Definition: cf-lexer.h:47
Definition: effect-parser.h:245
char * name
Definition: effect-parser.h:132
unsigned char uint8_t
Definition: vc_stdint.h:27
bool ep_parse(struct effect_parser *ep, gs_effect_t *effect, const char *effect_string, const char *file)
bool uniform
Definition: effect-parser.h:42
char * name
Definition: effect-parser.h:41
Definition: effect-parser.h:40
char * name
Definition: effect-parser.h:100
char * type
Definition: effect-parser.h:41
bool is_property
Definition: effect-parser.h:65
char * type
Definition: effect-parser.h:61
Definition: effect-parser.h:131
Definition: effect-parser.h:183
int array_count
Definition: effect-parser.h:66
#define da_free(v)
Definition: darray.h:456
void ep_free(struct effect_parser *ep)
void ep_param_writevar(struct dstr *dst, struct darray *use_params)
Definition: cf-lexer.h:85
bool written
Definition: effect-parser.h:65
char * ret_type
Definition: effect-parser.h:208
Definition: effect-parser.h:99
struct gs_effect_param * param
Definition: effect-parser.h:64
DARRAY(uint8_t) default_val
Definition: cf-parser.h:40
char * mapping
Definition: effect-parser.h:41
#define da_init(v)
Definition: darray.h:454
int writeorder
Definition: effect-parser.h:66
char * name
Definition: effect-parser.h:208
EXPORT void bfree(void *ptr)
Definition: effect-parser.h:161
bool is_texture
Definition: effect-parser.h:65
char * name
Definition: effect-parser.h:184
gs_effect_t * effect
Definition: effect-parser.h:246