FreeType 1.31.1
This commit is contained in:
215
lib/tttables.h
Normal file
215
lib/tttables.h
Normal file
@@ -0,0 +1,215 @@
|
||||
/*******************************************************************
|
||||
*
|
||||
* tttables.h 1.1
|
||||
*
|
||||
* TrueType Tables structures and handling (specification).
|
||||
*
|
||||
* Copyright 1996-1999 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 "ttconfig.h"
|
||||
#include "tttypes.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/***********************************************************************/
|
||||
/* */
|
||||
/* TrueType Table Types */
|
||||
/* */
|
||||
/***********************************************************************/
|
||||
|
||||
/* TrueType Collection Header */
|
||||
|
||||
struct TTTCHeader_
|
||||
{
|
||||
ULong 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_
|
||||
{
|
||||
ULong Tag; /* table type */
|
||||
ULong CheckSum; /* table checksum */
|
||||
ULong Offset; /* table file offset */
|
||||
ULong 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 */
|
||||
|
||||
|
||||
/* tables "HMTX" and "VMTX" */
|
||||
|
||||
struct TLongMetrics_
|
||||
{
|
||||
UShort advance;
|
||||
Short bearing;
|
||||
};
|
||||
|
||||
typedef struct TLongMetrics_ TLongMetrics, *PLongMetrics;
|
||||
|
||||
typedef Short TShortMetrics, *PShortMetrics;
|
||||
|
||||
/* '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 */
|
||||
Reference in New Issue
Block a user