diff --git a/rtengine/color.h b/rtengine/color.h index 9ff00034c..be7740e2a 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -1079,6 +1079,10 @@ public: { return gammatab_srgb[x]; } + static inline float gamma_srgbclipped (float x) + { + return gamma2curve[x]; + } static inline float gamma (float x) { return gammatab[x]; diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index c1de37474..4660ed6cb 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -19,6 +19,9 @@ #include #include #include +#ifdef _OPENMP +#include +#endif #include "rtengine.h" #include "improcfun.h" @@ -38,9 +41,6 @@ #include "clutstore.h" #include "ciecam02.h" -#ifdef _OPENMP -#include -#endif #undef CLIPD #define CLIPD(a) ((a)>0.0f?((a)<1.0f?(a):1.0f):0.0f) @@ -4396,10 +4396,10 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer float &sourceG = gtemp[ti * TS + tj]; float &sourceB = btemp[ti * TS + tj]; - //appply gamma sRGB (default RT) - sourceR = CLIP( Color::gamma_srgb( sourceR ) ); - sourceG = CLIP( Color::gamma_srgb( sourceG ) ); - sourceB = CLIP( Color::gamma_srgb( sourceB ) ); + //apply gamma sRGB (default RT) + sourceR = Color::gamma_srgbclipped( sourceR ); + sourceG = Color::gamma_srgbclipped( sourceG ); + sourceB = Color::gamma_srgbclipped( sourceB ); } const std::size_t line_offset = ti * TS;