diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2011-08-06 02:34:39 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2011-08-06 02:34:39 +0200 |
commit | 70d7705aaa7a31436b50976482825e9f8c1f6c4e (patch) | |
tree | e8b641b46b3c79468809d4d2316562db84adf825 /fitz/res_pixmap.c | |
parent | 7926d3cbd583e45e59532fa473713e7d54424811 (diff) | |
download | mupdf-70d7705aaa7a31436b50976482825e9f8c1f6c4e.tar.xz |
Cosmetic style fixes.
Diffstat (limited to 'fitz/res_pixmap.c')
-rw-r--r-- | fitz/res_pixmap.c | 63 |
1 files changed, 21 insertions, 42 deletions
diff --git a/fitz/res_pixmap.c b/fitz/res_pixmap.c index 36180a3b..fdd5c357 100644 --- a/fitz/res_pixmap.c +++ b/fitz/res_pixmap.c @@ -105,6 +105,17 @@ fz_drop_pixmap(fz_pixmap *pix) } } +fz_bbox +fz_bound_pixmap(fz_pixmap *pix) +{ + fz_bbox bbox; + bbox.x0 = pix->x; + bbox.y0 = pix->y; + bbox.x1 = pix->x + pix->w; + bbox.y1 = pix->y + pix->h; + return bbox; +} + void fz_clear_pixmap(fz_pixmap *pix) { @@ -133,37 +144,24 @@ fz_clear_pixmap_with_color(fz_pixmap *pix, int value) } void -fz_copy_pixmap_rect(fz_pixmap *dest, const fz_pixmap *src, fz_bbox r) +fz_copy_pixmap_rect(fz_pixmap *dest, fz_pixmap *src, fz_bbox r) { const unsigned char *srcp; unsigned char *destp; int y, w, destspan, srcspan; - if (r.x0 < dest->x) - r.x0 = dest->x; - if (r.x1 > dest->x+dest->w) - r.x1 = dest->x+dest->w; - if (r.y0 < dest->y) - r.y0 = dest->y; - if (r.y1 > dest->y+dest->h) - r.y1 = dest->y+dest->h; - if (r.x0 < src->x) - r.x0 = src->x; - if (r.x1 > src->x+src->w) - r.x1 = src->x+src->w; - if (r.y0 < src->y) - r.y0 = src->y; - if (r.y1 > src->y+src->h) - r.y1 = src->y+src->h; + r = fz_intersect_bbox(r, fz_bound_pixmap(dest)); + r = fz_intersect_bbox(r, fz_bound_pixmap(src)); w = r.x1 - r.x0; y = r.y1 - r.y0; - if ((w <= 0) || (y <= 0)) + if (w <= 0 || y <= 0) return; + w *= src->n; srcspan = src->w * src->n; srcp = src->samples + srcspan * (r.y0 - src->y) + src->n * (r.x0 - src->x); destspan = dest->w * dest->n; - destp = dest->samples + destspan * (r.y0-dest->y) + dest->n * (r.x0 - dest->x); + destp = dest->samples + destspan * (r.y0 - dest->y) + dest->n * (r.x0 - dest->x); do { memcpy(destp, srcp, w); @@ -179,20 +177,14 @@ fz_clear_pixmap_rect_with_color(fz_pixmap *dest, int value, fz_bbox r) unsigned char *destp; int x, y, w, k, destspan; - if (r.x0 < dest->x) - r.x0 = dest->x; - if (r.x1 > dest->x+dest->w) - r.x1 = dest->x+dest->w; - if (r.y0 < dest->y) - r.y0 = dest->y; - if (r.y1 > dest->y+dest->h) - r.y1 = dest->y+dest->h; + r = fz_intersect_bbox(r, fz_bound_pixmap(dest)); w = r.x1 - r.x0; y = r.y1 - r.y0; - if ((w <= 0) || (y <= 0)) + if (w <= 0 || y <= 0) return; + destspan = dest->w * dest->n; - destp = dest->samples + destspan * (r.y0-dest->y) + dest->n * (r.x0 - dest->x); + destp = dest->samples + destspan * (r.y0 - dest->y) + dest->n * (r.x0 - dest->x); if (value == 255) do { @@ -201,7 +193,6 @@ fz_clear_pixmap_rect_with_color(fz_pixmap *dest, int value, fz_bbox r) } while (--y); else - { do { unsigned char *s = destp; @@ -214,7 +205,6 @@ fz_clear_pixmap_rect_with_color(fz_pixmap *dest, int value, fz_bbox r) destp += destspan; } while (--y); - } } void @@ -236,17 +226,6 @@ fz_premultiply_pixmap(fz_pixmap *pix) } } -fz_bbox -fz_bound_pixmap(fz_pixmap *pix) -{ - fz_bbox bbox; - bbox.x0 = pix->x; - bbox.y0 = pix->y; - bbox.x1 = pix->x + pix->w; - bbox.y1 = pix->y + pix->h; - return bbox; -} - fz_pixmap * fz_alpha_from_gray(fz_pixmap *gray, int luminosity) { |