summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-03-09 22:37:00 +0100
committerTor Andersson <tor.andersson@artifex.com>2016-03-14 17:08:29 +0100
commitd8125a13c05eef69a3fd3b6a9512dc573b23cc05 (patch)
tree91e5f76353b73abb5512b6deb7e4d1074ec02cc5
parent7350d67f358d4f04643f43003861290ab162eaec (diff)
downloadmupdf-d8125a13c05eef69a3fd3b6a9512dc573b23cc05.tar.xz
Remove begin_page and end_page device calls.
To be moved into a new document writer interface later.
-rw-r--r--include/mupdf/fitz/device.h5
-rw-r--r--include/mupdf/pdf/document.h2
-rw-r--r--include/mupdf/pdf/output-pdf.h2
-rw-r--r--platform/java/TraceDevice.java8
-rw-r--r--platform/java/com/artifex/mupdf/fitz/Device.java2
-rw-r--r--platform/java/com/artifex/mupdf/fitz/NativeDevice.java3
-rw-r--r--platform/java/mupdf_native.c71
-rw-r--r--platform/java/mupdf_native.h16
-rw-r--r--platform/x11/pdfapp.c2
-rw-r--r--source/fitz/device.c14
-rw-r--r--source/fitz/document.c6
-rw-r--r--source/fitz/list-device.c58
-rw-r--r--source/fitz/stext-device.c26
-rw-r--r--source/fitz/trace-device.c19
-rw-r--r--source/gprf/gprf-doc.c8
-rw-r--r--source/pdf/pdf-device.c30
-rw-r--r--source/tools/mudraw.c8
-rw-r--r--source/tools/murun.c54
18 files changed, 14 insertions, 320 deletions
diff --git a/include/mupdf/fitz/device.h b/include/mupdf/fitz/device.h
index 0e6b55f1..34faa06e 100644
--- a/include/mupdf/fitz/device.h
+++ b/include/mupdf/fitz/device.h
@@ -103,9 +103,6 @@ struct fz_device_s
void (*drop_imp)(fz_context *, fz_device *);
- void (*begin_page)(fz_context *, fz_device *, const fz_rect *area, const fz_matrix *ctm);
- void (*end_page)(fz_context *, fz_device *);
-
void (*fill_path)(fz_context *, fz_device *, const fz_path *, int even_odd, const fz_matrix *, fz_colorspace *, const float *color, float alpha);
void (*stroke_path)(fz_context *, fz_device *, const fz_path *, const fz_stroke_state *, const fz_matrix *, fz_colorspace *, const float *color, float alpha);
void (*clip_path)(fz_context *, fz_device *, const fz_path *, int even_odd, const fz_matrix *, const fz_rect *scissor);
@@ -144,8 +141,6 @@ struct fz_device_s
fz_device_container_stack *container;
};
-void fz_begin_page(fz_context *ctx, fz_device *dev, const fz_rect *area, const fz_matrix *ctm);
-void fz_end_page(fz_context *ctx, fz_device *dev);
void fz_fill_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, const fz_matrix *ctm, fz_colorspace *colorspace, const float *color, float alpha);
void fz_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, const fz_stroke_state *stroke, const fz_matrix *ctm, fz_colorspace *colorspace, const float *color, float alpha);
void fz_clip_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, const fz_matrix *ctm, const fz_rect *scissor);
diff --git a/include/mupdf/pdf/document.h b/include/mupdf/pdf/document.h
index 1f6088e7..f8ef0cd6 100644
--- a/include/mupdf/pdf/document.h
+++ b/include/mupdf/pdf/document.h
@@ -274,7 +274,7 @@ void pdf_insert_page(fz_context *ctx, pdf_document *doc, int at, pdf_obj *page);
void pdf_delete_page(fz_context *ctx, pdf_document *doc, int number);
void pdf_delete_page_range(fz_context *ctx, pdf_document *doc, int start, int end);
-fz_device *pdf_page_write(fz_context *ctx, pdf_document *doc, fz_rect *pmediabox, fz_buffer **pcontents, pdf_obj **presources);
+fz_device *pdf_page_write(fz_context *ctx, pdf_document *doc, const fz_rect *mediabox, fz_buffer **pcontents, pdf_obj **presources);
void pdf_finish_edit(fz_context *ctx, pdf_document *doc);
diff --git a/include/mupdf/pdf/output-pdf.h b/include/mupdf/pdf/output-pdf.h
index d7d54049..48789a1a 100644
--- a/include/mupdf/pdf/output-pdf.h
+++ b/include/mupdf/pdf/output-pdf.h
@@ -11,7 +11,7 @@
is not an array, and that is it not shared with other objects/pages.
*/
fz_device *pdf_new_pdf_device(fz_context *ctx, pdf_document *doc,
- fz_rect *mediabox, fz_buffer *buf, pdf_obj *resources);
+ const fz_rect *mediabox, fz_buffer *buf, pdf_obj *resources);
void pdf_localise_page_resources(fz_context *ctx, pdf_document *doc);
diff --git a/platform/java/TraceDevice.java b/platform/java/TraceDevice.java
index 6eb28cbf..36ed6cd3 100644
--- a/platform/java/TraceDevice.java
+++ b/platform/java/TraceDevice.java
@@ -42,14 +42,6 @@ public class TraceDevice extends Device implements PathWalker, TextWalker
text.walk(this);
}
- public void beginPage(Rect r, Matrix m) {
- System.out.println("beginPage " + r + " " + m);
- }
-
- public void endPage() {
- System.out.println("endPage");
- }
-
public void fillPath(Path path, boolean evenOdd, Matrix ctm, ColorSpace cs, float color[], float alpha) {
System.out.println("fillPath " + evenOdd + " " + ctm + " " + traceColor(cs, color, alpha));
tracePath(path);
diff --git a/platform/java/com/artifex/mupdf/fitz/Device.java b/platform/java/com/artifex/mupdf/fitz/Device.java
index 45dea62d..b4e87481 100644
--- a/platform/java/com/artifex/mupdf/fitz/Device.java
+++ b/platform/java/com/artifex/mupdf/fitz/Device.java
@@ -38,8 +38,6 @@ public class Device
* };
*/
- public void beginPage(Rect area, Matrix ctm) {}
- public void endPage() {}
public void fillPath(Path path, boolean evenOdd, Matrix ctm, ColorSpace cs, float color[], float alpha) {}
public void strokePath(Path path, StrokeState stroke, Matrix ctm, ColorSpace cs, float color[], float alpha) {}
public void clipPath(Path path, boolean evenOdd, Matrix ctm) {}
diff --git a/platform/java/com/artifex/mupdf/fitz/NativeDevice.java b/platform/java/com/artifex/mupdf/fitz/NativeDevice.java
index e9e351a9..968c5f09 100644
--- a/platform/java/com/artifex/mupdf/fitz/NativeDevice.java
+++ b/platform/java/com/artifex/mupdf/fitz/NativeDevice.java
@@ -17,9 +17,6 @@ public class NativeDevice extends Device
super(p);
}
- public native final void beginPage(Rect area, Matrix ctm);
- public native final void endPage();
-
public native final void fillPath(Path path, boolean evenOdd, Matrix ctm, ColorSpace cs, float color[], float alpha);
public native final void strokePath(Path path, StrokeState stroke, Matrix ctm, ColorSpace cs, float color[], float alpha);
public native final void clipPath(Path path, boolean evenOdd, Matrix ctm);
diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c
index bf10ff9d..97052771 100644
--- a/platform/java/mupdf_native.c
+++ b/platform/java/mupdf_native.c
@@ -107,7 +107,6 @@ static jmethodID mid_ColorSpace_fromPointer;
static jmethodID mid_ColorSpace_init;
static jmethodID mid_Device_beginGroup;
static jmethodID mid_Device_beginMask;
-static jmethodID mid_Device_beginPage;
static jmethodID mid_Device_beginTile;
static jmethodID mid_Device_clipImageMask;
static jmethodID mid_Device_clipPath;
@@ -116,7 +115,6 @@ static jmethodID mid_Device_clipStrokeText;
static jmethodID mid_Device_clipText;
static jmethodID mid_Device_endGroup;
static jmethodID mid_Device_endMask;
-static jmethodID mid_Device_endPage;
static jmethodID mid_Device_endTile;
static jmethodID mid_Device_fillImage;
static jmethodID mid_Device_fillImageMask;
@@ -296,8 +294,6 @@ static int find_fids(JNIEnv *env)
cls_Device = get_class(&err, env, PKG"Device");
fid_Device_pointer = get_field(&err, env, "pointer", "J");
- mid_Device_beginPage = get_method(&err, env, "beginPage", "(L"PKG"Rect;L"PKG"Matrix;)V");
- mid_Device_endPage = get_method(&err, env, "endPage", "()V");
mid_Device_fillPath = get_method(&err, env, "fillPath", "(L"PKG"Path;ZL"PKG"Matrix;L"PKG"ColorSpace;[FF)V");
mid_Device_strokePath = get_method(&err, env, "strokePath", "(L"PKG"Path;L"PKG"StrokeState;L"PKG"Matrix;L"PKG"ColorSpace;[FF)V");
mid_Device_clipPath = get_method(&err, env, "clipPath", "(L"PKG"Path;ZL"PKG"Matrix;)V");
@@ -1018,30 +1014,6 @@ typedef struct
fz_java_device;
static void
-fz_java_device_begin_page(fz_context *ctx, fz_device *dev, const fz_rect *rect, const fz_matrix *ctm)
-{
- fz_java_device *jdev = (fz_java_device *)dev;
- JNIEnv *env = jdev->env;
- jobject jrect = to_Rect(ctx, env, rect);
- jobject jctm = to_Matrix(ctx, env, ctm);
-
- (*env)->CallVoidMethod(env, jdev->self, mid_Device_beginPage, jrect, jctm);
- if ((*env)->ExceptionCheck(env))
- fz_throw_java(ctx, env);
-}
-
-static void
-fz_java_device_end_page(fz_context *ctx, fz_device *dev)
-{
- fz_java_device *jdev = (fz_java_device *)dev;
- JNIEnv *env = jdev->env;
-
- (*env)->CallVoidMethod(env, jdev->self, mid_Device_endPage);
- if ((*env)->ExceptionCheck(env))
- fz_throw_java(ctx, env);
-}
-
-static void
fz_java_device_fill_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, const fz_matrix *ctm, fz_colorspace *cs, const float *color, float alpha)
{
fz_java_device *jdev = (fz_java_device *)dev;
@@ -1333,9 +1305,6 @@ static fz_device *fz_new_java_device(fz_context *ctx, JNIEnv *env, jobject self)
dev->super.drop_imp = fz_java_device_drop_imp;
- dev->super.begin_page = fz_java_device_begin_page;
- dev->super.end_page = fz_java_device_end_page;
-
dev->super.fill_path = fz_java_device_fill_path;
dev->super.stroke_path = fz_java_device_stroke_path;
dev->super.clip_path = fz_java_device_clip_path;
@@ -1477,46 +1446,6 @@ FUN(NativeDevice_finalize)(JNIEnv *env, jobject self)
}
JNIEXPORT void JNICALL
-FUN(NativeDevice_beginPage)(JNIEnv *env, jobject self, jobject jrect, jobject jctm)
-{
- fz_context *ctx = get_context(env);
- fz_device *dev = from_Device(env, self, ctx);
- fz_rect rect = from_Rect(env, jrect);
- fz_matrix ctm = from_Matrix(env, jctm);
- NativeDeviceInfo *info;
-
- if (ctx == NULL || dev == NULL)
- return;
-
- info = lockNativeDevice(env, self);
- fz_try(ctx)
- fz_begin_page(ctx, dev, &rect, &ctm);
- fz_always(ctx)
- unlockNativeDevice(env, info);
- fz_catch(ctx)
- jni_rethrow(env, ctx);
-}
-
-JNIEXPORT void JNICALL
-FUN(NativeDevice_endPage)(JNIEnv *env, jobject self)
-{
- fz_context *ctx = get_context(env);
- fz_device *dev = from_Device(env, self, ctx);
- NativeDeviceInfo *info;
-
- if (ctx == NULL || dev == NULL)
- return;
-
- info = lockNativeDevice(env, self);
- fz_try(ctx)
- fz_end_page(ctx, dev);
- fz_always(ctx)
- unlockNativeDevice(env, info);
- fz_catch(ctx)
- jni_rethrow(env, ctx);
-}
-
-JNIEXPORT void JNICALL
FUN(NativeDevice_fillPath)(JNIEnv *env, jobject self, jobject jpath, jboolean even_odd, jobject jctm, jobject jcs, jfloatArray jcolor, float alpha)
{
fz_context *ctx = get_context(env);
diff --git a/platform/java/mupdf_native.h b/platform/java/mupdf_native.h
index 6a9c3a0c..95f17084 100644
--- a/platform/java/mupdf_native.h
+++ b/platform/java/mupdf_native.h
@@ -840,22 +840,6 @@ JNIEXPORT void JNICALL Java_com_artifex_mupdf_fitz_NativeDevice_finalize
/*
* Class: com_artifex_mupdf_fitz_NativeDevice
- * Method: beginPage
- * Signature: (Lcom/artifex/mupdf/fitz/Rect;Lcom/artifex/mupdf/fitz/Matrix;)V
- */
-JNIEXPORT void JNICALL Java_com_artifex_mupdf_fitz_NativeDevice_beginPage
- (JNIEnv *, jobject, jobject, jobject);
-
-/*
- * Class: com_artifex_mupdf_fitz_NativeDevice
- * Method: endPage
- * Signature: ()V
- */
-JNIEXPORT void JNICALL Java_com_artifex_mupdf_fitz_NativeDevice_endPage
- (JNIEnv *, jobject);
-
-/*
- * Class: com_artifex_mupdf_fitz_NativeDevice
* Method: fillPath
* Signature: (Lcom/artifex/mupdf/fitz/Path;ZLcom/artifex/mupdf/fitz/Matrix;Lcom/artifex/mupdf/fitz/ColorSpace;[FF)V
*/
diff --git a/platform/x11/pdfapp.c b/platform/x11/pdfapp.c
index d764a152..37ef2181 100644
--- a/platform/x11/pdfapp.c
+++ b/platform/x11/pdfapp.c
@@ -771,12 +771,10 @@ static void pdfapp_recreate_annotationslist(pdfapp_t *app)
static void pdfapp_runpage(pdfapp_t *app, fz_device *dev, const fz_matrix *ctm, const fz_rect *rect, fz_cookie *cookie)
{
- fz_begin_page(app->ctx, dev, rect, ctm);
if (app->page_list)
fz_run_display_list(app->ctx, app->page_list, dev, ctm, rect, cookie);
if (app->annotations_list)
fz_run_display_list(app->ctx, app->annotations_list, dev, ctm, rect, cookie);
- fz_end_page(app->ctx, dev);
}
#define MAX_TITLE 256
diff --git a/source/fitz/device.c b/source/fitz/device.c
index fdee2042..5a293bce 100644
--- a/source/fitz/device.c
+++ b/source/fitz/device.c
@@ -29,20 +29,6 @@ fz_disable_device_hints(fz_context *ctx, fz_device *dev, int hints)
dev->hints &= ~hints;
}
-void
-fz_begin_page(fz_context *ctx, fz_device *dev, const fz_rect *rect, const fz_matrix *ctm)
-{
- if (dev->begin_page)
- dev->begin_page(ctx, dev, rect, ctm);
-}
-
-void
-fz_end_page(fz_context *ctx, fz_device *dev)
-{
- if (dev->end_page)
- dev->end_page(ctx, dev);
-}
-
static void
push_clip_stack(fz_context *ctx, fz_device *dev, const fz_rect *rect, int flags)
{
diff --git a/source/fitz/document.c b/source/fitz/document.c
index 4cc5dbba..1719aaf6 100644
--- a/source/fitz/document.c
+++ b/source/fitz/document.c
@@ -330,10 +330,6 @@ void
fz_run_page(fz_context *ctx, fz_page *page, fz_device *dev, const fz_matrix *transform, fz_cookie *cookie)
{
fz_annot *annot;
- fz_rect mediabox;
-
- fz_bound_page(ctx, page, &mediabox);
- fz_begin_page(ctx, dev, &mediabox, transform);
fz_run_page_contents(ctx, page, dev, transform, cookie);
@@ -357,8 +353,6 @@ fz_run_page(fz_context *ctx, fz_page *page, fz_device *dev, const fz_matrix *tra
fz_run_annot(ctx, annot, dev, transform, cookie);
}
-
- fz_end_page(ctx, dev);
}
void *
diff --git a/source/fitz/list-device.c b/source/fitz/list-device.c
index 1d416073..156e50f6 100644
--- a/source/fitz/list-device.c
+++ b/source/fitz/list-device.c
@@ -7,8 +7,6 @@ typedef struct fz_list_device_s fz_list_device;
typedef enum fz_display_command_e
{
- FZ_CMD_BEGIN_PAGE,
- FZ_CMD_END_PAGE,
FZ_CMD_FILL_PATH,
FZ_CMD_STROKE_PATH,
FZ_CMD_CLIP_PATH,
@@ -632,52 +630,6 @@ fz_append_display_node(
}
static void
-fz_list_begin_page(fz_context *ctx, fz_device *dev, const fz_rect *mediabox, const fz_matrix *ctm)
-{
- fz_list_device *writer = (fz_list_device *)dev;
- fz_display_list *list = writer->list;
- fz_rect rect = *mediabox;
-
- fz_transform_rect(&rect, ctm);
-
- fz_union_rect(&list->mediabox, &rect);
-
- fz_append_display_node(
- ctx,
- dev,
- FZ_CMD_BEGIN_PAGE,
- 0, /* flags */
- &rect,
- NULL, /* path */
- NULL, /* color */
- NULL, /* colorspace */
- NULL, /* alpha */
- ctm,
- NULL, /* stroke_state */
- NULL, /* private_data */
- 0); /* private_data_len */
-}
-
-static void
-fz_list_end_page(fz_context *ctx, fz_device *dev)
-{
- fz_append_display_node(
- ctx,
- dev,
- FZ_CMD_END_PAGE,
- 0, /* flags */
- NULL, /* rect */
- NULL, /* path */
- NULL, /* color */
- NULL, /* colorspace */
- NULL, /* alpha */
- NULL, /* ctm */
- NULL, /* stroke_state */
- NULL, /* private_data */
- 0); /* private_data_len */
-}
-
-static void
fz_list_fill_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, const fz_matrix *ctm,
fz_colorspace *colorspace, const float *color, float alpha)
{
@@ -1263,9 +1215,6 @@ fz_new_list_device(fz_context *ctx, fz_display_list *list)
dev = fz_new_device(ctx, sizeof(fz_list_device));
- dev->super.begin_page = fz_list_begin_page;
- dev->super.end_page = fz_list_end_page;
-
dev->super.fill_path = fz_list_fill_path;
dev->super.stroke_path = fz_list_stroke_path;
dev->super.clip_path = fz_list_clip_path;
@@ -1615,7 +1564,6 @@ fz_run_display_list(fz_context *ctx, fz_display_list *list, fz_device *dev, cons
if (tiled ||
n.cmd == FZ_CMD_BEGIN_TILE || n.cmd == FZ_CMD_END_TILE ||
- n.cmd == FZ_CMD_BEGIN_PAGE || n.cmd == FZ_CMD_END_PAGE ||
n.cmd == FZ_CMD_RENDER_FLAGS)
{
empty = 0;
@@ -1662,12 +1610,6 @@ visible:
{
switch (n.cmd)
{
- case FZ_CMD_BEGIN_PAGE:
- fz_begin_page(ctx, dev, &trans_rect, &trans_ctm);
- break;
- case FZ_CMD_END_PAGE:
- fz_end_page(ctx, dev);
- break;
case FZ_CMD_FILL_PATH:
fz_fill_path(ctx, dev, path, n.flags, &trans_ctm, colorspace, color, alpha);
break;
diff --git a/source/fitz/stext-device.c b/source/fitz/stext-device.c
index 83bde371..c5b4c897 100644
--- a/source/fitz/stext-device.c
+++ b/source/fitz/stext-device.c
@@ -1021,22 +1021,7 @@ fz_bidi_reorder_stext_page(fz_context *ctx, fz_stext_page *page)
}
static void
-fz_stext_begin_page(fz_context *ctx, fz_device *dev, const fz_rect *mediabox, const fz_matrix *ctm)
-{
- fz_stext_device *tdev = (fz_stext_device*)dev;
-
- if (tdev->page->len)
- {
- tdev->page->next = fz_new_stext_page(ctx);
- tdev->page = tdev->page->next;
- }
-
- tdev->page->mediabox = *mediabox;
- fz_transform_rect(&tdev->page->mediabox, ctm);
-}
-
-static void
-fz_stext_end_page(fz_context *ctx, fz_device *dev)
+fz_stext_drop_imp(fz_context *ctx, fz_device *dev)
{
fz_stext_device *tdev = (fz_stext_device*)dev;
@@ -1053,13 +1038,6 @@ fz_stext_end_page(fz_context *ctx, fz_device *dev)
fz_bidi_reorder_stext_page(ctx, tdev->page);
}
-static void
-fz_stext_drop_imp(fz_context *ctx, fz_device *dev)
-{
- fz_stext_device *tdev = (fz_stext_device*)dev;
- free_span_soup(ctx, tdev->spans);
-}
-
fz_device *
fz_new_stext_device(fz_context *ctx, fz_stext_sheet *sheet, fz_stext_page *page)
{
@@ -1068,8 +1046,6 @@ fz_new_stext_device(fz_context *ctx, fz_stext_sheet *sheet, fz_stext_page *page)
dev->super.hints = FZ_IGNORE_IMAGE | FZ_IGNORE_SHADE;
dev->super.drop_imp = fz_stext_drop_imp;
- dev->super.begin_page = fz_stext_begin_page;
- dev->super.end_page = fz_stext_end_page;
dev->super.fill_text = fz_stext_fill_text;
dev->super.stroke_text = fz_stext_stroke_text;
dev->super.clip_text = fz_stext_clip_text;
diff --git a/source/fitz/trace-device.c b/source/fitz/trace-device.c
index fd9adcb5..86a1e60e 100644
--- a/source/fitz/trace-device.c
+++ b/source/fitz/trace-device.c
@@ -100,22 +100,6 @@ fz_trace_path(fz_context *ctx, fz_output *out, const fz_path *path)
}
static void
-fz_trace_begin_page(fz_context *ctx, fz_device *dev, const fz_rect *rect, const fz_matrix *ctm)
-{
- fz_output *out = ((fz_trace_device*)dev)->out;
- fz_printf(ctx, out, "<page mediabox=\"%g %g %g %g\"", rect->x0, rect->y0, rect->x1, rect->y1);
- fz_trace_matrix(ctx, out, ctm);
- fz_printf(ctx, out, ">\n");
-}
-
-static void
-fz_trace_end_page(fz_context *ctx, fz_device *dev)
-{
- fz_output *out = ((fz_trace_device*)dev)->out;
- fz_printf(ctx, out, "</page>\n");
-}
-
-static void
fz_trace_fill_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, const fz_matrix *ctm,
fz_colorspace *colorspace, const float *color, float alpha)
{
@@ -352,9 +336,6 @@ fz_device *fz_new_trace_device(fz_context *ctx, fz_output *out)
{
fz_trace_device *dev = fz_new_device(ctx, sizeof *dev);
- dev->super.begin_page = fz_trace_begin_page;
- dev->super.end_page = fz_trace_end_page;
-
dev->super.fill_path = fz_trace_fill_path;
dev->super.stroke_path = fz_trace_stroke_path;
dev->super.clip_path = fz_trace_clip_path;
diff --git a/source/gprf/gprf-doc.c b/source/gprf/gprf-doc.c
index b859856a..d09248b1 100644
--- a/source/gprf/gprf-doc.c
+++ b/source/gprf/gprf-doc.c
@@ -719,7 +719,6 @@ gprf_run_page(fz_context *ctx, fz_page *page_, fz_device *dev, const fz_matrix *
{
gprf_page *page = (gprf_page*)page_;
gprf_document *doc = page->doc;
- fz_rect page_rect;
int i, y, x;
/* If we have no page, generate it. */
@@ -734,13 +733,7 @@ gprf_run_page(fz_context *ctx, fz_page *page_, fz_device *dev, const fz_matrix *
}
/* Send the images to the page */
- page_rect.x0 = 0;
- page_rect.y0 = 0;
- page_rect.x1 = 72.0 * page->width / doc->res;
- page_rect.y1 = 72.0 * page->height / doc->res;
fz_render_flags(ctx, dev, FZ_DEVFLAG_GRIDFIT_AS_TILED, 0);
- fz_begin_page(ctx, dev, &page_rect, ctm);
-
i = 0;
for (y = 0; y < page->tile_height; y++)
{
@@ -760,7 +753,6 @@ gprf_run_page(fz_context *ctx, fz_page *page_, fz_device *dev, const fz_matrix *
fz_fill_image(ctx, dev, page->tiles[i++], &local, 1.0);
}
}
- fz_end_page(ctx, dev);
fz_render_flags(ctx, dev, 0, FZ_DEVFLAG_GRIDFIT_AS_TILED);
}
diff --git a/source/pdf/pdf-device.c b/source/pdf/pdf-device.c
index bd11ecc9..5d3654a0 100644
--- a/source/pdf/pdf-device.c
+++ b/source/pdf/pdf-device.c
@@ -70,7 +70,6 @@ struct pdf_device_s
fz_device super;
pdf_document *doc;
- fz_rect *mediabox;
pdf_obj *resources;
fz_buffer *buffer;
@@ -1038,23 +1037,6 @@ pdf_dev_end_tile(fz_context *ctx, fz_device *dev)
}
static void
-pdf_dev_begin_page(fz_context *ctx, fz_device *dev, const fz_rect *mediabox, const fz_matrix *ctm)
-{
- pdf_device *pdev = (pdf_device*)dev;
- gstate *gs = CURRENT_GSTATE(pdev);
- pdev->mediabox->x0 = 0;
- pdev->mediabox->y0 = 0;
- pdev->mediabox->x1 = mediabox->x1 - mediabox->x0;
- pdev->mediabox->y1 = mediabox->y1 - mediabox->y0;
- fz_buffer_printf(ctx, gs->buf, "1 0 0 -1 %f %f cm\n", 0 - mediabox->x0, mediabox->y1);
-}
-
-static void
-pdf_dev_end_page(fz_context *ctx, fz_device *dev)
-{
-}
-
-static void
pdf_dev_drop_imp(fz_context *ctx, fz_device *dev)
{
pdf_device *pdev = (pdf_device*)dev;
@@ -1078,15 +1060,12 @@ pdf_dev_drop_imp(fz_context *ctx, fz_device *dev)
fz_free(ctx, pdev->gstates);
}
-fz_device *pdf_new_pdf_device(fz_context *ctx, pdf_document *doc, fz_rect *mediabox, fz_buffer *buf, pdf_obj *resources)
+fz_device *pdf_new_pdf_device(fz_context *ctx, pdf_document *doc, const fz_rect *mediabox, fz_buffer *buf, pdf_obj *resources)
{
pdf_device *dev = fz_new_device(ctx, sizeof *dev);
dev->super.drop_imp = pdf_dev_drop_imp;
- dev->super.begin_page = pdf_dev_begin_page;
- dev->super.end_page = pdf_dev_end_page;
-
dev->super.fill_path = pdf_dev_fill_path;
dev->super.stroke_path = pdf_dev_stroke_path;
dev->super.clip_path = pdf_dev_clip_path;
@@ -1119,7 +1098,6 @@ fz_device *pdf_new_pdf_device(fz_context *ctx, pdf_document *doc, fz_rect *media
if (!buf)
buf = fz_new_buffer(ctx, 256);
dev->doc = doc;
- dev->mediabox = mediabox;
dev->resources = pdf_keep_obj(ctx, resources);
dev->gstates = fz_malloc_struct(ctx, gstate);
dev->gstates[0].buf = buf;
@@ -1134,6 +1112,8 @@ fz_device *pdf_new_pdf_device(fz_context *ctx, pdf_document *doc, fz_rect *media
dev->gstates[0].horizontal_scaling = 100;
dev->num_gstates = 1;
dev->max_gstates = 1;
+
+ fz_buffer_printf(ctx, buf, "1 0 0 -1 %f %f cm\n", 0 - mediabox->x0, mediabox->y1);
}
fz_catch(ctx)
{
@@ -1147,9 +1127,9 @@ fz_device *pdf_new_pdf_device(fz_context *ctx, pdf_document *doc, fz_rect *media
}
fz_device *pdf_page_write(fz_context *ctx, pdf_document *doc,
- fz_rect *pmediabox, fz_buffer **pcontents, pdf_obj **presources)
+ const fz_rect *mediabox, fz_buffer **pcontents, pdf_obj **presources)
{
*presources = pdf_new_dict(ctx, doc, 0);
*pcontents = fz_new_buffer(ctx, 0);
- return pdf_new_pdf_device(ctx, doc, pmediabox, *pcontents, *presources);
+ return pdf_new_pdf_device(ctx, doc, mediabox, *pcontents, *presources);
}
diff --git a/source/tools/mudraw.c b/source/tools/mudraw.c
index d96b0a55..e00a6d23 100644
--- a/source/tools/mudraw.c
+++ b/source/tools/mudraw.c
@@ -247,6 +247,7 @@ static void drawpage(fz_context *ctx, fz_document *doc, int pagenum)
fz_device *dev = NULL;
int start;
fz_cookie cookie = { 0 };
+ fz_rect mediabox;
fz_var(list);
fz_var(dev);
@@ -262,6 +263,8 @@ static void drawpage(fz_context *ctx, fz_document *doc, int pagenum)
if (showmd5 || showtime || showfeatures)
fprintf(stderr, "page %s %d", filename, pagenum);
+ fz_bound_page(ctx, page, &mediabox);
+
if (uselist)
{
fz_try(ctx)
@@ -310,11 +313,14 @@ static void drawpage(fz_context *ctx, fz_document *doc, int pagenum)
{
fz_try(ctx)
{
+ fz_printf(ctx, out, "<page mediabox=\"%g %g %g %g\">\n",
+ mediabox.x0, mediabox.y0, mediabox.x1, mediabox.y1);
dev = fz_new_trace_device(ctx, out);
if (list)
fz_run_display_list(ctx, list, dev, &fz_identity, &fz_infinite_rect, &cookie);
else
fz_run_page(ctx, page, dev, &fz_identity, &cookie);
+ fz_printf(ctx, out, "</page>\n");
}
fz_always(ctx)
{
@@ -380,7 +386,6 @@ static void drawpage(fz_context *ctx, fz_document *doc, int pagenum)
{
fz_buffer *contents;
pdf_obj *resources;
- fz_rect mediabox;
dev = pdf_page_write(ctx, pdfout, &mediabox, &contents, &resources);
fz_try(ctx)
@@ -392,7 +397,6 @@ static void drawpage(fz_context *ctx, fz_document *doc, int pagenum)
else
fz_run_page(ctx, page, dev, &fz_identity, &cookie);
- fz_bound_page(ctx, page, &mediabox);
page_obj = pdf_add_page(ctx, pdfout, &mediabox, rotation, contents, resources);
pdf_insert_page(ctx, pdfout, -1, page_obj);
pdf_drop_obj(ctx, page_obj);
diff --git a/source/tools/murun.c b/source/tools/murun.c
index e0207332..5275bfe2 100644
--- a/source/tools/murun.c
+++ b/source/tools/murun.c
@@ -757,32 +757,6 @@ typedef struct js_device_s
} js_device;
static void
-js_dev_begin_page(fz_context *ctx, fz_device *dev, const fz_rect *rect, const fz_matrix *ctm)
-{
- js_State *J = ((js_device*)dev)->J;
- if (js_hasproperty(J, -1, "beginPage")) {
- js_copy(J, -2); /* copy the 'this' object */
- ffi_pushrect(J, *rect);
- ffi_pushmatrix(J, *ctm);
- if (js_pcall(J, 2))
- fz_warn(ctx, "%s", js_tostring(J, -1));
- js_pop(J, 1);
- }
-}
-
-static void
-js_dev_end_page(fz_context *ctx, fz_device *dev)
-{
- js_State *J = ((js_device*)dev)->J;
- if (js_hasproperty(J, -1, "endPage")) {
- js_copy(J, -2); /* copy the 'this' object */
- if (js_pcall(J, 0))
- fz_warn(ctx, "%s", js_tostring(J, -1));
- js_pop(J, 1);
- }
-}
-
-static void
js_dev_fill_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, const fz_matrix *ctm,
fz_colorspace *colorspace, const float *color, float alpha)
{
@@ -1101,9 +1075,6 @@ static fz_device *new_js_device(fz_context *ctx, js_State *J)
{
js_device *dev = fz_new_device(ctx, sizeof *dev);
- dev->super.begin_page = js_dev_begin_page;
- dev->super.end_page = js_dev_end_page;
-
dev->super.fill_path = js_dev_fill_path;
dev->super.stroke_path = js_dev_stroke_path;
dev->super.clip_path = js_dev_clip_path;
@@ -1136,28 +1107,6 @@ static fz_device *new_js_device(fz_context *ctx, js_State *J)
/* device calling into c from js */
-static void ffi_Device_beginPage(js_State *J)
-{
- fz_context *ctx = js_getcontext(J);
- fz_device *dev = js_touserdata(J, 0, "fz_device");
- fz_rect rect = ffi_torect(J, 1);
- fz_matrix ctm = ffi_tomatrix(J, 2);
- fz_try(ctx)
- fz_begin_page(ctx, dev, &rect, &ctm);
- fz_catch(ctx)
- rethrow(J);
-}
-
-static void ffi_Device_endPage(js_State *J)
-{
- fz_context *ctx = js_getcontext(J);
- fz_device *dev = js_touserdata(J, 0, "fz_device");
- fz_try(ctx)
- fz_end_page(ctx, dev);
- fz_catch(ctx)
- rethrow(J);
-}
-
static void ffi_Device_fillPath(js_State *J)
{
fz_context *ctx = js_getcontext(J);
@@ -2947,9 +2896,6 @@ int murun_main(int argc, char **argv)
js_newobject(J);
{
- jsB_propfun(J, "Device.beginPage", ffi_Device_beginPage, 2);
- jsB_propfun(J, "Device.endPage", ffi_Device_endPage, 0);
-
jsB_propfun(J, "Device.fillPath", ffi_Device_fillPath, 6);
jsB_propfun(J, "Device.strokePath", ffi_Device_strokePath, 6);
jsB_propfun(J, "Device.clipPath", ffi_Device_clipPath, 3);