summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2004-12-02 06:55:46 +0100
committerTor Andersson <tor@ghostscript.com>2004-12-02 06:55:46 +0100
commit5c335f9337724f61c14af143b18f0891c58dbacd (patch)
treebe1c7eef2412c09d4ae0caebd933a17e4b8b80f0 /include
parent615d27315a131bea0df699c3daa1102289b433c6 (diff)
downloadmupdf-5c335f9337724f61c14af143b18f0891c58dbacd.tar.xz
optimise object store. refcount resources. colorkeyed transparency. font bbox.
Diffstat (limited to 'include')
-rw-r--r--include/fitz/hash.h1
-rw-r--r--include/mupdf/rsrc.h11
-rw-r--r--include/mupdf/xref.h1
3 files changed, 12 insertions, 1 deletions
diff --git a/include/fitz/hash.h b/include/fitz/hash.h
index c53056bc..2ada17f4 100644
--- a/include/fitz/hash.h
+++ b/include/fitz/hash.h
@@ -3,6 +3,7 @@ typedef struct fz_hashtable_s fz_hashtable;
fz_error *fz_newhash(fz_hashtable **tablep, int initialsize, int keylen);
fz_error *fz_resizehash(fz_hashtable *table, int newsize);
void fz_debughash(fz_hashtable *table);
+void fz_emptyhash(fz_hashtable *table);
void fz_drophash(fz_hashtable *table);
void *fz_hashfind(fz_hashtable *table, void *key);
diff --git a/include/mupdf/rsrc.h b/include/mupdf/rsrc.h
index 0e69621b..e840ccec 100644
--- a/include/mupdf/rsrc.h
+++ b/include/mupdf/rsrc.h
@@ -15,9 +15,11 @@ typedef enum pdf_itemkind_e
} pdf_itemkind;
fz_error *pdf_newstore(pdf_store **storep);
+void pdf_emptystore(pdf_store *store);
+void pdf_dropstore(pdf_store *store);
+
fz_error *pdf_storeitem(pdf_store *store, pdf_itemkind tag, fz_obj *key, void *val);
void *pdf_finditem(pdf_store *store, pdf_itemkind tag, fz_obj *key);
-void pdf_dropstore(pdf_store *store);
fz_error *pdf_loadresources(fz_obj **rdb, pdf_xref *xref, fz_obj *orig);
@@ -29,6 +31,7 @@ typedef struct pdf_function_s pdf_function;
fz_error *pdf_loadfunction(pdf_function **func, pdf_xref *xref, fz_obj *ref);
fz_error *pdf_evalfunction(pdf_function *func, float *in, int inlen, float *out, int outlen);
+pdf_function *pdf_keepfunction(pdf_function *func);
void pdf_dropfunction(pdf_function *func);
/*
@@ -64,6 +67,7 @@ typedef struct pdf_pattern_s pdf_pattern;
struct pdf_pattern_s
{
+ int refs;
int ismask;
float xstep;
float ystep;
@@ -73,6 +77,7 @@ struct pdf_pattern_s
};
fz_error *pdf_loadpattern(pdf_pattern **patp, pdf_xref *xref, fz_obj *obj, fz_obj *ref);
+pdf_pattern *pdf_keeppattern(pdf_pattern *pat);
void pdf_droppattern(pdf_pattern *pat);
fz_error *pdf_loadshade(fz_shade **shadep, pdf_xref *xref, fz_obj *obj, fz_obj *ref);
@@ -85,6 +90,7 @@ typedef struct pdf_xobject_s pdf_xobject;
struct pdf_xobject_s
{
+ int refs;
fz_matrix matrix;
fz_rect bbox;
fz_obj *resources;
@@ -92,6 +98,7 @@ struct pdf_xobject_s
};
fz_error *pdf_loadxobject(pdf_xobject **xobjp, pdf_xref *xref, fz_obj *obj, fz_obj *ref);
+pdf_xobject *pdf_keepxobject(pdf_xobject *xobj);
void pdf_dropxobject(pdf_xobject *xobj);
/*
@@ -104,6 +111,8 @@ struct pdf_image_s
{
fz_image super;
fz_image *mask; /* explicit mask with subimage */
+ int usecolorkey; /* explicit color-keyed masking */
+ int colorkey[FZ_MAXCOLORS * 2];
pdf_indexed *indexed;
float decode[32];
int bpc;
diff --git a/include/mupdf/xref.h b/include/mupdf/xref.h
index 7ad417da..c1307e45 100644
--- a/include/mupdf/xref.h
+++ b/include/mupdf/xref.h
@@ -42,6 +42,7 @@ fz_error *pdf_updatepdf(pdf_xref *, char *filename);
fz_error *pdf_savepdf(pdf_xref *, char *filename, pdf_crypt *encrypt);
void pdf_debugpdf(pdf_xref *);
+void pdf_flushpdf(pdf_xref *, int force);
void pdf_closepdf(pdf_xref *);
fz_error *pdf_allocobject(pdf_xref *, int *oidp, int *genp);