summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mupdf.h1
-rw-r--r--include/mupdf/function.h54
-rw-r--r--include/mupdf/rsrc.h11
-rw-r--r--mupdf/function.c49
4 files changed, 60 insertions, 55 deletions
diff --git a/include/mupdf.h b/include/mupdf.h
index a7feec65..a1633541 100644
--- a/include/mupdf.h
+++ b/include/mupdf.h
@@ -9,7 +9,6 @@
#include "mupdf/syntax.h"
#include "mupdf/xref.h"
-#include "mupdf/function.h"
#include "mupdf/rsrc.h"
#include "mupdf/content.h"
#include "mupdf/page.h"
diff --git a/include/mupdf/function.h b/include/mupdf/function.h
deleted file mode 100644
index 9e2caa26..00000000
--- a/include/mupdf/function.h
+++ /dev/null
@@ -1,54 +0,0 @@
-typedef struct pdf_function_s pdf_function;
-typedef struct psobj_s psobj;
-
-struct pdf_function_s
-{
- unsigned short type; /* 0=sample 2=exponential 3=stitching 4=postscript */
- int m; /* number of input values */
- int n; /* number of output values */
- float *domain; /* even index : min value, odd index : max value */
- float *range; /* even index : min value, odd index : max value */
- union
- {
- struct {
- unsigned short bps;
- unsigned short order;
- int *size; /* the num of samples in each input dimension */
- float *encode;
- float *decode;
- int *samples;
- } sa;
- struct {
- float n;
- float *c0;
- float *c1;
- } e;
- struct {
- int k;
- pdf_function **funcs;
- float *bounds;
- float *encode;
- } st;
- struct {
- psobj *code;
- int cap;
- } p;
- }u;
-};
-
-struct psobj_s
-{
- unsigned short type;
- union {
- int booln; /* boolean (stack only) */
- int intg; /* integer (stack and code) */
- float real; /* real (stack and code) */
- int op; /* operator (code only) */
- int blk; /* if/ifelse block pointer (code only) */
- };
-};
-
-fz_error *pdf_loadfunction(pdf_function **func, pdf_xref *xref, fz_obj *obj);
-fz_error *pdf_evalfunction(pdf_function *func, float *in, int inlen, float *out, int outlen);
-void pdf_freefunc(pdf_function *func);
-
diff --git a/include/mupdf/rsrc.h b/include/mupdf/rsrc.h
index 1cf5d654..20df27e7 100644
--- a/include/mupdf/rsrc.h
+++ b/include/mupdf/rsrc.h
@@ -14,6 +14,17 @@ fz_error *pdf_loadresources(fz_obj **rdb, pdf_xref *xref, fz_obj *orig);
void *pdf_findresource(pdf_rsrc *list, fz_obj *ref);
/*
+ * Functions
+ */
+
+
+typedef struct pdf_function_s pdf_function;
+
+fz_error *pdf_loadfunction(pdf_function **func, pdf_xref *xref, fz_obj *obj);
+fz_error *pdf_evalfunction(pdf_function *func, float *in, int inlen, float *out, int outlen);
+void pdf_freefunc(pdf_function *func);
+
+/*
* ColorSpace
*/
diff --git a/mupdf/function.c b/mupdf/function.c
index ee2310e0..5efb28fd 100644
--- a/mupdf/function.c
+++ b/mupdf/function.c
@@ -1,6 +1,55 @@
#include <fitz.h>
#include <mupdf.h>
+typedef struct psobj_s psobj;
+
+struct pdf_function_s
+{
+ unsigned short type; /* 0=sample 2=exponential 3=stitching 4=postscript */
+ int m; /* number of input values */
+ int n; /* number of output values */
+ float *domain; /* even index : min value, odd index : max value */
+ float *range; /* even index : min value, odd index : max value */
+ union
+ {
+ struct {
+ unsigned short bps;
+ unsigned short order;
+ int *size; /* the num of samples in each input dimension */
+ float *encode;
+ float *decode;
+ int *samples;
+ } sa;
+ struct {
+ float n;
+ float *c0;
+ float *c1;
+ } e;
+ struct {
+ int k;
+ pdf_function **funcs;
+ float *bounds;
+ float *encode;
+ } st;
+ struct {
+ psobj *code;
+ int cap;
+ } p;
+ }u;
+};
+
+struct psobj_s
+{
+ unsigned short type;
+ union {
+ int booln; /* boolean (stack only) */
+ int intg; /* integer (stack and code) */
+ float real; /* real (stack and code) */
+ int op; /* operator (code only) */
+ int blk; /* if/ifelse block pointer (code only) */
+ };
+};
+
#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
#define MIN_MAX(a,min,max) \