forked from KolibriOS/kolibrios
6496d04506
This version of menuetlibc was taken from revision 4743, right before I made any changes git-svn-id: svn://kolibrios.org@4973 a494cfbc-eb01-0410-851d-a64ba20cac60
216 lines
4.6 KiB
C
216 lines
4.6 KiB
C
/*******************************************************************
|
|
*
|
|
* 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 */
|