From dba81b84129c4ef2870274c771bef5c05a7b3343 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Mon, 22 Feb 2016 22:31:00 +0100 Subject: jni: Fix scissor rect arguments to clipping functions. --- platform/java/com/artifex/mupdf/fitz/Device.java | 12 +++--- .../java/com/artifex/mupdf/fitz/NativeDevice.java | 8 ++-- platform/java/mupdf_native.c | 44 ++++++++++------------ platform/java/mupdf_native.h | 12 +++--- 4 files changed, 35 insertions(+), 41 deletions(-) (limited to 'platform/java') diff --git a/platform/java/com/artifex/mupdf/fitz/Device.java b/platform/java/com/artifex/mupdf/fitz/Device.java index c8bf23d4..45dea62d 100644 --- a/platform/java/com/artifex/mupdf/fitz/Device.java +++ b/platform/java/com/artifex/mupdf/fitz/Device.java @@ -38,12 +38,12 @@ public class Device * }; */ - public void beginPage(Rect rect, Matrix ctm) {} + 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, Rect rect, boolean evenOdd, Matrix ctm) {} - public void clipStrokePath(Path path, Rect rect, StrokeState stroke, Matrix ctm) {} + public void clipPath(Path path, boolean evenOdd, Matrix ctm) {} + public void clipStrokePath(Path path, StrokeState stroke, Matrix ctm) {} public void fillText(Text text, Matrix ctm, ColorSpace cs, float color[], float alpha) {} public void strokeText(Text text, StrokeState stroke, Matrix ctm, ColorSpace cs, float color[], float alpha) {} public void clipText(Text text, Matrix ctm) {} @@ -52,11 +52,11 @@ public class Device public void fillShade(Shade shade, Matrix ctm, float alpha) {} public void fillImage(Image img, Matrix ctm, float alpha) {} public void fillImageMask(Image img, Matrix ctm, ColorSpace cs, float color[], float alpha) {} - public void clipImageMask(Image img, Rect rect, Matrix ctm) {} + public void clipImageMask(Image img, Matrix ctm) {} public void popClip() {} - public void beginMask(Rect rect, boolean luminosity, ColorSpace cs, float bc[]) {} + public void beginMask(Rect area, boolean luminosity, ColorSpace cs, float bc[]) {} public void endMask() {} - public void beginGroup(Rect rect, boolean isolated, boolean knockout, int blendmode, float alpha) {} + public void beginGroup(Rect area, boolean isolated, boolean knockout, int blendmode, float alpha) {} public void endGroup() {} public int beginTile(Rect area, Rect view, float xstep, float ystep, Matrix ctm, int id) { return 0; } public void endTile() {} diff --git a/platform/java/com/artifex/mupdf/fitz/NativeDevice.java b/platform/java/com/artifex/mupdf/fitz/NativeDevice.java index 6786688f..e9e351a9 100644 --- a/platform/java/com/artifex/mupdf/fitz/NativeDevice.java +++ b/platform/java/com/artifex/mupdf/fitz/NativeDevice.java @@ -17,13 +17,13 @@ public class NativeDevice extends Device super(p); } - public native final void beginPage(Rect rect, Matrix ctm); + 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, Rect rect, boolean evenOdd, Matrix ctm); - public native final void clipStrokePath(Path path, Rect rect, StrokeState stroke, Matrix ctm); + public native final void clipPath(Path path, boolean evenOdd, Matrix ctm); + public native final void clipStrokePath(Path path, StrokeState stroke, Matrix ctm); public native final void fillText(Text text, Matrix ctm, ColorSpace cs, float color[], float alpha); public native final void strokeText(Text text, StrokeState stroke, Matrix ctm, ColorSpace cs, float color[], float alpha); @@ -34,7 +34,7 @@ public class NativeDevice extends Device public native final void fillShade(Shade shade, Matrix ctm, float alpha); public native final void fillImage(Image img, Matrix ctm, float alpha); public native final void fillImageMask(Image img, Matrix ctm, ColorSpace cs, float color[], float alpha); - public native final void clipImageMask(Image img, Rect rect, Matrix ctm); + public native final void clipImageMask(Image img, Matrix ctm); public native final void popClip(); diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c index 653735aa..b90868a7 100644 --- a/platform/java/mupdf_native.c +++ b/platform/java/mupdf_native.c @@ -300,8 +300,8 @@ static int find_fids(JNIEnv *env) 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;L"PKG"Rect;ZL"PKG"Matrix;)V"); - mid_Device_clipStrokePath = get_method(&err, env, "clipStrokePath", "(L"PKG"Path;L"PKG"Rect;L"PKG"StrokeState;L"PKG"Matrix;)V"); + mid_Device_clipPath = get_method(&err, env, "clipPath", "(L"PKG"Path;ZL"PKG"Matrix;)V"); + mid_Device_clipStrokePath = get_method(&err, env, "clipStrokePath", "(L"PKG"Path;L"PKG"StrokeState;L"PKG"Matrix;)V"); mid_Device_fillText = get_method(&err, env, "fillText", "(L"PKG"Text;L"PKG"Matrix;L"PKG"ColorSpace;[FF)V"); mid_Device_strokeText = get_method(&err, env, "strokeText", "(L"PKG"Text;L"PKG"StrokeState;L"PKG"Matrix;L"PKG"ColorSpace;[FF)V"); mid_Device_clipText = get_method(&err, env, "clipText", "(L"PKG"Text;L"PKG"Matrix;)V"); @@ -310,7 +310,7 @@ static int find_fids(JNIEnv *env) mid_Device_fillShade = get_method(&err, env, "fillShade", "(L"PKG"Shade;L"PKG"Matrix;F)V"); mid_Device_fillImage = get_method(&err, env, "fillImage", "(L"PKG"Image;L"PKG"Matrix;F)V"); mid_Device_fillImageMask = get_method(&err, env, "fillImageMask", "(L"PKG"Image;L"PKG"Matrix;L"PKG"ColorSpace;[FF)V"); - mid_Device_clipImageMask = get_method(&err, env, "clipImageMask", "(L"PKG"Image;L"PKG"Rect;L"PKG"Matrix;)V"); + mid_Device_clipImageMask = get_method(&err, env, "clipImageMask", "(L"PKG"Image;L"PKG"Matrix;)V"); mid_Device_popClip = get_method(&err, env, "popClip", "()V"); mid_Device_beginMask = get_method(&err, env, "beginMask", "(L"PKG"Rect;ZL"PKG"ColorSpace;[F)V"); mid_Device_endMask = get_method(&err, env, "endMask", "()V"); @@ -1073,30 +1073,28 @@ fz_java_device_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, } static void -fz_java_device_clip_path(fz_context *ctx, fz_device *dev, const fz_path *path, const fz_rect *rect, int even_odd, const fz_matrix *ctm) +fz_java_device_clip_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, const fz_matrix *ctm, const fz_rect *scissor) { fz_java_device *jdev = (fz_java_device *)dev; JNIEnv *env = jdev->env; jobject jpath = to_Path(ctx, env, path); - jobject jrect = to_Rect(ctx, env, rect); jobject jctm = to_Matrix(ctx, env, ctm); - (*env)->CallVoidMethod(env, jdev->self, mid_Device_clipPath, jpath, jrect, (jboolean)even_odd, jctm); + (*env)->CallVoidMethod(env, jdev->self, mid_Device_clipPath, jpath, (jboolean)even_odd, jctm); if ((*env)->ExceptionCheck(env)) fz_throw_java(ctx, env); } static void -fz_java_device_clip_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, const fz_rect *rect, const fz_stroke_state *state, const fz_matrix *ctm) +fz_java_device_clip_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, const fz_stroke_state *state, const fz_matrix *ctm, const fz_rect *scissor) { fz_java_device *jdev = (fz_java_device *)dev; JNIEnv *env = jdev->env; jobject jpath = to_Path(ctx, env, path); - jobject jrect = to_Rect(ctx, env, rect); jobject jstate = to_StrokeState(ctx, env, state); jobject jctm = to_Matrix(ctx, env, ctm); - (*env)->CallVoidMethod(env, jdev->self, mid_Device_clipStrokePath, jpath, jrect, jstate, jctm); + (*env)->CallVoidMethod(env, jdev->self, mid_Device_clipStrokePath, jpath, jstate, jctm); if ((*env)->ExceptionCheck(env)) fz_throw_java(ctx, env); } @@ -1133,7 +1131,7 @@ fz_java_device_stroke_text(fz_context *ctx, fz_device *dev, const fz_text *text, } static void -fz_java_device_clip_text(fz_context *ctx, fz_device *dev, const fz_text *text, const fz_matrix *ctm) +fz_java_device_clip_text(fz_context *ctx, fz_device *dev, const fz_text *text, const fz_matrix *ctm, const fz_rect *scissor) { fz_java_device *jdev = (fz_java_device *)dev; JNIEnv *env = jdev->env; @@ -1146,7 +1144,7 @@ fz_java_device_clip_text(fz_context *ctx, fz_device *dev, const fz_text *text, c } static void -fz_java_device_clip_stroke_text(fz_context *ctx, fz_device *dev, const fz_text *text, const fz_stroke_state *state, const fz_matrix *ctm) +fz_java_device_clip_stroke_text(fz_context *ctx, fz_device *dev, const fz_text *text, const fz_stroke_state *state, const fz_matrix *ctm, const fz_rect *scissor) { fz_java_device *jdev = (fz_java_device *)dev; JNIEnv *env = jdev->env; @@ -1214,15 +1212,14 @@ fz_java_device_fill_image_mask(fz_context *ctx, fz_device *dev, fz_image *img, c } static void -fz_java_device_clip_image_mask(fz_context *ctx, fz_device *dev, fz_image *img, const fz_rect *rect, const fz_matrix *ctm) +fz_java_device_clip_image_mask(fz_context *ctx, fz_device *dev, fz_image *img, const fz_matrix *ctm, const fz_rect *scissor) { fz_java_device *jdev = (fz_java_device *)dev; JNIEnv *env = jdev->env; jobject jimg = to_Image(ctx, env, img); - jobject jrect = to_Rect(ctx, env, rect); jobject jctm = to_Matrix(ctx, env, ctm); - (*env)->CallVoidMethod(env, jdev->self, mid_Device_clipImageMask, jimg, jrect, jctm); + (*env)->CallVoidMethod(env, jdev->self, mid_Device_clipImageMask, jimg, jctm); if ((*env)->ExceptionCheck(env)) fz_throw_java(ctx, env); } @@ -1569,12 +1566,11 @@ FUN(NativeDevice_strokePath)(JNIEnv *env, jobject self, jobject jpath, jobject j } JNIEXPORT void JNICALL -FUN(NativeDevice_clipPath)(JNIEnv *env, jobject self, jobject jpath, jobject jrect, jboolean even_odd, jobject jctm) +FUN(NativeDevice_clipPath)(JNIEnv *env, jobject self, jobject jpath, jboolean even_odd, jobject jctm) { fz_context *ctx = get_context(env); fz_device *dev = from_Device(env, self, ctx); fz_path *path = from_Path(env, jpath); - fz_rect rect = from_Rect(env, jrect); fz_matrix ctm = from_Matrix(env, jctm); NativeDeviceInfo *info; @@ -1583,7 +1579,7 @@ FUN(NativeDevice_clipPath)(JNIEnv *env, jobject self, jobject jpath, jobject jre info = lockNativeDevice(env, self); fz_try(ctx) - fz_clip_path(ctx, dev, path, &rect, even_odd, &ctm); + fz_clip_path(ctx, dev, path, even_odd, &ctm, NULL); fz_always(ctx) unlockNativeDevice(env, info); fz_catch(ctx) @@ -1591,12 +1587,11 @@ FUN(NativeDevice_clipPath)(JNIEnv *env, jobject self, jobject jpath, jobject jre } JNIEXPORT void JNICALL -FUN(NativeDevice_clipStrokePath)(JNIEnv *env, jobject self, jobject jpath, jobject jrect, jobject jstroke, jobject jctm) +FUN(NativeDevice_clipStrokePath)(JNIEnv *env, jobject self, jobject jpath, jobject jstroke, jobject jctm) { fz_context *ctx = get_context(env); fz_device *dev = from_Device(env, self, ctx); fz_path *path = from_Path(env, jpath); - fz_rect rect = from_Rect(env, jrect); fz_matrix ctm = from_Matrix(env, jctm); fz_stroke_state *stroke = from_StrokeState(env, jstroke); NativeDeviceInfo *info; @@ -1606,7 +1601,7 @@ FUN(NativeDevice_clipStrokePath)(JNIEnv *env, jobject self, jobject jpath, jobje info = lockNativeDevice(env, self); fz_try(ctx) - fz_clip_stroke_path(ctx, dev, path, &rect, stroke, &ctm); + fz_clip_stroke_path(ctx, dev, path, stroke, &ctm, NULL); fz_always(ctx) unlockNativeDevice(env, info); fz_catch(ctx) @@ -1678,7 +1673,7 @@ FUN(NativeDevice_clipText)(JNIEnv *env, jobject self, jobject jtext, jobject jct info = lockNativeDevice(env, self); fz_try(ctx) - fz_clip_text(ctx, dev, text, &ctm); + fz_clip_text(ctx, dev, text, &ctm, NULL); fz_always(ctx) unlockNativeDevice(env, info); fz_catch(ctx) @@ -1700,7 +1695,7 @@ FUN(NativeDevice_clipStrokeText)(JNIEnv *env, jobject self, jobject jtext, jobje info = lockNativeDevice(env, self); fz_try(ctx) - fz_clip_stroke_text(ctx, dev, text, stroke, &ctm); + fz_clip_stroke_text(ctx, dev, text, stroke, &ctm, NULL); fz_always(ctx) unlockNativeDevice(env, info); fz_catch(ctx) @@ -1796,12 +1791,11 @@ FUN(NativeDevice_fillImageMask)(JNIEnv *env, jobject self, jobject jimg, jobject } JNIEXPORT void JNICALL -FUN(NativeDevice_clipImageMask)(JNIEnv *env, jobject self, jobject jimg, jobject jrect, jobject jctm) +FUN(NativeDevice_clipImageMask)(JNIEnv *env, jobject self, jobject jimg, jobject jctm) { fz_context *ctx = get_context(env); fz_device *dev = from_Device(env, self, ctx); fz_image *image = from_Image(env, jimg); - fz_rect rect = from_Rect(env, jrect); fz_matrix ctm = from_Matrix(env, jctm); NativeDeviceInfo *info; @@ -1810,7 +1804,7 @@ FUN(NativeDevice_clipImageMask)(JNIEnv *env, jobject self, jobject jimg, jobject info = lockNativeDevice(env, self); fz_try(ctx) - fz_clip_image_mask(ctx, dev, image, &rect, &ctm); + fz_clip_image_mask(ctx, dev, image, &ctm, NULL); fz_always(ctx) unlockNativeDevice(env, info); fz_catch(ctx) diff --git a/platform/java/mupdf_native.h b/platform/java/mupdf_native.h index 61ba01b7..b6a9499d 100644 --- a/platform/java/mupdf_native.h +++ b/platform/java/mupdf_native.h @@ -825,18 +825,18 @@ JNIEXPORT void JNICALL Java_com_artifex_mupdf_fitz_NativeDevice_strokePath /* * Class: com_artifex_mupdf_fitz_NativeDevice * Method: clipPath - * Signature: (Lcom/artifex/mupdf/fitz/Path;Lcom/artifex/mupdf/fitz/Rect;ZLcom/artifex/mupdf/fitz/Matrix;)V + * Signature: (Lcom/artifex/mupdf/fitz/Path;ZLcom/artifex/mupdf/fitz/Matrix;)V */ JNIEXPORT void JNICALL Java_com_artifex_mupdf_fitz_NativeDevice_clipPath - (JNIEnv *, jobject, jobject, jobject, jboolean, jobject); + (JNIEnv *, jobject, jobject, jboolean, jobject); /* * Class: com_artifex_mupdf_fitz_NativeDevice * Method: clipStrokePath - * Signature: (Lcom/artifex/mupdf/fitz/Path;Lcom/artifex/mupdf/fitz/Rect;Lcom/artifex/mupdf/fitz/StrokeState;Lcom/artifex/mupdf/fitz/Matrix;)V + * Signature: (Lcom/artifex/mupdf/fitz/Path;Lcom/artifex/mupdf/fitz/StrokeState;Lcom/artifex/mupdf/fitz/Matrix;)V */ JNIEXPORT void JNICALL Java_com_artifex_mupdf_fitz_NativeDevice_clipStrokePath - (JNIEnv *, jobject, jobject, jobject, jobject, jobject); + (JNIEnv *, jobject, jobject, jobject, jobject); /* * Class: com_artifex_mupdf_fitz_NativeDevice @@ -905,10 +905,10 @@ JNIEXPORT void JNICALL Java_com_artifex_mupdf_fitz_NativeDevice_fillImageMask /* * Class: com_artifex_mupdf_fitz_NativeDevice * Method: clipImageMask - * Signature: (Lcom/artifex/mupdf/fitz/Image;Lcom/artifex/mupdf/fitz/Rect;Lcom/artifex/mupdf/fitz/Matrix;)V + * Signature: (Lcom/artifex/mupdf/fitz/Image;Lcom/artifex/mupdf/fitz/Matrix;)V */ JNIEXPORT void JNICALL Java_com_artifex_mupdf_fitz_NativeDevice_clipImageMask - (JNIEnv *, jobject, jobject, jobject, jobject); + (JNIEnv *, jobject, jobject, jobject); /* * Class: com_artifex_mupdf_fitz_NativeDevice -- cgit v1.2.3