Vibrance causes RT to freeze, fixes #5346
This commit is contained in:
parent
4ff41f7a2c
commit
6486c491f8
@ -612,6 +612,7 @@ void ImProcFunctions::vibrance (LabImage* lab)
|
||||
|
||||
const float fyy = Color::c1By116 * Lprov + Color::c16By116;
|
||||
const float yy_ = (Lprov > Color::epskap) ? fyy * fyy*fyy : Lprov / Color::kappaf;
|
||||
float ChprovOld = std::numeric_limits<float>::min();
|
||||
do {
|
||||
inGamut = true;
|
||||
|
||||
@ -625,10 +626,15 @@ void ImProcFunctions::vibrance (LabImage* lab)
|
||||
hhModified = false;
|
||||
}
|
||||
}
|
||||
|
||||
aprovn = Chprov * sincosval.y;
|
||||
bprovn = Chprov * sincosval.x;
|
||||
|
||||
if (Chprov == ChprovOld) { // avoid endless loop
|
||||
break;
|
||||
} else {
|
||||
ChprovOld = Chprov;
|
||||
}
|
||||
|
||||
float fxx = 0.002f * aprovn + fyy;
|
||||
float fzz = fyy - 0.005f * bprovn;
|
||||
float xx_ = Color::f2xyz(fxx) * Color::D50x;
|
||||
|
Loading…
x
Reference in New Issue
Block a user