summaryrefslogtreecommitdiff
path: root/tools/gslite/gslt_font_int.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gslite/gslt_font_int.h')
-rw-r--r--tools/gslite/gslt_font_int.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/tools/gslite/gslt_font_int.h b/tools/gslite/gslt_font_int.h
new file mode 100644
index 000000000..3fe0001ba
--- /dev/null
+++ b/tools/gslite/gslt_font_int.h
@@ -0,0 +1,107 @@
+/* Copyright (C) 2006 artofcode LLC.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied, modified
+ or distributed except as expressly authorized under the terms of that
+ license. Refer to licensing information at http://www.artifex.com/
+ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
+ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
+*/
+
+/* No shortage of gslib headers to include... */
+
+#ifndef GSLITE
+#define GSLITE
+#endif
+
+#include <stdlib.h>
+#include "stdio_.h"
+#include "math_.h"
+#include "string_.h"
+
+#include "gp.h"
+
+#include "gscdefs.h"
+#include "gserror.h"
+#include "gserrors.h"
+#include "gslib.h"
+#include "gsmatrix.h"
+#include "gsstate.h"
+#include "gscoord.h"
+#include "gspaint.h"
+#include "gspath.h"
+#include "gspath2.h"
+#include "gsutil.h"
+#include "gsgdata.h"
+
+#include "gx.h"
+#include "gxdevice.h"
+#include "gxmatrix.h"
+#include "gxpath.h"
+
+#include "gxfont.h"
+#include "gxchar.h"
+#include "gxtype1.h"
+#include "gxfont1.h"
+#include "gxfont42.h"
+#include "gxfcache.h"
+
+#include "gzstate.h"
+#include "gzpath.h"
+
+/*
+ * Font API internals.
+ */
+
+struct gslt_font_s
+{
+ byte *data;
+ int length;
+ gs_font *font;
+
+ int subfontid;
+ int cmaptable;
+ int cmapsubcount;
+ int cmapsubtable;
+ int usepua;
+
+ /* these are for CFF opentypes only */
+ byte *cffdata;
+ byte *cffend;
+ byte *gsubrs;
+ byte *subrs;
+ byte *charstrings;
+};
+
+int gslt_find_sfnt_table(struct gslt_font_s *xf, char *name, int *lengthp);
+int gslt_load_sfnt_cmap(struct gslt_font_s *xf);
+int gslt_init_truetype_font(gs_memory_t *mem, gs_font_dir *xfc, struct gslt_font_s *xf);
+int gslt_init_postscript_font(gs_memory_t *mem, gs_font_dir *xfc, struct gslt_font_s *xf);
+
+/*
+ * Big-endian memory accessor functions
+ */
+
+static inline int s16(byte *p)
+{
+ return (signed short)( (p[0] << 8) | p[1] );
+}
+
+static inline int u16(byte *p)
+{
+ return (p[0] << 8) | p[1];
+}
+
+static inline int u24(byte *p)
+{
+ return (p[0] << 16) | (p[1] << 8) | p[2];
+}
+
+static inline int u32(byte *p)
+{
+ return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
+}
+