reactos/rosapps/smartpdf/fitz/include/mupdf/rsrc.h
Klemens Friedl 435a566751 SmartPDF - lightweight pdf viewer app for rosapps
* sumatrapdf - vendor import
* everything compiles (libjpeg, poppler, fitz, sumatrapdf)
* does NOT link

(remove the comment tags in the parent directory.rbuild file (rosapps dir) to build it)

svn path=/trunk/; revision=29295
2007-09-29 08:39:35 +00:00

243 lines
6.5 KiB
C

/*
* Resource store
*/
typedef struct pdf_store_s pdf_store;
typedef enum pdf_itemkind_e
{
PDF_KCOLORSPACE,
PDF_KFUNCTION,
PDF_KXOBJECT,
PDF_KIMAGE,
PDF_KPATTERN,
PDF_KSHADE,
PDF_KCMAP,
PDF_KFONT
} 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);
fz_error *pdf_loadresources(fz_obj **rdb, pdf_xref *xref, fz_obj *orig);
/*
* Functions
*/
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);
/*
* ColorSpace
*/
typedef struct pdf_indexed_s pdf_indexed;
struct pdf_indexed_s
{
fz_colorspace super; /* hmmm... */
fz_colorspace *base;
int high;
unsigned char *lookup;
};
extern fz_colorspace *pdf_devicegray;
extern fz_colorspace *pdf_devicergb;
extern fz_colorspace *pdf_devicecmyk;
extern fz_colorspace *pdf_devicelab;
extern fz_colorspace *pdf_devicepattern;
void pdf_convcolor(fz_colorspace *ss, float *sv, fz_colorspace *ds, float *dv);
void pdf_convpixmap(fz_colorspace *ss, fz_pixmap *sp, fz_colorspace *ds, fz_pixmap *dp);
fz_error *pdf_loadcolorspace(fz_colorspace **csp, pdf_xref *xref, fz_obj *obj);
/*
* Pattern
*/
typedef struct pdf_pattern_s pdf_pattern;
struct pdf_pattern_s
{
int refs;
int ismask;
float xstep;
float ystep;
fz_matrix matrix;
fz_rect bbox;
fz_tree *tree;
};
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);
/*
* Shading
*/
void pdf_setmeshvalue(float *mesh, int i, float x, float y, float t);
fz_error *pdf_loadshadefunction(fz_shade *shade, pdf_xref *xref, fz_obj *dict, float t0, float t1);
fz_error *pdf_loadtype1shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);
fz_error *pdf_loadtype2shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);
fz_error *pdf_loadtype3shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);
fz_error *pdf_loadtype4shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);
fz_error *pdf_loadtype5shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);
fz_error *pdf_loadtype6shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);
fz_error *pdf_loadtype7shade(fz_shade *, pdf_xref *, fz_obj *dict, fz_obj *ref);
fz_error *pdf_loadshade(fz_shade **shadep, pdf_xref *xref, fz_obj *obj, fz_obj *ref);
/*
* XObject
*/
typedef struct pdf_xobject_s pdf_xobject;
struct pdf_xobject_s
{
int refs;
fz_matrix matrix;
fz_rect bbox;
fz_obj *resources;
fz_buffer *contents;
};
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);
/*
* Image
*/
typedef struct pdf_image_s pdf_image;
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;
int stride;
fz_buffer *samples;
};
fz_error *pdf_loadinlineimage(pdf_image **imgp, pdf_xref *xref, fz_obj *rdb, fz_obj *dict, fz_stream *file);
fz_error *pdf_loadimage(pdf_image **imgp, pdf_xref *xref, fz_obj *obj, fz_obj *ref);
fz_error *pdf_loadtile(fz_image *image, fz_pixmap *tile);
/*
* CMap
*/
typedef struct pdf_cmap_s pdf_cmap;
fz_error *pdf_newcmap(pdf_cmap **cmapp);
pdf_cmap *pdf_keepcmap(pdf_cmap *cmap);
void pdf_dropcmap(pdf_cmap *cmap);
void pdf_debugcmap(pdf_cmap *cmap);
int pdf_getwmode(pdf_cmap *cmap);
pdf_cmap *fz_getusecmap(pdf_cmap *cmap);
void fz_setwmode(pdf_cmap *cmap, int wmode);
void fz_setusecmap(pdf_cmap *cmap, pdf_cmap *usecmap);
fz_error *pdf_addcodespace(pdf_cmap *cmap, unsigned lo, unsigned hi, int n);
fz_error *pdf_maprangetotable(pdf_cmap *cmap, int low, int *map, int len);
fz_error *pdf_maprangetorange(pdf_cmap *cmap, int srclo, int srchi, int dstlo);
fz_error *pdf_maponetomany(pdf_cmap *cmap, int one, int *many, int len);
fz_error *pdf_sortcmap(pdf_cmap *cmap);
int pdf_lookupcmap(pdf_cmap *cmap, int cpt);
unsigned char *pdf_decodecmap(pdf_cmap *cmap, unsigned char *s, int *cpt);
fz_error *pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file);
fz_error *pdf_loadembeddedcmap(pdf_cmap **cmapp, pdf_xref *xref, fz_obj *ref);
fz_error *pdf_loadsystemcmap(pdf_cmap **cmapp, char *name);
fz_error *pdf_newidentitycmap(pdf_cmap **cmapp, int wmode, int bytes);
/*
* Font
*/
void pdf_loadencoding(char **estrings, char *encoding);
int pdf_lookupagl(char *name, int *ucsbuf, int ucscap);
extern const unsigned short pdf_docencoding[256];
extern const char * const pdf_macroman[256];
extern const char * const pdf_macexpert[256];
extern const char * const pdf_winansi[256];
extern const char * const pdf_standard[256];
extern const char * const pdf_expert[256];
extern const char * const pdf_symbol[256];
extern const char * const pdf_zapfdingbats[256];
typedef struct pdf_font_s pdf_font;
struct pdf_font_s
{
fz_font super;
/* FontDescriptor */
int flags;
float italicangle;
float ascent;
float descent;
float capheight;
float xheight;
float missingwidth;
/* Encoding (CMap) */
pdf_cmap *encoding;
pdf_cmap *tottfcmap;
int ncidtogid;
unsigned short *cidtogid;
/* ToUnicode */
pdf_cmap *tounicode;
int ncidtoucs;
unsigned short *cidtoucs;
/* Freetype */
int substitute;
void *ftface;
char *filename;
fz_buffer *fontdata;
/* Type3 data */
fz_matrix matrix;
fz_tree *charprocs[256];
};
/* unicode.c */
fz_error *pdf_loadtounicode(pdf_font *font, pdf_xref *xref, char **strings, char *collection, fz_obj *cmapstm);
/* fontfile.c */
fz_error *pdf_loadbuiltinfont(pdf_font *font, char *basefont);
fz_error *pdf_loadembeddedfont(pdf_font *font, pdf_xref *xref, fz_obj *stmref);
fz_error *pdf_loadsystemfont(pdf_font *font, char *basefont, char *collection);
fz_error *pdf_loadsubstitutefont(pdf_font *font, int fdflags, char *collection);
/* type3.c */
fz_error *pdf_loadtype3font(pdf_font **fontp, pdf_xref *xref, fz_obj *obj, fz_obj *ref);
/* font.c */
fz_error *pdf_loadfontdescriptor(pdf_font *font, pdf_xref *xref, fz_obj *desc, char *collection);
fz_error *pdf_loadfont(pdf_font **fontp, pdf_xref *xref, fz_obj *obj, fz_obj *ref);
void pdf_dropfont(pdf_font *font);