summaryrefslogtreecommitdiff
path: root/gs/base/tttables.h
diff options
context:
space:
mode:
authorRalph Giles <ralph.giles@artifex.com>2008-08-29 18:46:21 +0000
committerRalph Giles <ralph.giles@artifex.com>2008-08-29 18:46:21 +0000
commit6ff2582d038f99b79178082b200bdfe73f734456 (patch)
tree6db04fc72813760fdc6912a15875ad83d57943df /gs/base/tttables.h
parent9d36ee856e41244d3cf0469fc0004d21e6911994 (diff)
Split the source tree into two new directories.
PSSRC files are now in 'gs/psi'. GLSRC files are now in 'gs/base'. This is to facilitate build modularization and merging in the ghostpdl tree. NOTE: msvc32.mak is now in psi, not src. git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@9048 a1074d23-0009-0410-80fe-cf8c14f379e6
Diffstat (limited to 'gs/base/tttables.h')
-rw-r--r--gs/base/tttables.h236
1 files changed, 236 insertions, 0 deletions
diff --git a/gs/base/tttables.h b/gs/base/tttables.h
new file mode 100644
index 000000000..2a4564890
--- /dev/null
+++ b/gs/base/tttables.h
@@ -0,0 +1,236 @@
+/* Copyright (C) 2001-2006 Artifex Software, Inc.
+ 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.
+*/
+
+/* $Id$ */
+
+/* Changes after FreeType: cut out the TrueType instruction interpreter. */
+
+
+/*******************************************************************
+ *
+ * tttables.h 1.1
+ *
+ * TrueType Tables structures and handling (specification).
+ *
+ * Copyright 1996-1998 by
+ * David Turner, Robert Wilhelm, and Werner Lemberg.
+ *
+ * This file is part of the FreeType project, and may only be used
+ * modified and distributed under the terms of the FreeType project
+ * license, LICENSE.TXT. By continuing to use, modify, or distribute
+ * this file you indicate that you have read the license and
+ * understand and accept it fully.
+ *
+ ******************************************************************/
+
+#ifndef TTTABLES_H
+#define TTTABLES_H
+
+#include "tttypes.h"
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+ /***********************************************************************/
+ /* */
+ /* TrueType Table Types */
+ /* */
+ /***********************************************************************/
+
+ /* TrueType Collection Header */
+
+ struct _TTTCHeader
+ {
+ Long Tag;
+ TT_Fixed version;
+ ULong DirCount;
+ PULong TableDirectory;
+ };
+
+ typedef struct _TTTCHeader TTTCHeader;
+ typedef TTTCHeader* PTTCHeader;
+
+
+ /* TrueType Table Directory type */
+
+ struct _TTableDir
+ {
+ TT_Fixed version; /* should be 0x10000 */
+ UShort numTables; /* number of tables */
+
+ UShort searchRange; /* These parameters are only used */
+ UShort entrySelector; /* for a dichotomy search in the */
+ UShort rangeShift; /* directory. We ignore them. */
+ };
+
+ typedef struct _TTableDir TTableDir;
+ typedef TTableDir* PTableDir;
+
+
+ /* The 'TableDir' is followed by 'numTables' TableDirEntries */
+
+ struct _TTableDirEntry
+ {
+ Long Tag; /* table type */
+ Long CheckSum; /* table checksum */
+ Long Offset; /* table file offset */
+ Long Length; /* table length */
+ };
+
+ typedef struct _TTableDirEntry TTableDirEntry;
+ typedef TTableDirEntry* PTableDirEntry;
+
+
+ /* 'cmap' tables */
+
+ struct _TCMapDir
+ {
+ UShort tableVersionNumber;
+ UShort numCMaps;
+ };
+
+ typedef struct _TCMapDir TCMapDir;
+ typedef TCMapDir* PCMapDir;
+
+ struct _TCMapDirEntry
+ {
+ UShort platformID;
+ UShort platformEncodingID;
+ Long offset;
+ };
+
+ typedef struct _TCMapDirEntry TCMapDirEntry;
+ typedef TCMapDirEntry* PCMapDirEntries;
+
+
+ /* 'maxp' Maximum Profiles table */
+
+ struct _TMaxProfile
+ {
+ TT_Fixed version;
+ UShort numGlyphs,
+ maxPoints,
+ maxContours,
+ maxCompositePoints,
+ maxCompositeContours,
+ maxZones,
+ maxTwilightPoints,
+ maxStorage,
+ maxFunctionDefs,
+ maxInstructionDefs,
+ maxStackElements,
+ maxSizeOfInstructions,
+ maxComponentElements,
+ maxComponentDepth;
+ };
+
+ typedef struct _TMaxProfile TMaxProfile;
+ typedef TMaxProfile* PMaxProfile;
+
+
+ /* table "gasp" */
+
+# define GASP_GRIDFIT 0x01
+# define GASP_DOGRAY 0x02
+
+ struct _GaspRange
+ {
+ UShort maxPPEM;
+ UShort gaspFlag;
+ };
+
+ typedef struct _GaspRange GaspRange;
+
+
+ struct _TGasp
+ {
+ UShort version;
+ UShort numRanges;
+ GaspRange* gaspRanges;
+ };
+
+ typedef struct _TGasp TGasp;
+
+
+ /* table "head" - now defined in freetype.h */
+ /* table "hhea" - now defined in freetype.h */
+
+
+ /* table "HMTX" */
+
+ struct _TLongHorMetric
+ {
+ UShort advance_Width;
+ Short lsb;
+ };
+
+ typedef struct _TLongHorMetric TLongHorMetric;
+ typedef TLongHorMetric* PTableHorMetrics;
+
+
+ /* 'OS/2' table - now defined in freetype.h */
+ /* "post" table - now defined in freetype.h */
+
+
+ /* 'loca' location table type */
+
+ struct _TLoca
+ {
+ UShort Size;
+ PStorage Table;
+ };
+
+ typedef struct _TLoca TLoca;
+
+
+ /* table "name" */
+
+ struct _TNameRec
+ {
+ UShort platformID;
+ UShort encodingID;
+ UShort languageID;
+ UShort nameID;
+ UShort stringLength;
+ UShort stringOffset;
+
+ /* this last field is not defined in the spec */
+ /* but used by the FreeType engine */
+
+ PByte string;
+ };
+
+ typedef struct _TNameRec TNameRec;
+
+
+ struct _TName_Table
+ {
+ UShort format;
+ UShort numNameRecords;
+ UShort storageOffset;
+ TNameRec* names;
+ PByte storage;
+ };
+
+ typedef struct _TName_Table TName_Table;
+
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* TTTABLES_H */
+
+
+/* END */