summaryrefslogtreecommitdiff
path: root/fitz/res_pixmap.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2011-08-06 02:34:39 +0200
committerTor Andersson <tor.andersson@artifex.com>2011-08-06 02:34:39 +0200
commit70d7705aaa7a31436b50976482825e9f8c1f6c4e (patch)
treee8b641b46b3c79468809d4d2316562db84adf825 /fitz/res_pixmap.c
parent7926d3cbd583e45e59532fa473713e7d54424811 (diff)
downloadmupdf-70d7705aaa7a31436b50976482825e9f8c1f6c4e.tar.xz
Cosmetic style fixes.
Diffstat (limited to 'fitz/res_pixmap.c')
-rw-r--r--fitz/res_pixmap.c63
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)
{