Update Portuguese translation
[gegl.git] / opencl / mono-mixer.cl
blobe44e28a6639d8be57cda4dcfdce222edf4b09f37
1 __kernel void gegl_mono_mixer (__global const float4 *src_buf,
2 __global float2 *dst_buf,
3 const int preserve_luminocity,
4 float red,
5 float green,
6 float blue)
8 int gid = get_global_id(0);
9 float4 in_v = src_buf[gid];
10 float norm_factor = 1.0f;
12 if (preserve_luminocity)
14 float sum = red + green + blue;
15 if (sum == 0.0)
16 norm_factor = 1.0f;
17 else
18 norm_factor = fabs (1.0f / sum);
21 dst_buf[gid].x = (in_v.x * red + in_v.y * green + in_v.z * blue) * norm_factor;
22 dst_buf[gid].y = in_v.w;