Fix SW sRGB dst + LCD coverage bug.
We're using the linear procs for sRGB destintations
and the sRGB procs for linear destinations. Fix that.
C.f. State32::getLCDProc(), which flags |= kDstIsSRGB_LCDFlag.
kDistIsSRGB is (1<<2) == 4, so the sRGB procs must be 4-7, not 0-3.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177493002
Review-Url: https://codereview.chromium.org/2177493002
diff --git a/src/core/SkXfermode4f.cpp b/src/core/SkXfermode4f.cpp
index 87a12a7..1a9b58e 100644
--- a/src/core/SkXfermode4f.cpp
+++ b/src/core/SkXfermode4f.cpp
@@ -464,11 +464,11 @@
flags &= 7;
const LCD32Proc procs[] = {
- srcover_n_lcd<kSRGB_Dst>, src_n_lcd<kSRGB_Dst>,
- srcover_1_lcd<kSRGB_Dst>, src_1_lcd<kSRGB_Dst>,
-
srcover_n_lcd<kLinear_Dst>, src_n_lcd<kLinear_Dst>,
srcover_1_lcd<kLinear_Dst>, src_1_lcd<kLinear_Dst>,
+
+ srcover_n_lcd<kSRGB_Dst>, src_n_lcd<kSRGB_Dst>,
+ srcover_1_lcd<kSRGB_Dst>, src_1_lcd<kSRGB_Dst>,
};
return procs[flags];
}