Minor code pretty-ing in the Jakob spectral upsampler.
This commit is contained in:
parent
70721be8e0
commit
4adc81b66b
|
@ -60,37 +60,20 @@ fn small_rgb_to_spectrum_p4(
|
||||||
) -> Float4 {
|
) -> Float4 {
|
||||||
// Determine largest RGB component, and calculate the other two
|
// Determine largest RGB component, and calculate the other two
|
||||||
// components scaled for lookups.
|
// components scaled for lookups.
|
||||||
let (i, max_val, x, y) = {
|
let (i, max_val, x, y) = if rgb.0 > rgb.1 && rgb.0 > rgb.2 {
|
||||||
let mut i = 0;
|
(0, rgb.0, rgb.1, rgb.2)
|
||||||
let mut max_val = rgb.0;
|
} else if rgb.1 > rgb.2 {
|
||||||
let mut x = rgb.1;
|
(1, rgb.1, rgb.2, rgb.0)
|
||||||
let mut y = rgb.2;
|
} else {
|
||||||
|
(2, rgb.2, rgb.0, rgb.1)
|
||||||
if rgb.1 > max_val {
|
|
||||||
i = 1;
|
|
||||||
max_val = rgb.1;
|
|
||||||
x = rgb.2;
|
|
||||||
y = rgb.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if rgb.2 > max_val {
|
|
||||||
i = 2;
|
|
||||||
max_val = rgb.2;
|
|
||||||
x = rgb.0;
|
|
||||||
y = rgb.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
let scale = 63.0 / max_val;
|
|
||||||
x *= scale;
|
|
||||||
y *= scale;
|
|
||||||
|
|
||||||
(i, max_val, x, y)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Make sure we're not looking up black, to avoid NaN's from divide by zero.
|
|
||||||
if max_val == 0.0 {
|
if max_val == 0.0 {
|
||||||
|
// If max_val is zero, just return zero. This avoids NaN's from
|
||||||
|
// divide by zero. This is also correct, since it's black.
|
||||||
return Float4::splat(0.0);
|
return Float4::splat(0.0);
|
||||||
}
|
}
|
||||||
|
let x = x * 63.0 / max_val;
|
||||||
|
let y = y * 63.0 / max_val;
|
||||||
|
|
||||||
// Calculate lookup coordinates.
|
// Calculate lookup coordinates.
|
||||||
let xi = (x as usize).min(table_res - 2);
|
let xi = (x as usize).min(table_res - 2);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user