| /***************************************************************************/ |
| /* */ |
| /* svpscmap.h */ |
| /* */ |
| /* The FreeType PostScript charmap service (specification). */ |
| /* */ |
| /* Copyright 2003 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 __SVPSCMAP_H__ |
| #define __SVPSCMAP_H__ |
| |
| |
| FT_BEGIN_HEADER |
| |
| |
| #define FT_SERVICE_ID_POSTSCRIPT_CMAPS "postscript-cmaps" |
| |
| |
| /* |
| * Adobe glyph name to unicode value |
| */ |
| typedef FT_UInt32 |
| (*PS_Unicode_ValueFunc)( const char* glyph_name ); |
| |
| /* |
| * Unicode value to Adobe glyph name index. 0xFFFF if not found. |
| */ |
| typedef FT_UInt |
| (*PS_Unicode_Index_Func)( FT_UInt num_glyphs, |
| const char** glyph_names, |
| FT_ULong unicode ); |
| |
| /* |
| * Macintosh name id to glyph name. NULL if invalid index. |
| */ |
| typedef const char* |
| (*PS_Macintosh_Name_Func)( FT_UInt name_index ); |
| |
| /* |
| * Adobe standard string ID to glyph name. NULL if invalid index. |
| */ |
| typedef const char* |
| (*PS_Adobe_Std_Strings_Func)( FT_UInt string_index ); |
| |
| /* |
| * Simple unicode -> glyph index charmap built from font glyph names |
| * table. |
| */ |
| typedef struct PS_UniMap_ |
| { |
| FT_UInt unicode; |
| FT_UInt glyph_index; |
| |
| } PS_UniMap; |
| |
| |
| typedef struct PS_Unicodes_ |
| { |
| FT_UInt num_maps; |
| PS_UniMap* maps; |
| |
| } PS_Unicodes; |
| |
| |
| typedef FT_Error |
| (*PS_Unicodes_InitFunc)( FT_Memory memory, |
| FT_UInt num_glyphs, |
| const char** glyph_names, |
| PS_Unicodes* unicodes ); |
| |
| typedef FT_UInt |
| (*PS_Unicodes_CharIndexFunc)( PS_Unicodes* unicodes, |
| FT_UInt unicode ); |
| |
| typedef FT_ULong |
| (*PS_Unicodes_CharNextFunc)( PS_Unicodes* unicodes, |
| FT_ULong unicode ); |
| |
| |
| FT_DEFINE_SERVICE( PsCMaps ) |
| { |
| PS_Unicode_ValueFunc unicode_value; |
| |
| PS_Unicodes_InitFunc unicodes_init; |
| PS_Unicodes_CharIndexFunc unicodes_char_index; |
| PS_Unicodes_CharNextFunc unicodes_char_next; |
| |
| PS_Macintosh_Name_Func macintosh_name; |
| PS_Adobe_Std_Strings_Func adobe_std_strings; |
| const unsigned short* adobe_std_encoding; |
| const unsigned short* adobe_expert_encoding; |
| }; |
| |
| /* */ |
| |
| |
| FT_END_HEADER |
| |
| |
| #endif /* __SVPSCMAP_H__ */ |
| |
| |
| /* END */ |