filters: Add noise filter.
[gfxprim.git] / libs / filters / GP_Noise.gen.c.t
blob7afca65b1e70e4963c429cbdae17d526fe90ce4e
1 %% extends "filter.point.c.t"
3 {% block descr %}Noise filter -- Adds noise to an image.{% endblock %}
5 %% block body
7 {{ filter_point_include() }}
9 %% macro filter_op(chann_name, chann_size)
10 {{ chann_name }} = {{ chann_name }} + (random() % ({{ chann_name }}_max * 2)) - {{ chann_name }}_max;
11 {{ filter_clamp_val(chann_name, chann_size) }}
12 %% endmacro
15  * Generated noise filters.
16  */
17 %% call(pt) filter_point_per_channel('Noise', 'GP_FilterParam ratio[]', filter_op)
18 {{ filter_params(pt, 'ratio', 'float ', '_rat', 'f') }}
19 %% for chann in pt.chanslist
20         int {{ chann[0] }}_max = {{ chann[0] }}_rat * {{ 2 ** chann[2] - 1}} + 0.5;
21 %% endfor
22 %% endcall
25  * Generated noise filters for pixels with one channel.
26  */
27 %% call(ps) filter_point_per_bpp('Noise', 'GP_FilterParam ratio[]', filter_op)
28 {{ filter_param(ps, 'ratio', 'float ', '_rat', 'f') }}
29         int pix_max = pix_rat * {{ 2 ** ps.size - 1}} + 0.5;
30 %% endcall
32 {{ filter_functions('Noise', 'GP_FilterParam ratio[]', 'ratio') }}
34 %% endblock body