diff options
Diffstat (limited to 'source/fitz/list-device.c')
-rw-r--r-- | source/fitz/list-device.c | 62 |
1 files changed, 27 insertions, 35 deletions
diff --git a/source/fitz/list-device.c b/source/fitz/list-device.c index 88ad2110..072ce1d5 100644 --- a/source/fitz/list-device.c +++ b/source/fitz/list-device.c @@ -703,11 +703,10 @@ fz_list_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, const } static void -fz_list_clip_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, fz_matrix ctm, const fz_rect *scissor) +fz_list_clip_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, fz_matrix ctm, fz_rect scissor) { fz_rect rect = fz_bound_path(ctx, path, NULL, ctm); - if (scissor) - rect = fz_intersect_rect(rect, *scissor); + rect = fz_intersect_rect(rect, scissor); fz_append_display_node( ctx, dev, @@ -725,11 +724,10 @@ fz_list_clip_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even } static void -fz_list_clip_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, const fz_stroke_state *stroke, fz_matrix ctm, const fz_rect *scissor) +fz_list_clip_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, const fz_stroke_state *stroke, fz_matrix ctm, fz_rect scissor) { fz_rect rect = fz_bound_path(ctx, path, stroke, ctm); - if (scissor) - rect = fz_intersect_rect(rect, *scissor); + rect = fz_intersect_rect(rect, scissor); fz_append_display_node( ctx, dev, @@ -807,14 +805,13 @@ fz_list_stroke_text(fz_context *ctx, fz_device *dev, const fz_text *text, const } static void -fz_list_clip_text(fz_context *ctx, fz_device *dev, const fz_text *text, fz_matrix ctm, const fz_rect *scissor) +fz_list_clip_text(fz_context *ctx, fz_device *dev, const fz_text *text, fz_matrix ctm, fz_rect scissor) { fz_text *cloned_text = fz_keep_text(ctx, text); fz_try(ctx) { fz_rect rect = fz_bound_text(ctx, text, NULL, ctm); - if (scissor) - rect = fz_intersect_rect(rect, *scissor); + rect = fz_intersect_rect(rect, scissor); fz_append_display_node( ctx, dev, @@ -838,14 +835,13 @@ fz_list_clip_text(fz_context *ctx, fz_device *dev, const fz_text *text, fz_matri } static void -fz_list_clip_stroke_text(fz_context *ctx, fz_device *dev, const fz_text *text, const fz_stroke_state *stroke, fz_matrix ctm, const fz_rect *scissor) +fz_list_clip_stroke_text(fz_context *ctx, fz_device *dev, const fz_text *text, const fz_stroke_state *stroke, fz_matrix ctm, fz_rect scissor) { fz_text *cloned_text = fz_keep_text(ctx, text); fz_try(ctx) { fz_rect rect = fz_bound_text(ctx, text, stroke, ctm); - if (scissor) - rect = fz_intersect_rect(rect, *scissor); + rect = fz_intersect_rect(rect, scissor); fz_append_display_node( ctx, dev, @@ -1006,14 +1002,13 @@ fz_list_fill_image_mask(fz_context *ctx, fz_device *dev, fz_image *image, fz_mat } static void -fz_list_clip_image_mask(fz_context *ctx, fz_device *dev, fz_image *image, fz_matrix ctm, const fz_rect *scissor) +fz_list_clip_image_mask(fz_context *ctx, fz_device *dev, fz_image *image, fz_matrix ctm, fz_rect scissor) { fz_image *image2 = fz_keep_image(ctx, image); fz_try(ctx) { fz_rect rect = fz_transform_rect(fz_unit_rect, ctm); - if (scissor) - rect = fz_intersect_rect(rect, *scissor); + rect = fz_intersect_rect(rect, scissor); fz_append_display_node( ctx, dev, @@ -1037,14 +1032,14 @@ fz_list_clip_image_mask(fz_context *ctx, fz_device *dev, fz_image *image, fz_mat } static void -fz_list_begin_mask(fz_context *ctx, fz_device *dev, const fz_rect *rect, int luminosity, fz_colorspace *colorspace, const float *color, const fz_color_params *color_params) +fz_list_begin_mask(fz_context *ctx, fz_device *dev, fz_rect rect, int luminosity, fz_colorspace *colorspace, const float *color, const fz_color_params *color_params) { fz_append_display_node( ctx, dev, FZ_CMD_BEGIN_MASK, (!!luminosity) | fz_pack_color_params(color_params), /* flags */ - rect, + &rect, NULL, /* path */ color, colorspace, @@ -1075,7 +1070,7 @@ fz_list_end_mask(fz_context *ctx, fz_device *dev) } static void -fz_list_begin_group(fz_context *ctx, fz_device *dev, const fz_rect *rect, fz_colorspace *colorspace, int isolated, int knockout, int blendmode, float alpha) +fz_list_begin_group(fz_context *ctx, fz_device *dev, fz_rect rect, fz_colorspace *colorspace, int isolated, int knockout, int blendmode, float alpha) { int flags; @@ -1094,7 +1089,7 @@ fz_list_begin_group(fz_context *ctx, fz_device *dev, const fz_rect *rect, fz_col dev, FZ_CMD_BEGIN_GROUP, flags, - rect, + &rect, NULL, /* path */ NULL, /* color */ NULL, /* colorspace */ @@ -1141,20 +1136,20 @@ struct fz_list_tile_data_s }; static int -fz_list_begin_tile(fz_context *ctx, fz_device *dev, const fz_rect *area, const fz_rect *view, float xstep, float ystep, fz_matrix ctm, int id) +fz_list_begin_tile(fz_context *ctx, fz_device *dev, fz_rect area, fz_rect view, float xstep, float ystep, fz_matrix ctm, int id) { fz_list_tile_data tile; tile.xstep = xstep; tile.ystep = ystep; - tile.view = *view; + tile.view = view; tile.id = id; fz_append_display_node( ctx, dev, FZ_CMD_BEGIN_TILE, 0, /* flags */ - area, + &area, NULL, /* path */ NULL, /* color */ NULL, /* colorspace */ @@ -1476,7 +1471,7 @@ int fz_display_list_is_empty(fz_context *ctx, const fz_display_list *list) } void -fz_run_display_list(fz_context *ctx, fz_display_list *list, fz_device *dev, fz_matrix top_ctm, const fz_rect *scissor, fz_cookie *cookie) +fz_run_display_list(fz_context *ctx, fz_display_list *list, fz_device *dev, fz_matrix top_ctm, fz_rect scissor, fz_cookie *cookie) { fz_display_node *node; fz_display_node *node_end; @@ -1502,9 +1497,6 @@ fz_run_display_list(fz_context *ctx, fz_display_list *list, fz_device *dev, fz_m fz_var(colorspace); - if (!scissor) - scissor = &fz_infinite_rect; - if (cookie) { cookie->progress_max = list->len; @@ -1669,7 +1661,7 @@ fz_run_display_list(fz_context *ctx, fz_display_list *list, fz_device *dev, fz_m } else { - empty = fz_is_empty_rect(fz_intersect_rect(trans_rect, *scissor)); + empty = fz_is_empty_rect(fz_intersect_rect(trans_rect, scissor)); } if (clipped || empty) @@ -1716,10 +1708,10 @@ visible: fz_stroke_path(ctx, dev, path, stroke, trans_ctm, colorspace, color, alpha, &color_params); break; case FZ_CMD_CLIP_PATH: - fz_clip_path(ctx, dev, path, n.flags, trans_ctm, &trans_rect); + fz_clip_path(ctx, dev, path, n.flags, trans_ctm, trans_rect); break; case FZ_CMD_CLIP_STROKE_PATH: - fz_clip_stroke_path(ctx, dev, path, stroke, trans_ctm, &trans_rect); + fz_clip_stroke_path(ctx, dev, path, stroke, trans_ctm, trans_rect); break; case FZ_CMD_FILL_TEXT: fz_unpack_color_params(&color_params, n.flags); @@ -1730,10 +1722,10 @@ visible: fz_stroke_text(ctx, dev, *(fz_text **)node, stroke, trans_ctm, colorspace, color, alpha, &color_params); break; case FZ_CMD_CLIP_TEXT: - fz_clip_text(ctx, dev, *(fz_text **)node, trans_ctm, &trans_rect); + fz_clip_text(ctx, dev, *(fz_text **)node, trans_ctm, trans_rect); break; case FZ_CMD_CLIP_STROKE_TEXT: - fz_clip_stroke_text(ctx, dev, *(fz_text **)node, stroke, trans_ctm, &trans_rect); + fz_clip_stroke_text(ctx, dev, *(fz_text **)node, stroke, trans_ctm, trans_rect); break; case FZ_CMD_IGNORE_TEXT: fz_ignore_text(ctx, dev, *(fz_text **)node, trans_ctm); @@ -1751,20 +1743,20 @@ visible: fz_fill_image_mask(ctx, dev, *(fz_image **)node, trans_ctm, colorspace, color, alpha, &color_params); break; case FZ_CMD_CLIP_IMAGE_MASK: - fz_clip_image_mask(ctx, dev, *(fz_image **)node, trans_ctm, &trans_rect); + fz_clip_image_mask(ctx, dev, *(fz_image **)node, trans_ctm, trans_rect); break; case FZ_CMD_POP_CLIP: fz_pop_clip(ctx, dev); break; case FZ_CMD_BEGIN_MASK: fz_unpack_color_params(&color_params, n.flags); - fz_begin_mask(ctx, dev, &trans_rect, n.flags, colorspace, color, &color_params); + fz_begin_mask(ctx, dev, trans_rect, n.flags, colorspace, color, &color_params); break; case FZ_CMD_END_MASK: fz_end_mask(ctx, dev); break; case FZ_CMD_BEGIN_GROUP: - fz_begin_group(ctx, dev, &trans_rect, *(fz_colorspace **)node, (n.flags & ISOLATED) != 0, (n.flags & KNOCKOUT) != 0, (n.flags>>2), alpha); + fz_begin_group(ctx, dev, trans_rect, *(fz_colorspace **)node, (n.flags & ISOLATED) != 0, (n.flags & KNOCKOUT) != 0, (n.flags>>2), alpha); break; case FZ_CMD_END_GROUP: fz_end_group(ctx, dev); @@ -1776,7 +1768,7 @@ visible: fz_rect tile_rect; tiled++; tile_rect = data->view; - cached = fz_begin_tile_id(ctx, dev, &rect, &tile_rect, data->xstep, data->ystep, trans_ctm, data->id); + cached = fz_begin_tile_id(ctx, dev, rect, tile_rect, data->xstep, data->ystep, trans_ctm, data->id); if (cached) tile_skip_depth = 1; break; |