1/***************************************************************************/ 2/* */ 3/* svttcmap.h */ 4/* */ 5/* The FreeType TrueType/sfnt cmap extra information service. */ 6/* */ 7/* Copyright 2003-2015 by */ 8/* Masatake YAMATO, Redhat K.K., */ 9/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 10/* */ 11/* This file is part of the FreeType project, and may only be used, */ 12/* modified, and distributed under the terms of the FreeType project */ 13/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 14/* this file you indicate that you have read the license and */ 15/* understand and accept it fully. */ 16/* */ 17/***************************************************************************/ 18 19/* Development of this service is support of 20 Information-technology Promotion Agency, Japan. */ 21 22#ifndef __SVTTCMAP_H__ 23#define __SVTTCMAP_H__ 24 25#include FT_INTERNAL_SERVICE_H 26#include FT_TRUETYPE_TABLES_H 27 28 29FT_BEGIN_HEADER 30 31 32#define FT_SERVICE_ID_TT_CMAP "tt-cmaps" 33 34 35 /*************************************************************************/ 36 /* */ 37 /* <Struct> */ 38 /* TT_CMapInfo */ 39 /* */ 40 /* <Description> */ 41 /* A structure used to store TrueType/sfnt specific cmap information */ 42 /* which is not covered by the generic @FT_CharMap structure. This */ 43 /* structure can be accessed with the @FT_Get_TT_CMap_Info function. */ 44 /* */ 45 /* <Fields> */ 46 /* language :: */ 47 /* The language ID used in Mac fonts. Definitions of values are in */ 48 /* `ttnameid.h'. */ 49 /* */ 50 /* format :: */ 51 /* The cmap format. OpenType 1.5 defines the formats 0 (byte */ 52 /* encoding table), 2~(high-byte mapping through table), 4~(segment */ 53 /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */ 54 /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */ 55 /* coverage), and 14 (Unicode Variation Sequences). */ 56 /* */ 57 typedef struct TT_CMapInfo_ 58 { 59 FT_ULong language; 60 FT_Long format; 61 62 } TT_CMapInfo; 63 64 65 typedef FT_Error 66 (*TT_CMap_Info_GetFunc)( FT_CharMap charmap, 67 TT_CMapInfo *cmap_info ); 68 69 70 FT_DEFINE_SERVICE( TTCMaps ) 71 { 72 TT_CMap_Info_GetFunc get_cmap_info; 73 }; 74 75#ifndef FT_CONFIG_OPTION_PIC 76 77#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ 78 static const FT_Service_TTCMapsRec class_ = \ 79 { \ 80 get_cmap_info_ \ 81 }; 82 83#else /* FT_CONFIG_OPTION_PIC */ 84 85#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ 86 void \ 87 FT_Init_Class_ ## class_( FT_Library library, \ 88 FT_Service_TTCMapsRec* clazz ) \ 89 { \ 90 FT_UNUSED( library ); \ 91 \ 92 clazz->get_cmap_info = get_cmap_info_; \ 93 } 94 95#endif /* FT_CONFIG_OPTION_PIC */ 96 97 /* */ 98 99 100FT_END_HEADER 101 102#endif /* __SVTTCMAP_H__ */ 103 104 105/* END */ 106