diff options
Diffstat (limited to 'fitz/dev_draw.c')
-rw-r--r-- | fitz/dev_draw.c | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/fitz/dev_draw.c b/fitz/dev_draw.c index e321eaf4..aef2ee1e 100644 --- a/fitz/dev_draw.c +++ b/fitz/dev_draw.c @@ -135,8 +135,8 @@ fz_drawclippath(void *user, fz_path *path, int evenodd, fz_matrix ctm) mask = fz_newpixmapwithrect(nil, bbox); dest = fz_newpixmapwithrect(model, bbox); - fz_clearpixmap(mask, 0); - fz_clearpixmap(dest, 0); + fz_clearpixmap(mask); + fz_clearpixmap(dest); fz_scanconvert(dev->gel, dev->ael, evenodd, bbox, mask, nil); @@ -181,8 +181,8 @@ fz_drawclipstrokepath(void *user, fz_path *path, fz_strokestate *stroke, fz_matr mask = fz_newpixmapwithrect(nil, bbox); dest = fz_newpixmapwithrect(model, bbox); - fz_clearpixmap(mask, 0); - fz_clearpixmap(dest, 0); + fz_clearpixmap(mask); + fz_clearpixmap(dest); if (!fz_isemptyrect(bbox)) fz_scanconvert(dev->gel, dev->ael, 0, bbox, mask, nil); @@ -353,8 +353,8 @@ fz_drawcliptext(void *user, fz_text *text, fz_matrix ctm, int accumulate) mask = fz_newpixmapwithrect(nil, bbox); dest = fz_newpixmapwithrect(model, bbox); - fz_clearpixmap(mask, 0); - fz_clearpixmap(dest, 0); + fz_clearpixmap(mask); + fz_clearpixmap(dest); dev->stack[dev->top].scissor = dev->scissor; dev->stack[dev->top].mask = mask; @@ -420,8 +420,8 @@ fz_drawclipstroketext(void *user, fz_text *text, fz_strokestate *stroke, fz_matr mask = fz_newpixmapwithrect(nil, bbox); dest = fz_newpixmapwithrect(model, bbox); - fz_clearpixmap(mask, 0); - fz_clearpixmap(dest, 0); + fz_clearpixmap(mask); + fz_clearpixmap(dest); dev->stack[dev->top].scissor = dev->scissor; dev->stack[dev->top].mask = mask; @@ -496,7 +496,7 @@ fz_drawfillshade(void *user, fz_shade *shade, fz_matrix ctm, float alpha) if (alpha < 1) { dest = fz_newpixmapwithrect(dev->dest->colorspace, bbox); - fz_clearpixmap(dest, 0); + fz_clearpixmap(dest); } if (shade->usebackground) @@ -718,8 +718,8 @@ fz_drawclipimagemask(void *user, fz_pixmap *image, fz_matrix ctm) mask = fz_newpixmapwithrect(nil, bbox); dest = fz_newpixmapwithrect(model, bbox); - fz_clearpixmap(mask, 0); - fz_clearpixmap(dest, 0); + fz_clearpixmap(mask); + fz_clearpixmap(dest); #ifdef SMOOTHSCALE dx = sqrtf(ctm.a * ctm.a + ctm.b * ctm.b); @@ -799,9 +799,15 @@ fz_drawbeginmask(void *user, fz_rect rect, int luminosity, fz_colorspace *colors dest = fz_newpixmapwithrect(fz_devicegray, bbox); if (luminosity) - fz_clearpixmap(dest, 255); + { + float bc; + if (!colorspace) + colorspace = fz_devicegray; + fz_convertcolor(colorspace, colorfv, fz_devicegray, &bc); + fz_clearpixmapwithcolor(dest, bc * 255); + } else - fz_clearpixmap(dest, 0); + fz_clearpixmap(dest); dev->stack[dev->top].scissor = dev->scissor; dev->stack[dev->top].dest = dev->dest; @@ -842,7 +848,7 @@ fz_drawendmask(void *user) /* create new dest scratch buffer */ bbox = fz_boundpixmap(temp); dest = fz_newpixmapwithrect(dev->dest->colorspace, bbox); - fz_clearpixmap(dest, 0); + fz_clearpixmap(dest); /* push soft mask as clip mask */ dev->stack[dev->top].scissor = dev->scissor; @@ -872,7 +878,7 @@ fz_drawbegingroup(void *user, fz_rect rect, int isolated, int knockout, fz_blend bbox = fz_intersectbbox(bbox, dev->scissor); dest = fz_newpixmapwithrect(model, bbox); - fz_clearpixmap(dest, 0); + fz_clearpixmap(dest); dev->stack[dev->top].alpha = alpha; dev->stack[dev->top].blendmode = blendmode; |