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)
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));
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);
struct cf_parser cfp
Definition: effect-parser.h:259
char * name
Definition: effect-parser.h:162
char * mapping
Definition: effect-parser.h:208
bool written
Definition: effect-parser.h:215
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
DARRAY(struct ep_param) params
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
DARRAY(struct ep_var) param_vars
bool written
Definition: effect-parser.h:136
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
DARRAY(struct ep_pass) passes
int array_count
Definition: effect-parser.h:66
#define da_free(v)
Definition: darray.h:456
struct gs_effect_pass * cur_pass
Definition: effect-parser.h:257
struct gs_effect_pass * pass
Definition: effect-parser.h:165
enum gs_shader_param_type type
Definition: effect.h:53
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
DARRAY(struct cf_token) vertex_program
#define da_init(v)
Definition: darray.h:454
char * name
Definition: effect.h:50
int writeorder
Definition: effect-parser.h:66
DARRAY(struct ep_var) vars
char * name
Definition: effect-parser.h:208
EXPORT void bfree(void *ptr)
Definition: effect-parser.h:161
bool written
Definition: effect-parser.h:102
bool is_texture
Definition: effect-parser.h:65
char * name
Definition: effect-parser.h:184
gs_effect_t * effect
Definition: effect-parser.h:246