void gs_shader_set_val(gs_sparam_t *param, const void *val, size_t size) { shader_setval_inline(param, val, size); }
void gs_shader_set_default(gs_sparam_t *param) { if (param->defaultValue.size()) shader_setval_inline(param, param->defaultValue.data(), param->defaultValue.size()); }
void gs_shader_set_vec4(gs_sparam_t *param, const struct vec4 *val) { shader_setval_inline(param, val, sizeof(vec4)); }
void gs_shader_set_texture(gs_sparam_t *param, gs_texture_t *val) { shader_setval_inline(param, &val, sizeof(gs_texture_t*)); }
void gs_shader_set_matrix4(gs_sparam_t *param, const struct matrix4 *val) { shader_setval_inline(param, val, sizeof(matrix4)); }
void gs_shader_set_vec3(gs_sparam_t *param, const struct vec3 *val) { shader_setval_inline(param, val, sizeof(float) * 3); }
void gs_shader_set_matrix3(gs_sparam_t *param, const struct matrix3 *val) { struct matrix4 mat; matrix4_from_matrix3(&mat, val); shader_setval_inline(param, &mat, sizeof(matrix4)); }
void gs_shader_set_int(gs_sparam_t *param, int val) { shader_setval_inline(param, &val, sizeof(int)); }
void gs_shader_set_float(gs_sparam_t *param, float val) { shader_setval_inline(param, &val, sizeof(float)); }
void gs_shader_set_bool(gs_sparam_t *param, bool val) { int b_val = (int)val; shader_setval_inline(param, &b_val, sizeof(int)); }
void gs_shader_set_bool(gs_sparam_t *param, bool val) { shader_setval_inline(param, &val, sizeof(bool)); }