summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/image/image.h
diff options
context:
space:
mode:
authorTaco Hoekwater <taco@elvenkind.com>2010-04-04 13:55:46 +0000
committerTaco Hoekwater <taco@elvenkind.com>2010-04-04 13:55:46 +0000
commitf372862c42d234710b6057449b46818e63181c90 (patch)
treea9ebec66dd31ac37aed442502ebd1b9fe76245ec /Build/source/texk/web2c/luatexdir/image/image.h
parent2dad291ab056f30816e0aea61970f38033c2f6a5 (diff)
import luatex 0.60.0 (with small local changes, see luatexdir/ChangeLog)
and do an autoreconf git-svn-id: svn://tug.org/texlive/trunk@17680 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/image/image.h')
-rw-r--r--Build/source/texk/web2c/luatexdir/image/image.h94
1 files changed, 48 insertions, 46 deletions
diff --git a/Build/source/texk/web2c/luatexdir/image/image.h b/Build/source/texk/web2c/luatexdir/image/image.h
index a2d47f6a471..c4d0c3963f7 100644
--- a/Build/source/texk/web2c/luatexdir/image/image.h
+++ b/Build/source/texk/web2c/luatexdir/image/image.h
@@ -1,7 +1,7 @@
/* image.h
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
- Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2010 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -18,23 +18,20 @@
You should have received a copy of the GNU General Public License along
with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
-/* $Id: image.h 2336 2009-04-19 08:38:24Z hhenkel $ */
+/* $Id: image.h 3388 2010-01-26 10:59:04Z taco $ */
#ifndef IMAGE_H
# define IMAGE_H
# include <png.h>
+# include "pdf/pdftypes.h" /* for scaled_whd */
# define JPG_UINT16 unsigned int
# define JPG_UINT32 unsigned long
# define JPG_UINT8 unsigned char
-# define IMAGE_COLOR_B 1
-# define IMAGE_COLOR_C 2
-# define IMAGE_COLOR_I 4
-
-extern integer zround(double); /* from zround.c */
-# define bp2int(p) zround(p * (one_hundred_bp / 100.0))
+extern int do_zround(double r); /* from utils.c */
+# define bp2int(p) do_zround(p * (one_hundred_bp / 100.0))
# define int2bp(i) (i * 100.0 / one_hundred_bp)
# define TYPE_IMG "image"
@@ -83,31 +80,33 @@ typedef enum { PDF_BOX_SPEC_NONE, PDF_BOX_SPEC_MEDIA, PDF_BOX_SPEC_CROP,
/**********************************************************************/
typedef struct {
- integer objnum;
- integer index; /* /Im1, /Im2, ... */
- integer x_size; /* dimensions in pixel counts as in JPG/PNG/JBIG2 file */
- integer y_size;
- integer x_orig; /* origin in sp for PDF files */
- integer y_orig;
- integer x_res; /* pixel resolution as in JPG/PNG/JBIG2 file */
- integer y_res;
- integer rotation; /* rotation (multiples of 90 deg.) for PDF files */
- integer colorspace; /* number of /ColorSpace object */
- integer group_ref; /* if it's <=0, the page has no group */
- integer total_pages;
- integer page_num; /* requested page (by number) */
+ int objnum;
+ int index; /* /Im1, /Im2, ... */
+ scaled_whd dimen; /* TeX dimensions given to \pdfximage */
+ int transform; /* transform given to \pdfximage */
+ int x_size; /* dimensions in pixel counts as in JPG/PNG/JBIG2 file */
+ int y_size;
+ int x_orig; /* origin in sp for PDF files */
+ int y_orig;
+ int x_res; /* pixel resolution as in JPG/PNG/JBIG2 file */
+ int y_res;
+ int rotation; /* rotation (multiples of 90 deg.) for PDF files */
+ int colorspace; /* number of /ColorSpace object */
+ int group_ref; /* if it's <=0, the page has no group */
+ int total_pages;
+ int page_num; /* requested page (by number) */
char *pagename; /* requested page (by name) */
char *filename; /* requested raw file name */
char *filepath; /* full file path after kpathsea */
char *attr; /* additional image dict entries */
FILE *file;
imgtype_e image_type;
- int color_space; /* used color space. See JPG_ constants */
+ int procset; /* /ProcSet flags */
int color_depth; /* color depth */
pdfboxspec_e page_box_spec; /* PDF page box spec.: media/crop/bleed/trim/art */
- integer bbox[4];
+ int bbox[4];
dict_state state;
- integer flags;
+ int flags;
union {
pdf_stream_struct *pdfstream;
png_img_struct *png;
@@ -118,6 +117,11 @@ typedef struct {
# 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)
@@ -135,11 +139,12 @@ typedef struct {
# define img_attr(N) ((N)->attr)
# define img_file(N) ((N)->file)
# define img_type(N) ((N)->image_type)
-# define img_color(N) ((N)->color_space)
+# 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_pdfstream_stream(N) ((N)->img_struct.pdfstream->stream)
@@ -154,42 +159,39 @@ typedef struct {
# define img_jb2_ptr(N) ((N)->img_struct.jb2)
# define F_FLAG_BBOX (1 << 0)
+# define F_FLAG_GROUP (1 << 1)
# 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 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 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 is_pdf_image(a) (img_type(idict_array[a]) == IMG_TYPE_PDF)
+# define is_png_image(a) (img_type(idict_array[a]) == IMG_TYPE_PNG)
+
+# define img_is_refered(N) (img_index(N) != -1)
+
/**********************************************************************/
+/* image structure corresponds to pdfrefximage node */
typedef struct {
- integer width; /* requested/actual TeX dimensions */
- integer height;
- integer depth;
- integer transform;
- integer flags;
+ scaled_whd dimen; /* requested/actual TeX dimensions */
+ int transform;
image_dict *dict;
- int array_idx; /* index within img_array */
int dict_ref; /* luaL_ref() reference */
} image;
-# define img_width(N) ((N)->width)
-# define img_height(N) ((N)->height)
-# define img_depth(N) ((N)->depth)
-# define img_transform(N) ((N)->transform)
-# define img_flags(N) ((N)->flags)
# define img_dict(N) ((N)->dict)
-# define img_arrayidx(N) ((N)->array_idx)
# define img_dictref(N) ((N)->dict_ref)
-# define img_is_refered(N) (img_arrayidx(N) != -1)
-
-# define F_FLAG_SCALED (1 << 0)
-
-# define img_flags(N) ((N)->flags)
-# define img_set_scaled(N) (img_flags(N) |= F_FLAG_SCALED)
-# define img_unset_scaled(N) (img_flags(N) &= ~F_FLAG_SCALED)
-# define img_is_scaled(N) ((img_flags(N) & F_FLAG_SCALED) != 0)
-
# 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)