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
This commit is contained in:
mtklein 2016-07-22 07:35:08 -07:00 committed by Commit bot
parent db2cb10f4d
commit d01a8f470f

View File

@ -464,11 +464,11 @@ SkXfermode::LCD32Proc SkXfermode::GetLCD32Proc(uint32_t flags) {
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];
}