
kernel vec4 ciCDLKernel(sampler image, vec3 slope, vec3 offset, vec3 power, float saturation)
{
	vec4 inPix = sample(image, samplerCoord(image));
	vec3 outPix;

    inPix.rgb = inPix.rgb * slope + offset;
	inPix.rgb = clamp(inPix.rgb, 0.0, 1.0);
	inPix.rgb = pow(inPix.rgb, power);

	float luma = (inPix.r * 0.2126 + inPix.g * 0.7152 + inPix.b * 0.0722)  * (1.0-saturation);
    outPix.rgb = ((inPix.rgb * saturation) + luma);
    
	return vec4(outPix.rgb, inPix.a);
}
