static void crop_filter_tick(void *data, float seconds) { struct crop_filter_data *filter = data; vec2_zero(&filter->mul_val); vec2_zero(&filter->add_val); calc_crop_dimensions(filter, &filter->mul_val, &filter->add_val); UNUSED_PARAMETER(seconds); }
static void crop_filter_render(void *data, gs_effect_t *effect) { struct crop_filter_data *filter = data; struct vec2 mul_val; struct vec2 add_val; vec2_zero(&mul_val); vec2_zero(&add_val); calc_crop_dimensions(filter, &mul_val, &add_val); obs_source_process_filter_begin(filter->context, GS_RGBA, OBS_NO_DIRECT_RENDERING); gs_effect_set_vec2(filter->param_mul, &mul_val); gs_effect_set_vec2(filter->param_add, &add_val); obs_source_process_filter_end(filter->context, filter->effect, filter->width, filter->height); UNUSED_PARAMETER(effect); }