summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2009-12-02 23:01:57 +0100
committerTor Andersson <tor@ghostscript.com>2009-12-02 23:01:57 +0100
commit95a48f8bc17c24a27410ac3fcc40fac982f8e648 (patch)
treed8231ede62c06533372fa16ed60996024154e6df
parent6af1fed04cea6c3d7fe086c593c57fdc8fed8719 (diff)
downloadmupdf-95a48f8bc17c24a27410ac3fcc40fac982f8e648.tar.xz
Resolve conflict.
-rw-r--r--fitz/fitz_tree.h423
1 files changed, 0 insertions, 423 deletions
diff --git a/fitz/fitz_tree.h b/fitz/fitz_tree.h
deleted file mode 100644
index 74962048..00000000
--- a/fitz/fitz_tree.h
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
- * The display tree is at the center of attention in Fitz.
- * The tree and most of its minor nodes.
- * Paths and text nodes are found elsewhere.
- */
-
-typedef struct fz_tree_s fz_tree;
-typedef struct fz_node_s fz_node;
-
-typedef struct fz_colorspace_s fz_colorspace;
-typedef struct fz_image_s fz_image;
-typedef struct fz_shade_s fz_shade;
-typedef struct fz_font_s fz_font;
-
-struct fz_tree_s
-{
- int refs;
- fz_node *root;
- fz_node *head;
-};
-
-/* tree operations */
-fz_error fz_newtree(fz_tree **treep);
-fz_tree *fz_keeptree(fz_tree *tree);
-void fz_droptree(fz_tree *tree);
-
-fz_rect fz_boundtree(fz_tree *tree, fz_matrix ctm);
-void fz_debugtree(fz_tree *tree);
-void fz_insertnodefirst(fz_node *parent, fz_node *child);
-void fz_insertnodelast(fz_node *parent, fz_node *child);
-void fz_insertnodeafter(fz_node *prev, fz_node *child);
-void fz_removenode(fz_node *child);
-
-/* node types */
-
-typedef struct fz_transformnode_s fz_transformnode;
-typedef struct fz_overnode_s fz_overnode;
-typedef struct fz_masknode_s fz_masknode;
-typedef struct fz_blendnode_s fz_blendnode;
-typedef struct fz_pathnode_s fz_pathnode;
-typedef struct fz_textnode_s fz_textnode;
-typedef struct fz_solidnode_s fz_solidnode;
-typedef struct fz_imagenode_s fz_imagenode;
-typedef struct fz_shadenode_s fz_shadenode;
-typedef struct fz_linknode_s fz_linknode;
-
-typedef enum fz_nodekind_e
-{
- FZ_NTRANSFORM,
- FZ_NOVER,
- FZ_NMASK,
- FZ_NBLEND,
- FZ_NPATH,
- FZ_NTEXT,
- FZ_NCOLOR,
- FZ_NIMAGE,
- FZ_NSHADE,
- FZ_NLINK,
-} fz_nodekind;
-
-typedef enum fz_blendkind_e
-{
- /* PDF 1.4 -- standard separable */
- FZ_BNORMAL,
- FZ_BMULTIPLY,
- FZ_BSCREEN,
- FZ_BOVERLAY,
- FZ_BDARKEN,
- FZ_BLIGHTEN,
- FZ_BCOLORDODGE,
- FZ_BCOLORBURN,
- FZ_BHARDLIGHT,
- FZ_BSOFTLIGHT,
- FZ_BDIFFERENCE,
- FZ_BEXCLUSION,
-
- /* PDF 1.4 -- standard non-separable */
- FZ_BHUE,
- FZ_BSATURATION,
- FZ_BCOLOR,
- FZ_BLUMINOSITY,
-
- FZ_BOVERPRINT,
- FZ_BRASTEROP
-} fz_blendkind;
-
-struct fz_node_s
-{
- fz_nodekind kind;
- fz_node *parent;
- fz_node *first;
- fz_node *last;
- fz_node *next;
-};
-
-struct fz_transformnode_s
-{
- fz_node super;
- fz_matrix m;
-};
-
-struct fz_overnode_s
-{
- fz_node super;
-};
-
-struct fz_masknode_s
-{
- fz_node super;
-};
-
-struct fz_blendnode_s
-{
- fz_node super;
- fz_colorspace *cs;
- fz_blendkind mode;
- int isolated;
- int knockout;
-};
-
-struct fz_solidnode_s
-{
- fz_node super;
- fz_colorspace *cs;
- int n;
- float a;
- float samples[FZ_FLEX];
-};
-
-struct fz_linknode_s
-{
- fz_node super;
- fz_tree *tree;
-};
-
-struct fz_imagenode_s
-{
- fz_node super;
- fz_image *image;
-};
-
-struct fz_shadenode_s
-{
- fz_node super;
- fz_shade *shade;
-};
-
-/* common to all nodes */
-void fz_initnode(fz_node *node, fz_nodekind kind);
-fz_rect fz_boundnode(fz_node *node, fz_matrix ctm);
-void fz_dropnode(fz_node *node);
-
-/* branch nodes */
-fz_error fz_newovernode(fz_node **nodep);
-fz_error fz_newmasknode(fz_node **nodep);
-fz_error fz_newblendnode(fz_node **nodep, fz_blendkind b, int i, int k);
-fz_error fz_newtransformnode(fz_node **nodep, fz_matrix m);
-
-int fz_istransformnode(fz_node *node);
-int fz_isovernode(fz_node *node);
-int fz_ismasknode(fz_node *node);
-int fz_isblendnode(fz_node *node);
-
-/* leaf nodes */
-fz_error fz_newlinknode(fz_node **nodep, fz_tree *subtree);
-fz_error fz_newsolidnode(fz_node **nodep, float a, fz_colorspace *cs, int n, float *v);
-fz_error fz_newimagenode(fz_node **nodep, fz_image *image);
-fz_error fz_newshadenode(fz_node **nodep, fz_shade *shade);
-
-int fz_islinknode(fz_node *node);
-int fz_issolidnode(fz_node *node);
-int fz_ispathnode(fz_node *node);
-int fz_istextnode(fz_node *node);
-int fz_isimagenode(fz_node *node);
-int fz_isshadenode(fz_node *node);
-
-/*
- * Vector path nodes in the display tree.
- * They can be stroked and dashed, or be filled.
- * They have a fill rule (nonzero or evenodd).
- *
- * When rendering, they are flattened, stroked and dashed straight
- * into the Global Edge List.
- *
- * TODO flatten, stroke and dash into another path
- * TODO set operations on flat paths (union, intersect, difference)
- * TODO decide whether dashing should be part of the tree and renderer,
- * or if it is something the client has to do (with a util function).
- */
-
-typedef struct fz_stroke_s fz_stroke;
-typedef struct fz_dash_s fz_dash;
-typedef union fz_pathel_s fz_pathel;
-
-typedef enum fz_pathkind_e
-{
- FZ_STROKE,
- FZ_FILL,
- FZ_EOFILL
-} fz_pathkind;
-
-typedef enum fz_pathelkind_e
-{
- FZ_MOVETO,
- FZ_LINETO,
- FZ_CURVETO,
- FZ_CLOSEPATH
-} fz_pathelkind;
-
-struct fz_stroke_s
-{
- int linecap;
- int linejoin;
- float linewidth;
- float miterlimit;
-};
-
-struct fz_dash_s
-{
- int len;
- float phase;
- float array[FZ_FLEX];
-};
-
-union fz_pathel_s
-{
- fz_pathelkind k;
- float v;
-};
-
-struct fz_pathnode_s
-{
- fz_node super;
- fz_pathkind paint;
- fz_dash *dash;
- int linecap;
- int linejoin;
- float linewidth;
- float miterlimit;
- int len, cap;
- fz_pathel *els;
-};
-
-fz_error fz_newpathnode(fz_pathnode **pathp);
-fz_error fz_clonepathnode(fz_pathnode **pathp, fz_pathnode *oldpath);
-fz_error fz_moveto(fz_pathnode*, float x, float y);
-fz_error fz_lineto(fz_pathnode*, float x, float y);
-fz_error fz_curveto(fz_pathnode*, float, float, float, float, float, float);
-fz_error fz_curvetov(fz_pathnode*, float, float, float, float);
-fz_error fz_curvetoy(fz_pathnode*, float, float, float, float);
-fz_error fz_closepath(fz_pathnode*);
-fz_error fz_endpath(fz_pathnode*, fz_pathkind paint, fz_stroke *stroke, fz_dash *dash);
-
-fz_rect fz_boundpathnode(fz_pathnode *node, fz_matrix ctm);
-void fz_debugpathnode(fz_pathnode *node, int indent);
-void fz_printpathnode(fz_pathnode *node, int indent);
-
-fz_error fz_newdash(fz_dash **dashp, float phase, int len, float *array);
-void fz_dropdash(fz_dash *dash);
-
-/*
- * Fitz display tree text node.
- *
- * The text node is an optimization to reference glyphs in a font resource
- * and specifying an individual transform matrix for each one.
- *
- * The trm field contains the a, b, c and d coefficients.
- * The e and f coefficients come from the individual elements,
- * together they form the transform matrix for the glyph.
- *
- * Glyphs are referenced by glyph ID.
- * The Unicode text equivalent is kept in a separate array
- * with indexes into the glyph array.
- *
-
-TODO the unicode textels
-
-struct fz_textgid_s { float e, f; int gid; };
-struct fz_textucs_s { int idx; int ucs; };
-
-*/
-
-typedef struct fz_textel_s fz_textel;
-
-struct fz_textel_s
-{
- float x, y;
- int gid;
- int ucs;
-};
-
-struct fz_textnode_s
-{
- fz_node super;
- fz_font *font;
- fz_matrix trm;
- int len, cap;
- fz_textel *els;
-};
-
-fz_error fz_newtextnode(fz_textnode **textp, fz_font *face);
-fz_error fz_clonetextnode(fz_textnode **textp, fz_textnode *oldtext);
-fz_error fz_addtext(fz_textnode *text, int gid, int ucs, float x, float y);
-fz_error fz_endtext(fz_textnode *text);
-
-typedef struct fz_colorcube_s fz_colorcube;
-typedef struct fz_colorcube1_s fz_colorcube1;
-typedef struct fz_colorcube3_s fz_colorcube3;
-typedef struct fz_colorcube4_s fz_colorcube4;
-
-enum { FZ_MAXCOLORS = 32 };
-
-struct fz_colorspace_s
-{
- int refs;
- char name[16];
- int n;
- void (*convpixmap)(fz_colorspace *ss, fz_pixmap *sp, fz_colorspace *ds, fz_pixmap *dp);
- void (*convcolor)(fz_colorspace *ss, float *sv, fz_colorspace *ds, float *dv);
- void (*toxyz)(fz_colorspace *, float *src, float *xyz);
- void (*fromxyz)(fz_colorspace *, float *xyz, float *dst);
- void (*drop)(fz_colorspace *);
-};
-
-struct fz_colorcube1_s { unsigned char v[17]; };
-struct fz_colorcube3_s { unsigned char v[17][17][17]; };
-struct fz_colorcube4_s { unsigned char v[17][17][17][17]; };
-
-struct fz_colorcube_s
-{
- fz_colorspace *src;
- fz_colorspace *dst;
- void **subcube; /* dst->n * colorcube(src->n) */
-};
-
-fz_colorspace *fz_keepcolorspace(fz_colorspace *cs);
-void fz_dropcolorspace(fz_colorspace *cs);
-
-void fz_convertcolor(fz_colorspace *srcs, float *srcv, fz_colorspace *dsts, float *dstv);
-void fz_convertpixmap(fz_colorspace *srcs, fz_pixmap *srcv, fz_colorspace *dsts, fz_pixmap *dstv);
-
-void fz_stdconvcolor(fz_colorspace *srcs, float *srcv, fz_colorspace *dsts, float *dstv);
-void fz_stdconvpixmap(fz_colorspace *srcs, fz_pixmap *srcv, fz_colorspace *dsts, fz_pixmap *dstv);
-
-char *ft_errorstring(int err);
-
-struct fz_font_s
-{
- int refs;
- char name[32];
-
- void *ftface; /* has an FT_Face if used */
- int ftsubstitute; /* ... substitute metrics */
- int fthint; /* ... force hinting for DynaLab fonts */
-
- fz_matrix t3matrix;
- struct fz_tree_s **t3procs; /* has 256 entries if used */
- float *t3widths; /* has 256 entries if used */
-
- fz_irect bbox;
-};
-
-struct fz_glyph_s
-{
- int x, y, w, h;
- unsigned char *samples;
-};
-
-fz_error fz_newfreetypefont(fz_font **fontp, char *name, int substitute);
-fz_error fz_loadfreetypefontfile(fz_font *font, char *path, int index);
-fz_error fz_loadfreetypefontbuffer(fz_font *font, unsigned char *data, int len, int index);
-fz_font * fz_newtype3font(char *name, fz_matrix matrix);
-
-fz_error fz_newfontfrombuffer(fz_font **fontp, unsigned char *data, int len, int index);
-fz_error fz_newfontfromfile(fz_font **fontp, char *path, int index);
-
-fz_font * fz_keepfont(fz_font *font);
-void fz_dropfont(fz_font *font);
-
-void fz_debugfont(fz_font *font);
-void fz_setfontbbox(fz_font *font, int xmin, int ymin, int xmax, int ymax);
-
-/* loadtile will fill a pixmap with the pixel samples. non-premultiplied alpha. */
-
-struct fz_image_s
-{
- int refs;
- fz_error (*loadtile)(fz_image*,fz_pixmap*);
- void (*drop)(fz_image*);
- fz_colorspace *cs;
- int w, h, n, a;
-};
-
-fz_image *fz_keepimage(fz_image *img);
-void fz_dropimage(fz_image *img);
-
-struct fz_shade_s
-{
- int refs;
-
- fz_rect bbox; /* can be fz_infiniterect */
- fz_colorspace *cs;
-
- /* used by build.c -- not used in drawshade.c */
- fz_matrix matrix; /* matrix from pattern dict */
- int usebackground; /* background color for fills but not 'sh' */
- float background[FZ_MAXCOLORS];
-
- int usefunction;
- float function[256][FZ_MAXCOLORS];
-
- int meshlen;
- int meshcap;
- float *mesh; /* [x y t] or [x y c1 ... cn] * 3 * meshlen */
-};
-
-
-fz_shade *fz_keepshade(fz_shade *shade);
-void fz_dropshade(fz_shade *shade);
-
-fz_rect fz_boundshade(fz_shade *shade, fz_matrix ctm);
-fz_error fz_rendershade(fz_shade *shade, fz_matrix ctm, fz_colorspace *dsts, fz_pixmap *dstp);
-