@@ -67,6 +67,7 @@ uniform vec2 tex_bayer_first_red;
uniform sampler2D tex_y;
uniform mat3 ccm;
uniform vec3 blacklevel;
+uniform float gamma;
void main(void)
{
@@ -260,6 +261,9 @@ void main(void)
rgb.g = (rin * ccm[1][0]) + (gin * ccm[1][1]) + (bin * ccm[1][2]);
rgb.b = (rin * ccm[2][0]) + (gin * ccm[2][1]) + (bin * ccm[2][2]);
+ /* Apply gamma after colour correction */
+ rgb = pow(rgb, vec3(gamma));
+
#if defined (SWAP_BLUE)
gl_FragColor = vec4(rgb.bgr, 1.0);
#else
@@ -26,6 +26,7 @@ varying vec4 yCoord;
varying vec4 xCoord;
uniform mat3 ccm;
uniform vec3 blacklevel;
+uniform float gamma;
void main(void) {
vec3 rgb;
@@ -155,6 +156,9 @@ void main(void) {
rgb.g = (rin * ccm[1][0]) + (gin * ccm[1][1]) + (bin * ccm[1][2]);
rgb.b = (rin * ccm[2][0]) + (gin * ccm[2][1]) + (bin * ccm[2][2]);
+ /* Apply gamma after colour correction */
+ rgb = pow(rgb, vec3(gamma));
+
#if defined (SWAP_BLUE)
gl_FragColor = vec4(rgb.bgr, 1.0);
#else