summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'base/tttables.h')
-rw-r--r--base/tttables.h223
1 files changed, 223 insertions, 0 deletions
diff --git a/base/tttables.h b/base/tttables.h
new file mode 100644
index 00000000..b2ee990f
--- /dev/null
+++ b/base/tttables.h
@@ -0,0 +1,223 @@
+/* Copyright (C) 2001-2019 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 the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+
+
+/* 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 */