summaryrefslogtreecommitdiff
path: root/source/tools/murun.c
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2016-07-31 14:53:15 +0800
committerSebastian Rasmussen <sebras@gmail.com>2016-09-08 18:53:00 +0800
commitb3194c73ca093f5cfd297348d59978ff68bf7826 (patch)
treee355272016311446b4a3997cfe4633ebdef3e28a /source/tools/murun.c
parent2e4504f59986de056f8c60f76d3f9e8d56249b37 (diff)
downloadmupdf-b3194c73ca093f5cfd297348d59978ff68bf7826.tar.xz
JS: Add Path.bound() and Path.transform() similar to JNI.
Diffstat (limited to 'source/tools/murun.c')
-rw-r--r--source/tools/murun.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/source/tools/murun.c b/source/tools/murun.c
index 30e799e1..5767d27d 100644
--- a/source/tools/murun.c
+++ b/source/tools/murun.c
@@ -2366,6 +2366,34 @@ static void ffi_Path_rect(js_State *J)
rethrow(J);
}
+static void ffi_Path_bound(js_State *J)
+{
+ fz_context *ctx = js_getcontext(J);
+ fz_path *path = js_touserdata(J, 0, "fz_path");
+ fz_stroke_state stroke = ffi_tostroke(J, 1);
+ fz_matrix ctm = ffi_tomatrix(J, 2);
+ fz_rect bounds;
+
+ fz_try(ctx)
+ fz_bound_path(ctx, path, &stroke, &ctm, &bounds);
+ fz_catch(ctx)
+ rethrow(J);
+
+ ffi_pushrect(J, bounds);
+}
+
+static void ffi_Path_transform(js_State *J)
+{
+ fz_context *ctx = js_getcontext(J);
+ fz_path *path = js_touserdata(J, 0, "fz_path");
+ fz_matrix ctm = ffi_tomatrix(J, 1);
+
+ fz_try(ctx)
+ fz_transform_path(ctx, path, &ctm);
+ fz_catch(ctx)
+ rethrow(J);
+}
+
static void ffi_new_DisplayList(js_State *J)
{
fz_context *ctx = js_getcontext(J);
@@ -3672,6 +3700,8 @@ int murun_main(int argc, char **argv)
jsB_propfun(J, "Path.curveToY", ffi_Path_curveToY, 4);
jsB_propfun(J, "Path.closePath", ffi_Path_closePath, 0);
jsB_propfun(J, "Path.rect", ffi_Path_rect, 4);
+ jsB_propfun(J, "Path.bound", ffi_Path_bound, 2);
+ jsB_propfun(J, "Path.transform", ffi_Path_transform, 1);
}
js_setregistry(J, "fz_path");