summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/pdf/pdfobj.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/pdf/pdfobj.h')
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfobj.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfobj.h b/Build/source/texk/web2c/luatexdir/pdf/pdfobj.h
new file mode 100644
index 00000000000..35325a1e8bb
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfobj.h
@@ -0,0 +1,66 @@
+/* pdfobj.h
+
+ Copyright 2009 Taco Hoekwater <taco@luatex.org>
+
+ This file is part of LuaTeX.
+
+ LuaTeX is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ LuaTeX is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
+
+/* $Id: pdfobj.h 3261 2009-12-18 11:38:21Z taco $ */
+
+#ifndef PDFOBJ_H
+# define PDFOBJ_H
+
+/* data structure for \.{\\pdfobj} and \.{\\pdfrefobj} */
+
+# define set_pdf_obj_objnum(A, B) pdf_obj_objnum(A) = (B)
+
+# define pdfmem_obj_size 5 /* size of memory in |mem| which |obj_data_ptr| holds */
+
+# define obj_obj_data(pdf, A) pdf->mem[obj_data_ptr((pdf), (A)) + 0] /* object data */
+# define obj_obj_stream_attr(pdf, A) pdf->mem[obj_data_ptr((pdf), (A)) + 1] /* additional attributes into stream dict */
+# define obj_obj_flags(pdf, A) pdf->mem[obj_data_ptr((pdf), (A)) + 2] /* stream/file flags */
+# define obj_obj_pdfcompresslevel(pdf, A) pdf->mem[obj_data_ptr((pdf), (A)) + 3] /* overrides \pdfcompresslevel */
+# define obj_obj_pdfoslevel(pdf, A) pdf->mem[obj_data_ptr((pdf), (A)) + 4] /* for object stream compression */
+
+/* define set_obj_obj_data(pdf, A, B) obj_obj_data((pdf), (A)) = (B) */
+/* define set_obj_obj_flags(pdf, A, B) obj_obj_flags((pdf), (A)) = (B) */
+/* define set_obj_obj_stream_attr(pdf, A, B) obj_obj_stream_attr((pdf), (A)) = (B) */
+/* define set_obj_obj_pdfcompresslevel(pdf, A, B) obj_obj_pdfcompresslevel((pdf), (A)) = (B) */
+/* define set_obj_obj_pdfoslevel(pdf, A, B) obj_obj_pdfoslevel((pdf), (A)) = (B) */
+
+/**********************************************************************/
+
+# define OBJ_FLAG_ISSTREAM (1 << 0)
+# define OBJ_FLAG_ISFILE (1 << 1)
+
+# define obj_obj_is_stream(pdf,A) ((obj_obj_flags((pdf), (A)) & OBJ_FLAG_ISSTREAM) != 0)
+# define set_obj_obj_is_stream(pdf,A) ((obj_obj_flags((pdf), (A)) |= OBJ_FLAG_ISSTREAM))
+# define unset_obj_obj_is_stream(pdf,A) ((obj_obj_flags((pdf), (A)) &= ~OBJ_FLAG_ISSTREAM))
+
+# define obj_obj_is_file(pdf,A) ((obj_obj_flags((pdf), (A)) & OBJ_FLAG_ISFILE) != 0)
+# define set_obj_obj_is_file(pdf,A) ((obj_obj_flags((pdf), (A)) |= OBJ_FLAG_ISFILE))
+# define unset_obj_obj_is_file(pdf,A) ((obj_obj_flags((pdf), (A)) &= ~OBJ_FLAG_ISFILE))
+
+/**********************************************************************/
+
+extern int pdf_last_obj;
+
+extern void init_obj_obj(PDF pdf, int k);
+extern void pdf_write_obj(PDF pdf, int n);
+extern void scan_obj(PDF pdf);
+extern void scan_refobj(PDF pdf);
+extern void pdf_ref_obj(PDF pdf, halfword p);
+
+#endif