summaryrefslogtreecommitdiff
path: root/types/fx/blur_data.c
blob: 3aa618b991768a42db267f173f72abcc95a45b73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "scenefx/types/fx/blur_data.h"

struct blur_data blur_data_get_default(void) {
	return (struct blur_data) {
		.radius = 5,
		.num_passes = 3,
		.noise = 0.02,
		.brightness = 0.9,
		.contrast = 0.9,
		.saturation = 1.1,
	};
}

bool blur_data_should_parameters_blur_effects(struct blur_data *blur_data) {
	return blur_data->brightness != 1.0f
		|| blur_data->saturation != 1.0f
		|| blur_data->contrast != 1.0f
		|| blur_data->noise > 0.0f;
}

bool blur_data_cmp(struct blur_data *a, struct blur_data *b) {
	return a->radius == b->radius &&
		a->num_passes && b->num_passes &&
		a->noise == b->noise &&
		a->brightness == b->brightness &&
		a->contrast == b->contrast &&
		a->saturation == b->saturation;
}

int blur_data_calc_size(struct blur_data *blur_data) {
	return pow(2, blur_data->num_passes + 1) * blur_data->radius;
}