diff options
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/image/image.h')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/image/image.h | 194 |
1 files changed, 104 insertions, 90 deletions
diff --git a/Build/source/texk/web2c/luatexdir/image/image.h b/Build/source/texk/web2c/luatexdir/image/image.h index 5a9adfdc9bb..49996947e26 100644 --- a/Build/source/texk/web2c/luatexdir/image/image.h +++ b/Build/source/texk/web2c/luatexdir/image/image.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ - #ifndef IMAGE_H # define IMAGE_H @@ -31,14 +30,13 @@ extern int do_zround(double r); /* from utils.w */ extern scaled one_hundred_bp; /* from pdfgen.w */ + # define bp2sp(p) do_zround(p * (one_hundred_bp / 100.0)) # define sp2bp(i) (i * 100.0 / one_hundred_bp) # define TYPE_IMG "image.meta" # define TYPE_IMG_DICT "image.dict" -/**********************************************************************/ - typedef struct { char *stream; } pdf_stream_struct; @@ -49,41 +47,52 @@ typedef struct { } png_img_struct; typedef struct { - int color_space; /* used color space. See JPG_ constants */ - JPG_UINT32 length; /* length of file/data */ + int color_space; /* used color space. See JPG_ constants */ + JPG_UINT32 length; /* length of file/data */ } jpg_img_struct; typedef struct { - int length; /* length of file/data */ + int length; /* length of file/data */ } jp2_img_struct; # if 0 -typedef struct { /* currently unused */ +typedef struct { /* currently unused */ } jb2_img_struct; # endif -typedef enum { DICT_NEW, /* fresh dictionary */ - DICT_FILESCANNED, /* image file scanned */ - DICT_REFERED, /* pdf_refximage_node in node list --> read-only dict */ - DICT_OUTIMG, /* /Im* appears in pagestream */ - DICT_SCHEDULED, /* image dict scheduled for writing (PONR) */ - DICT_WRITTEN /* image dict written to file */ +typedef enum { + DICT_NEW, /* fresh dictionary */ + DICT_FILESCANNED, /* image file scanned */ + DICT_REFERED, /* pdf_refximage_node in node list --> read-only dict */ + DICT_OUTIMG, /* /Im* appears in pagestream */ + DICT_SCHEDULED, /* image dict scheduled for writing (PONR) */ + DICT_WRITTEN /* image dict written to file */ } dict_state; - -typedef enum { IMG_TYPE_NONE, IMG_TYPE_PDF, IMG_TYPE_PNG, IMG_TYPE_JPG, - IMG_TYPE_JP2, IMG_TYPE_JBIG2, IMG_TYPE_PDFSTREAM, IMG_TYPE_PDFMEMSTREAM, IMG_TYPE_SENTINEL +typedef enum { + IMG_TYPE_NONE, + IMG_TYPE_PDF, + IMG_TYPE_PNG, + IMG_TYPE_JPG, + IMG_TYPE_JP2, + IMG_TYPE_JBIG2, + IMG_TYPE_PDFSTREAM, + IMG_TYPE_PDFMEMSTREAM, + IMG_TYPE_SENTINEL } imgtype_e; typedef enum { IMG_KEEPOPEN, IMG_CLOSEINBETWEEN } img_readtype_e; -typedef enum { PDF_BOX_SPEC_NONE, PDF_BOX_SPEC_MEDIA, PDF_BOX_SPEC_CROP, - PDF_BOX_SPEC_BLEED, PDF_BOX_SPEC_TRIM, PDF_BOX_SPEC_ART, +typedef enum { + PDF_BOX_SPEC_NONE, + PDF_BOX_SPEC_MEDIA, + PDF_BOX_SPEC_CROP, + PDF_BOX_SPEC_BLEED, + PDF_BOX_SPEC_TRIM, + PDF_BOX_SPEC_ART, PDF_BOX_SPEC_SENTINEL } pdfboxspec_e; -/**********************************************************************/ - typedef struct { int objnum; int index; /* /Im1, /Im2, ... */ @@ -113,100 +122,105 @@ typedef struct { int bbox[4]; dict_state state; int flags; + int luaref ; + boolean keepopen; + int errorlevel; + int pdfminorversion; union { pdf_stream_struct *pdfstream; png_img_struct *png; jpg_img_struct *jpg; jp2_img_struct *jp2; - /* jb2_img_struct *jb2; */ + /* jb2_img_struct *jb2; */ } img_struct; } image_dict; -# define img_objnum(N) ((N)->objnum) -# define img_index(N) ((N)->index) -# define img_dimen(N) ((N)->dimen) -# define img_width(N) ((N)->dimen.wd) -# define img_height(N) ((N)->dimen.ht) -# define img_depth(N) ((N)->dimen.dp) -# define img_transform(N) ((N)->transform) -# define img_xsize(N) ((N)->x_size) -# define img_ysize(N) ((N)->y_size) -# define img_xorig(N) ((N)->x_orig) -# define img_yorig(N) ((N)->y_orig) -# define img_xres(N) ((N)->x_res) -# define img_yres(N) ((N)->y_res) -# define img_rotation(N) ((N)->rotation) -# define img_colorspace(N) ((N)->colorspace) -# define img_group_ref(N) ((N)->group_ref) -# define img_totalpages(N) ((N)->total_pages) -# define img_pagenum(N) ((N)->page_num) -# define img_pagename(N) ((N)->pagename) -# define img_filename(N) ((N)->filename) -# define img_visiblefilename(N)((N)->visiblefilename) -# define img_filepath(N) ((N)->filepath) -# define img_attr(N) ((N)->attr) -# define img_file(N) ((N)->file) -# define img_type(N) ((N)->image_type) -# define img_procset(N) ((N)->procset) -# define img_colordepth(N) ((N)->color_depth) -# define img_pagebox(N) ((N)->page_box_spec) -# define img_bbox(N) ((N)->bbox) -# define img_state(N) ((N)->state) -# define img_flags(N) ((N)->flags) - -# define img_pdfstream_ptr(N) ((N)->img_struct.pdfstream) +# define img_objnum(N) ((N)->objnum) +# define img_index(N) ((N)->index) +# define img_dimen(N) ((N)->dimen) +# define img_width(N) ((N)->dimen.wd) +# define img_height(N) ((N)->dimen.ht) +# define img_depth(N) ((N)->dimen.dp) +# define img_transform(N) ((N)->transform) +# define img_xsize(N) ((N)->x_size) +# define img_ysize(N) ((N)->y_size) +# define img_xorig(N) ((N)->x_orig) +# define img_yorig(N) ((N)->y_orig) +# define img_xres(N) ((N)->x_res) +# define img_yres(N) ((N)->y_res) +# define img_rotation(N) ((N)->rotation) +# define img_colorspace(N) ((N)->colorspace) +# define img_group_ref(N) ((N)->group_ref) +# define img_totalpages(N) ((N)->total_pages) +# define img_pagenum(N) ((N)->page_num) +# define img_pagename(N) ((N)->pagename) +# define img_filename(N) ((N)->filename) +# define img_visiblefilename(N) ((N)->visiblefilename) +# define img_filepath(N) ((N)->filepath) +# define img_attr(N) ((N)->attr) +# define img_file(N) ((N)->file) +# define img_type(N) ((N)->image_type) +# define img_procset(N) ((N)->procset) +# define img_colordepth(N) ((N)->color_depth) +# define img_pagebox(N) ((N)->page_box_spec) +# define img_bbox(N) ((N)->bbox) +# define img_state(N) ((N)->state) +# define img_flags(N) ((N)->flags) +# define img_luaref(N) ((N)->luaref) +# define img_keepopen(N) ((N)->keepopen) +# define img_errorlevel(N) ((N)->errorlevel) +# define img_pdfminorversion(N) ((N)->pdfminorversion) + +# define img_pdfstream_ptr(N) ((N)->img_struct.pdfstream) # define img_pdfstream_stream(N) ((N)->img_struct.pdfstream->stream) -# define img_png_ptr(N) ((N)->img_struct.png) -# define img_png_png_ptr(N) ((N)->img_struct.png->png_ptr) -# define img_png_info_ptr(N) ((N)->img_struct.png->info_ptr) - -# define img_jpg_ptr(N) ((N)->img_struct.jpg) -# define img_jpg_color(N) ((N)->img_struct.jpg->color_space) +# define img_png_ptr(N) ((N)->img_struct.png) +# define img_png_png_ptr(N) ((N)->img_struct.png->png_ptr) +# define img_png_info_ptr(N) ((N)->img_struct.png->info_ptr) -# define img_jp2_ptr(N) ((N)->img_struct.jp2) +# define img_jpg_ptr(N) ((N)->img_struct.jpg) +# define img_jpg_color(N) ((N)->img_struct.jpg->color_space) -# define img_jb2_ptr(N) ((N)->img_struct.jb2) +# define img_jp2_ptr(N) ((N)->img_struct.jp2) -# define F_FLAG_BBOX (1 << 0) -# define F_FLAG_GROUP (1 << 1) +# define img_jb2_ptr(N) ((N)->img_struct.jb2) -# define img_set_bbox(N) (img_flags(N) |= F_FLAG_BBOX) -# define img_unset_bbox(N) (img_flags(N) &= ~F_FLAG_BBOX) -# define img_is_bbox(N) ((img_flags(N) & F_FLAG_BBOX) != 0) +# define F_FLAG_BBOX (1 << 0) +# define F_FLAG_GROUP (1 << 1) -# define img_set_group(N) (img_flags(N) |= F_FLAG_GROUP) -# define img_unset_group(N) (img_flags(N) &= ~F_FLAG_GROUP) -# define img_is_group(N) ((img_flags(N) & F_FLAG_GROUP) != 0) +# define img_set_bbox(N) (img_flags(N) |= F_FLAG_BBOX) +# define img_unset_bbox(N) (img_flags(N) &= ~F_FLAG_BBOX) +# define img_is_bbox(N) ((img_flags(N) & F_FLAG_BBOX) != 0) -# define epdf_xsize(a) img_xsize(idict_array[a]) -# define epdf_ysize(a) img_ysize(idict_array[a]) -# define epdf_orig_x(a) img_xorig(idict_array[a]) -# define epdf_orig_y(a) img_yorig(idict_array[a]) +# define img_set_group(N) (img_flags(N) |= F_FLAG_GROUP) +# define img_unset_group(N) (img_flags(N) &= ~F_FLAG_GROUP) +# define img_is_group(N) ((img_flags(N) & F_FLAG_GROUP) != 0) -# define is_pdf_image(a) ((img_type(idict_array[a]) == IMG_TYPE_PDF) || (img_type(idict_array[a]) == IMG_TYPE_PDFMEMSTREAM)) -# define is_png_image(a) (img_type(idict_array[a]) == IMG_TYPE_PNG) +# define epdf_xsize(a) img_xsize(idict_array[a]) +# define epdf_ysize(a) img_ysize(idict_array[a]) +# define epdf_orig_x(a) img_xorig(idict_array[a]) +# define epdf_orig_y(a) img_yorig(idict_array[a]) -# define img_is_refered(N) (img_index(N) != -1) +# define is_pdf_image(a) ((img_type(idict_array[a]) == IMG_TYPE_PDF) || (img_type(idict_array[a]) == IMG_TYPE_PDFMEMSTREAM)) +# define is_png_image(a) (img_type(idict_array[a]) == IMG_TYPE_PNG) -/**********************************************************************/ -/* image structure corresponds to pdfrefximage node */ +# define img_is_refered(N) (img_index(N) != -1) typedef struct { - scaled_whd dimen; /* requested/actual TeX dimensions */ + scaled_whd dimen; /* requested/actual TeX dimensions */ int transform; image_dict *dict; - int dict_ref; /* luaL_ref() reference */ + int dict_ref; /* luaL_ref() reference */ } image; -# define img_dict(N) ((N)->dict) -# define img_dictref(N) ((N)->dict_ref) +# define img_dict(N) ((N)->dict) +# define img_dictref(N) ((N)->dict_ref) -# define set_wd_running(N) (img_width(N) = null_flag) -# define set_ht_running(N) (img_height(N) = null_flag) -# define set_dp_running(N) (img_depth(N) = null_flag) -# define is_wd_running(N) (img_width(N) == null_flag) -# define is_ht_running(N) (img_height(N) == null_flag) -# define is_dp_running(N) (img_depth(N) == null_flag) +# define set_wd_running(N) (img_width(N) = null_flag) +# define set_ht_running(N) (img_height(N) = null_flag) +# define set_dp_running(N) (img_depth(N) = null_flag) +# define is_wd_running(N) (img_width(N) == null_flag) +# define is_ht_running(N) (img_height(N) == null_flag) +# define is_dp_running(N) (img_depth(N) == null_flag) -#endif /* IMAGE_H */ +#endif |