summaryrefslogtreecommitdiff
path: root/source/fitz/draw-paint.c
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2016-05-27 15:36:22 +0100
committerRobin Watts <robin.watts@artifex.com>2016-05-29 10:11:36 +0100
commit388e34e47dcf6132f63877d133d6d7679d1b8537 (patch)
tree5dfbdd5b9498cadbed28b5f4afa9095f9a445d97 /source/fitz/draw-paint.c
parent6ac9843782043fd221db156de525fc825ecdeb0c (diff)
downloadmupdf-388e34e47dcf6132f63877d133d6d7679d1b8537.tar.xz
Improve speed of fz_paint_solid_color and friends.
Diffstat (limited to 'source/fitz/draw-paint.c')
-rw-r--r--source/fitz/draw-paint.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/source/fitz/draw-paint.c b/source/fitz/draw-paint.c
index 5828842f..41f1a220 100644
--- a/source/fitz/draw-paint.c
+++ b/source/fitz/draw-paint.c
@@ -240,10 +240,15 @@ fz_paint_solid_color_N_general(byte * restrict dp, int n, int w, const byte * re
{
while (w--)
{
- for (k = 0; k < n1; k++)
+ dp[0] = color[0];
+ if (n1 > 1)
+ dp[1] = color[1];
+ if (n1 > 2)
+ dp[2] = color[2];
+ for (k = 3; k < n1; k++)
dp[k] = color[k];
if (da)
- dp[k] = 255;
+ dp[n1] = 255;
dp += n;
}
}
@@ -510,17 +515,23 @@ fz_paint_span_with_color_N_general(byte * restrict dp, const byte * restrict mp,
}
else if (ma == 256)
{
- for (k = 0; k < n1; k++)
+ if (n1 > 0)
+ dp[0] = color[0];
+ if (n1 > 1)
+ dp[1] = color[1];
+ if (n1 > 2)
+ dp[2] = color[2];
+ for (k = 3; k < n1; k++)
dp[k] = color[k];
if (da)
- dp[k] = 255;
+ dp[n1] = 255;
}
else
{
for (k = 0; k < n1; k++)
dp[k] = FZ_BLEND(color[k], dp[k], ma);
if (da)
- dp[k] = FZ_BLEND(255, dp[k], ma);
+ dp[n1] = FZ_BLEND(255, dp[k], ma);
}
dp += n;
}