kolibrios/programs/develop/libraries/menuetlibc/include/freetype/tttables.h
CleverMouse 4f5f25a6c2 add menuetlibc sources
git-svn-id: svn://kolibrios.org@1882 a494cfbc-eb01-0410-851d-a64ba20cac60
2011-02-21 13:30:08 +00:00

216 lines
4.6 KiB
C
Executable File

/*******************************************************************
*
* 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 */