diff options
Diffstat (limited to 'Build/source/libs/libttf/extend/ftxkern.h')
-rw-r--r-- | Build/source/libs/libttf/extend/ftxkern.h | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/Build/source/libs/libttf/extend/ftxkern.h b/Build/source/libs/libttf/extend/ftxkern.h deleted file mode 100644 index 06e221e4be0..00000000000 --- a/Build/source/libs/libttf/extend/ftxkern.h +++ /dev/null @@ -1,181 +0,0 @@ -/******************************************************************* - * - * ftxkern.h 1.0 - * - * High-Level API Kerning extension - * - * 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. - * - * - * The kerning support is currently part of the engine extensions. - * - * This file should _not_ depend on engine internal types. - * - ******************************************************************/ - -#ifndef FTXKERN_H -#define FTXKERN_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /* The kerning support in FreeType is minimal. This means that */ - /* we do not try to interpret the kerning data in any way to */ - /* `cook' it for a user application. This API lets you access */ - /* directly the kerning tables found in the TrueType file; it's */ - /* up to the client application to apply its own processing on */ - /* these. */ - - /* The reason for this is that we generally do not encourage */ - /* feature-bloat of the core engine. Moreover, not all */ - /* libraries or font servers really need kerning data, or all */ - /* formats of this data. */ - - /************** kerning error codes *****************************/ - - /* we choose the class 0x0A for our errors, this should not */ - /* match with any error code class used in any other extension */ - -#define TT_Err_Invalid_Kerning_Table_Format 0x0A00 -#define TT_Err_Invalid_Kerning_Table 0x0A01 - - - /********** structures definitions ******************************/ - - /* Remember that all types and function are accessible by client */ - /* applications in this section, and thus should have the `TT_' */ - /* prefix. */ - - /* format 0 kerning pair */ - - struct TT_Kern_0_Pair_ - { - TT_UShort left; /* index of left glyph in pair */ - TT_UShort right; /* index of right glyph in pair */ - TT_FWord value; /* kerning value */ - }; - - typedef struct TT_Kern_0_Pair_ TT_Kern_0_Pair; - - - /* format 0 kerning subtable */ - - struct TT_Kern_0_ - { - TT_UShort nPairs; /* number of kerning pairs */ - - TT_UShort searchRange; /* these values are defined by the TT spec */ - TT_UShort entrySelector; /* for table searchs. */ - TT_UShort rangeShift; - - TT_Kern_0_Pair* pairs; /* a table of nPairs `pairs' */ - }; - - typedef struct TT_Kern_0_ TT_Kern_0; - - - /* format 2 kerning glyph class */ - - struct TT_Kern_2_Class_ - { - TT_UShort firstGlyph; /* first glyph in range */ - TT_UShort nGlyphs; /* number of glyphs in range */ - TT_UShort* classes; /* a table giving for each ranged glyph */ - /* its class offset in the subtable pairs */ - /* two-dimensional array */ - }; - - typedef struct TT_Kern_2_Class_ TT_Kern_2_Class; - - - /* format 2 kerning subtable */ - - struct TT_Kern_2_ - { - TT_UShort rowWidth; /* length of one row in bytes */ - TT_Kern_2_Class leftClass; /* left class table */ - TT_Kern_2_Class rightClass; /* right class table */ - TT_FWord* array; /* 2-dimensional kerning values array */ - }; - - typedef struct TT_Kern_2_ TT_Kern_2; - - - /* kerning subtable */ - - struct TT_Kern_Subtable_ - { - TT_Bool loaded; /* boolean; indicates whether the table is */ - /* loaded */ - TT_UShort version; /* table version number */ - TT_Long offset; /* file offset of table */ - TT_UShort length; /* length of table, _excluding_ header */ - TT_Byte coverage; /* lower 8 bit of the coverage table entry */ - TT_Byte format; /* the subtable format, as found in the */ - /* higher 8 bits of the coverage table entry */ - union - { - TT_Kern_0 kern0; - TT_Kern_2 kern2; - } t; - }; - - typedef struct TT_Kern_Subtable_ TT_Kern_Subtable; - - - struct TT_Kerning_ - { - TT_UShort version; /* kern table version number. starts at 0 */ - TT_UShort nTables; /* number of tables */ - - TT_Kern_Subtable* tables; /* the kerning sub-tables */ - }; - - typedef struct TT_Kerning_ TT_Kerning; - - - - /***************** high-level API extension **************************/ - - /* Initialize Kerning extension, must be called after */ - /* TT_Init_FreeType(). There is no need for a finalizer */ - EXPORT_DEF - TT_Error TT_Init_Kerning_Extension( TT_Engine engine ); - - /* Note on the implemented mechanism: */ - - /* The kerning table directory is loaded with the face through the */ - /* extension constructor. However, the tables will only be loaded */ - /* on demand, as they may represent a lot of data, unnecessary to */ - /* most applications. */ - - /* Queries a pointer to the kerning directory for the face object */ - EXPORT_DEF - TT_Error TT_Get_Kerning_Directory( TT_Face face, - TT_Kerning* directory ); - - /* Load the kerning table number `kern_index' in the kerning */ - /* directory. The table will stay in memory until the `face' */ - /* face is destroyed. */ - EXPORT_DEF - TT_Error TT_Load_Kerning_Table( TT_Face face, - TT_UShort kern_index ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXKERN_H */ - - -/* END */ |