summaryrefslogtreecommitdiff
path: root/source/fitz/list-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/fitz/list-device.c')
-rw-r--r--source/fitz/list-device.c62
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;