static void upload_shader_params(struct darray *pass_params, bool changed_only) { struct pass_shaderparam *params = pass_params->array; size_t i; for (i = 0; i < pass_params->num; i++) { struct pass_shaderparam *param = params+i; struct effect_param *eparam = param->eparam; sparam_t sparam = param->sparam; if (changed_only && !eparam->changed) continue; if (!eparam->cur_val.num) { if (eparam->default_val.num) da_copy(eparam->cur_val, eparam->default_val); else continue; } shader_setval(sparam, eparam->cur_val.array, eparam->cur_val.num); } }
void shader_setdefault(shader_t shader, sparam_t param) { shader_setval(shader, param, param->def_value.array, param->def_value.num); }