From 7e68bc93ffaa394bd94a6954e2a8318a825067c6 Mon Sep 17 00:00:00 2001 From: Mike Klein Date: Tue, 16 May 2017 12:03:15 -0400 Subject: clamp to premul in dither Dither can bump color values above alpha (duh), or below zero (duh), so clamp back to premul after dithering. BUG=skia:6644,skia:6643 Change-Id: Ida107e866380e06130af0d01467117bca929ba44 Reviewed-on: https://skia-review.googlesource.com/17070 Reviewed-by: Herb Derby Reviewed-by: Florin Malita Commit-Queue: Mike Klein --- src/jumper/SkJumper_stages.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/jumper/SkJumper_stages.cpp') diff --git a/src/jumper/SkJumper_stages.cpp b/src/jumper/SkJumper_stages.cpp index a486403239..aa161e9c94 100644 --- a/src/jumper/SkJumper_stages.cpp +++ b/src/jumper/SkJumper_stages.cpp @@ -320,6 +320,10 @@ STAGE(dither) { r += c->rate*dither; g += c->rate*dither; b += c->rate*dither; + + r = max(0, min(r, a)); + g = max(0, min(g, a)); + b = max(0, min(b, a)); } // load 4 floats from memory, and splat them into r,g,b,a -- cgit v1.2.3