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:
+3
-3
@@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user