nuclear@0: /***************************************************************************/ nuclear@0: /* */ nuclear@0: /* svttcmap.h */ nuclear@0: /* */ nuclear@0: /* The FreeType TrueType/sfnt cmap extra information service. */ nuclear@0: /* */ nuclear@0: /* Copyright 2003 by */ nuclear@0: /* Masatake YAMATO, Redhat K.K. */ nuclear@0: /* */ nuclear@0: /* Copyright 2003, 2008 by */ nuclear@0: /* David Turner, Robert Wilhelm, and Werner Lemberg. */ nuclear@0: /* */ nuclear@0: /* This file is part of the FreeType project, and may only be used, */ nuclear@0: /* modified, and distributed under the terms of the FreeType project */ nuclear@0: /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ nuclear@0: /* this file you indicate that you have read the license and */ nuclear@0: /* understand and accept it fully. */ nuclear@0: /* */ nuclear@0: /***************************************************************************/ nuclear@0: nuclear@0: /* Development of this service is support of nuclear@0: Information-technology Promotion Agency, Japan. */ nuclear@0: nuclear@0: #ifndef __SVTTCMAP_H__ nuclear@0: #define __SVTTCMAP_H__ nuclear@0: nuclear@0: #include FT_INTERNAL_SERVICE_H nuclear@0: #include FT_TRUETYPE_TABLES_H nuclear@0: nuclear@0: nuclear@0: FT_BEGIN_HEADER nuclear@0: nuclear@0: nuclear@0: #define FT_SERVICE_ID_TT_CMAP "tt-cmaps" nuclear@0: nuclear@0: nuclear@0: /*************************************************************************/ nuclear@0: /* */ nuclear@0: /* */ nuclear@0: /* TT_CMapInfo */ nuclear@0: /* */ nuclear@0: /* */ nuclear@0: /* A structure used to store TrueType/sfnt specific cmap information */ nuclear@0: /* which is not covered by the generic @FT_CharMap structure. This */ nuclear@0: /* structure can be accessed with the @FT_Get_TT_CMap_Info function. */ nuclear@0: /* */ nuclear@0: /* */ nuclear@0: /* language :: */ nuclear@0: /* The language ID used in Mac fonts. Definitions of values are in */ nuclear@0: /* freetype/ttnameid.h. */ nuclear@0: /* */ nuclear@0: /* format :: */ nuclear@0: /* The cmap format. OpenType 1.5 defines the formats 0 (byte */ nuclear@0: /* encoding table), 2~(high-byte mapping through table), 4~(segment */ nuclear@0: /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */ nuclear@0: /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */ nuclear@0: /* coverage), and 14 (Unicode Variation Sequences). */ nuclear@0: /* */ nuclear@0: typedef struct TT_CMapInfo_ nuclear@0: { nuclear@0: FT_ULong language; nuclear@0: FT_Long format; nuclear@0: nuclear@0: } TT_CMapInfo; nuclear@0: nuclear@0: nuclear@0: typedef FT_Error nuclear@0: (*TT_CMap_Info_GetFunc)( FT_CharMap charmap, nuclear@0: TT_CMapInfo *cmap_info ); nuclear@0: nuclear@0: nuclear@0: FT_DEFINE_SERVICE( TTCMaps ) nuclear@0: { nuclear@0: TT_CMap_Info_GetFunc get_cmap_info; nuclear@0: }; nuclear@0: nuclear@0: #ifndef FT_CONFIG_OPTION_PIC nuclear@0: nuclear@0: #define FT_DEFINE_SERVICE_TTCMAPSREC(class_, get_cmap_info_) \ nuclear@0: static const FT_Service_TTCMapsRec class_ = \ nuclear@0: { \ nuclear@0: get_cmap_info_ \ nuclear@0: }; nuclear@0: nuclear@0: #else /* FT_CONFIG_OPTION_PIC */ nuclear@0: nuclear@0: #define FT_DEFINE_SERVICE_TTCMAPSREC(class_, get_cmap_info_) \ nuclear@0: void \ nuclear@0: FT_Init_Class_##class_( FT_Library library, \ nuclear@0: FT_Service_TTCMapsRec* clazz) \ nuclear@0: { \ nuclear@0: FT_UNUSED(library); \ nuclear@0: clazz->get_cmap_info = get_cmap_info_; \ nuclear@0: } nuclear@0: nuclear@0: #endif /* FT_CONFIG_OPTION_PIC */ nuclear@0: nuclear@0: /* */ nuclear@0: nuclear@0: nuclear@0: FT_END_HEADER nuclear@0: nuclear@0: #endif /* __SVTTCMAP_H__ */ nuclear@0: nuclear@0: nuclear@0: /* END */