From 79aa922282edd795d55bf06cf622ddf33884dff5 Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Wed, 17 Sep 2003 19:41:13 +0000 Subject: Initial Import --- TTF.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 TTF.h (limited to 'TTF.h') diff --git a/TTF.h b/TTF.h new file mode 100644 index 0000000..2513cc1 --- /dev/null +++ b/TTF.h @@ -0,0 +1,67 @@ +// TTF.h +////////////////////////////////////////////////////////////////////////////////////////////////////// +// Macros for TrueType portability +#define FS_2BYTE(p) ( ((unsigned short)((p)[0]) << 8) | (p)[1]) +#define FS_4BYTE(p) ( FS_2BYTE((p)+2) | ( (FS_2BYTE(p)+0L) << 16) ) +#define SWAPW(a) ((short) FS_2BYTE( (unsigned char *)(&a) )) +#define SWAPL(a) ((long) FS_4BYTE( (unsigned char *)(&a) )) + + +typedef short int16; +typedef unsigned short uint16; +typedef long int32; +typedef unsigned long uint32; +typedef long sfnt_TableTag; + +typedef struct { + uint16 platformID; + uint16 specificID; + uint16 languageID; + uint16 nameID; + uint16 length; + uint16 offset; +} sfnt_NameRecord; + +typedef struct { + uint16 format; + uint16 count; + uint16 stringOffset; +} sfnt_NamingTable; + +typedef struct { + sfnt_TableTag tag; + uint32 checkSum; + uint32 offset; + uint32 length; +} sfnt_DirectoryEntry; + +typedef struct { + int32 version; /* 0x10000 (1.0) */ + uint16 numOffsets; /* number of tables */ + uint16 searchRange; /* (max2 <= numOffsets)*16 */ + uint16 entrySelector; /* log2 (max2 <= numOffsets) */ + uint16 rangeShift; /* numOffsets*16-searchRange*/ + sfnt_DirectoryEntry table[1]; /* table[numOffsets] */ +} sfnt_OffsetTable; + +#define OFFSETTABLESIZE 12 /* not including any entries */ +#define tag_NamingTable 0x656d616e /* 'name' */ + +namespace TTF +{ + enum + { AppleUnicode = 0, + Macintosh = 1, + ISO = 2, + Microsoft = 3 }; + + enum + { Copyright = 0, + Family = 1, + Subfamily = 2, + ID = 3, + Name = 4, + Version = 5, + PostscriptName = 6, + Trademark = 7 }; +}; \ No newline at end of file -- cgit v1.2.3