diff options
author | Robin Watts <robin.watts@artifex.com> | 2012-01-02 18:22:13 +0000 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2012-01-02 18:22:13 +0000 |
commit | b7ed90ac050ea30dcab70fe3b49d31398b49699f (patch) | |
tree | aa7e8240801052de140a0e483e38c96bc31f0296 /fitz | |
parent | 7fe9ac6fa15b3b36327b7ff8c3d749495fbe9aab (diff) | |
download | mupdf-b7ed90ac050ea30dcab70fe3b49d31398b49699f.tar.xz |
Bound shades by the supplied bbox.
Fix a 'TODO'. When asking for the bounds of a shading, simply
convert the shadings bbox and intersect with that.
Diffstat (limited to 'fitz')
-rw-r--r-- | fitz/res_shade.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/fitz/res_shade.c b/fitz/res_shade.c index d619dc18..0be4ba7c 100644 --- a/fitz/res_shade.c +++ b/fitz/res_shade.c @@ -27,7 +27,7 @@ fz_rect fz_bound_shade(fz_shade *shade, fz_matrix ctm) { float *v; - fz_rect r; + fz_rect r, s; fz_point p; int i, ncomp, nvert; @@ -36,10 +36,11 @@ fz_bound_shade(fz_shade *shade, fz_matrix ctm) nvert = shade->mesh_len / ncomp; v = shade->mesh; + s = fz_transform_rect(ctm, shade->bbox); if (shade->type == FZ_LINEAR) - return fz_infinite_rect; + return fz_intersect_rect(s, fz_infinite_rect); if (shade->type == FZ_RADIAL) - return fz_infinite_rect; + return fz_intersect_rect(s, fz_infinite_rect); if (nvert == 0) return fz_empty_rect; @@ -63,7 +64,7 @@ fz_bound_shade(fz_shade *shade, fz_matrix ctm) if (p.y > r.y1) r.y1 = p.y; } - return r; + return fz_intersect_rect(s, r); } void |