summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/pdftexdir/writeimg.c
diff options
context:
space:
mode:
authorMartin Schröder <martin@oneiros.de>2008-03-23 16:38:33 +0000
committerMartin Schröder <martin@oneiros.de>2008-03-23 16:38:33 +0000
commit46b33fcf1608dbdc0e2f48761ae28d30fd520304 (patch)
tree72bc0f79bca1655628d163040b2348af836b9ed4 /Build/source/texk/web2c/pdftexdir/writeimg.c
parent0e50747f61798f158b03612ae1e892fbe1e6d979 (diff)
- import pdftex 1.40.8-alpha-20080323
- update xpdf to 3.02pl2 - update libpng to 1.2.25 git-svn-id: svn://tug.org/texlive/trunk@7095 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/pdftexdir/writeimg.c')
-rw-r--r--Build/source/texk/web2c/pdftexdir/writeimg.c27
1 files changed, 25 insertions, 2 deletions
diff --git a/Build/source/texk/web2c/pdftexdir/writeimg.c b/Build/source/texk/web2c/pdftexdir/writeimg.c
index 982eca48a40..080ab3a37a6 100644
--- a/Build/source/texk/web2c/pdftexdir/writeimg.c
+++ b/Build/source/texk/web2c/pdftexdir/writeimg.c
@@ -1,5 +1,5 @@
/*
-Copyright (c) 1996-2007 Han The Thanh, <thanh@pdftex.org>
+Copyright (c) 1996-2008 Han The Thanh, <thanh@pdftex.org>
This file is part of pdfTeX.
@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along
with pdfTeX; if not, write to the Free Software Foundation, Inc., 51
Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-$Id: writeimg.c 170 2007-07-06 21:00:55Z oneiros $
+$Id$
*/
#include "ptexlib.h"
@@ -38,6 +38,7 @@ integer epdf_selected_page;
integer epdf_num_pages;
integer epdf_page_box;
void *epdf_doc;
+integer epdf_lastGroupObjectNum;
static integer new_image_entry(void)
{
@@ -50,6 +51,7 @@ static integer new_image_entry(void)
image_ptr->width = 0;
image_ptr->height = 0;
image_ptr->colorspace_ref = 0;
+ image_ptr->group_ref = 0;
return image_ptr++ - image_array;
}
@@ -83,6 +85,11 @@ boolean ispdfimage(integer img)
return img_type(img) == IMAGE_TYPE_PDF;
}
+boolean ispngimage(integer img)
+{
+ return img_type(img) == IMAGE_TYPE_PNG;
+}
+
boolean checkimageb(integer procset)
{
return procset & IMAGE_COLOR_B;
@@ -135,6 +142,11 @@ integer imagecolordepth(integer img)
}
}
+integer imagegroupref(integer img)
+{
+ return img_group_ref(img);
+}
+
/*
Patch ImageTypeDetection 2003/02/08 by Heiko Oberdiek.
@@ -301,6 +313,7 @@ integer readimage(strnumber s, integer page_num, strnumber page_name,
pdf_ptr(img)->orig_y = bp2int(epdf_orig_y);
pdf_ptr(img)->selected_page = page_num;
pdf_ptr(img)->doc = epdf_doc;
+ img_group_ref(img) = epdf_lastGroupObjectNum;
break;
case IMAGE_TYPE_PNG:
img_pages(img) = 1;
@@ -348,12 +361,20 @@ void writeimage(integer img)
epdf_doc = pdf_ptr(img)->doc;
epdf_selected_page = pdf_ptr(img)->selected_page;
epdf_page_box = pdf_ptr(img)->page_box;
+ epdf_lastGroupObjectNum = img_group_ref(img);
write_epdf();
break;
default:
pdftex_fail("unknown type of image");
}
tex_printf(">");
+ if (img_type(img) == IMAGE_TYPE_PDF) {
+ write_additional_epdf_objects();
+ } else {
+ if (img_type(img) == IMAGE_TYPE_PNG) {
+ write_additional_png_objects();
+ }
+ }
cur_file_name = NULL;
}
@@ -462,6 +483,7 @@ void dumpimagemeta()
dumpinteger(img_yres(img));
dumpinteger(img_pages(img));
dumpinteger(img_colorspace_ref(img));
+ dumpinteger(img_group_ref(img));
/* the image_struct is not dumped at all, except for a few
variables that are needed to restore the contents */
@@ -496,6 +518,7 @@ void undumpimagemeta(integer pdfversion, integer pdfinclusionerrorlevel)
undumpinteger(img_yres(img));
undumpinteger(img_pages(img));
undumpinteger(img_colorspace_ref(img));
+ undumpinteger(img_group_ref(img));
/* if img_name(img)==NULL -- which it shouldn't be -- the next line
will trigger an assertion failure. */