From a9543691208e92c4ff8f7d1ff39d95543b557c60 Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Thu, 6 Oct 2016 17:45:36 +0100 Subject: Tweak painters: If painting 0 alpha, skip it. --- source/fitz/draw-paint.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source') diff --git a/source/fitz/draw-paint.c b/source/fitz/draw-paint.c index 96bff706..061ee630 100644 --- a/source/fitz/draw-paint.c +++ b/source/fitz/draw-paint.c @@ -879,6 +879,12 @@ template_span_with_mask_1_general(byte * restrict dp, int da, const byte * restr { if (sa) { + if (sp[1] == 0) + { + sp += 2; + dp += 1+da; + continue; + } masa = FZ_COMBINE(sp[1], ma); masa = 255 - masa; masa = FZ_EXPAND(masa); @@ -964,6 +970,12 @@ template_span_with_mask_3_general(byte * restrict dp, int da, const byte * restr /* FIXME: There is potential for SWAR optimisation here */ if (sa) { + if (sp[3] == 0) + { + sp += 4; + dp += 3+da; + continue; + } masa = FZ_COMBINE(sp[3], ma); masa = 255 - masa; masa = FZ_EXPAND(masa); @@ -1051,6 +1063,12 @@ template_span_with_mask_4_general(byte * restrict dp, int da, const byte * restr { if (sa) { + if (sp[4] == 0) + { + sp += 5; + dp += 4+da; + continue; + } masa = FZ_COMBINE(sp[4], ma); masa = 255 - masa; masa = FZ_EXPAND(masa); @@ -1140,6 +1158,12 @@ template_span_with_mask_N_general(byte * restrict dp, int da, const byte * restr if (sa) { int masa; + if (sp[n] == 0) + { + sp += n+1; + dp += n+da; + continue; + } masa = FZ_COMBINE(sp[n], ma); masa = 255-masa; masa = FZ_EXPAND(masa); -- cgit v1.2.3