1 /* This file is an image processing operation for GEGL
3 * GEGL is free software
; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation
; either
6 * version
3 of the License
, or
(at your option
) any later version.
8 * GEGL is distributed in the hope that it will be useful
,
9 * but WITHOUT ANY WARRANTY
; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with GEGL
; if not, see <https://www.gnu.org/licenses/>.
16 * Copyright
2013 Carlos Zubieta
<czubieta.dev
@gmail.com
>
19 __kernel void cl_contrast_curve
(__global const float2
*in
,
21 __global float
*curve
,
22 int num_sampling_points
)
24 int gid
= get_global_id
(0);
25 float2 in_v
= in
[gid];
27 int idx = (int) fmin(num_sampling_points - 1.0f,
29 in_v.x * num_sampling_points));
31 out[gid] = (float2) (curve[idx], in_v.y);