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