diff options
author | Ralph Giles <ralph.giles@artifex.com> | 2008-08-29 18:46:21 +0000 |
---|---|---|
committer | Ralph Giles <ralph.giles@artifex.com> | 2008-08-29 18:46:21 +0000 |
commit | 6ff2582d038f99b79178082b200bdfe73f734456 (patch) | |
tree | 6db04fc72813760fdc6912a15875ad83d57943df /gs/base/tttables.h | |
parent | 9d36ee856e41244d3cf0469fc0004d21e6911994 (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.h | 236 |
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 */ |