colorramp: Fix slight flicker caused by improper scaling of gamma ramp values

Values generated by colorramp_fill() will be a maximum of i * 256 - 1, due  to the use of UINT16_MAX. Simplest fix ought to be using (UINT16_MAX+1), which is safe, as the maximum value (255 * 256) still fits in a uint16.
(Thanks to Sean Hildebrand)
This commit is contained in:
Jon Lund Steffensen
2013-10-21 15:29:18 -04:00
parent d7e67a208f
commit 95d8a3f760
+3 -3
View File
@@ -139,10 +139,10 @@ colorramp_fill(uint16_t *gamma_r, uint16_t *gamma_g, uint16_t *gamma_b,
for (int i = 0; i < size; i++) {
gamma_r[i] = pow((float)i/size, 1.0/gamma[0]) *
UINT16_MAX * brightness * white_point[0];
(UINT16_MAX+1) * brightness * white_point[0];
gamma_g[i] = pow((float)i/size, 1.0/gamma[1]) *
UINT16_MAX * brightness * white_point[1];
(UINT16_MAX+1) * brightness * white_point[1];
gamma_b[i] = pow((float)i/size, 1.0/gamma[2]) *
UINT16_MAX * brightness * white_point[2];
(UINT16_MAX+1) * brightness * white_point[2];
}
}