1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* svttcmap.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* The FreeType TrueType/sfnt cmap extra information service. */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 7049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Copyright 2003 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Masatake YAMATO, Redhat K.K. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang/* Copyright 2003, 2008, 2009, 2012 by */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Development of this service is support of 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project Information-technology Promotion Agency, Japan. */ 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __SVTTCMAP_H__ 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __SVTTCMAP_H__ 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_INTERNAL_SERVICE_H 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_TRUETYPE_TABLES_H 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 34e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#define FT_SERVICE_ID_TT_CMAP "tt-cmaps" 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Struct> */ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* TT_CMapInfo */ 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A structure used to store TrueType/sfnt specific cmap information */ 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* which is not covered by the generic @FT_CharMap structure. This */ 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* structure can be accessed with the @FT_Get_TT_CMap_Info function. */ 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Fields> */ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* language :: */ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The language ID used in Mac fonts. Definitions of values are in */ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* freetype/ttnameid.h. */ 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 520a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* format :: */ 530a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* The cmap format. OpenType 1.5 defines the formats 0 (byte */ 540a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* encoding table), 2~(high-byte mapping through table), 4~(segment */ 550a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */ 560a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */ 570a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* coverage), and 14 (Unicode Variation Sequences). */ 580a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* */ 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct TT_CMapInfo_ 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 61e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang FT_ULong language; 62e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang FT_Long format; 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } TT_CMapInfo; 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef FT_Error 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project (*TT_CMap_Info_GetFunc)( FT_CharMap charmap, 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project TT_CMapInfo *cmap_info ); 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_DEFINE_SERVICE( TTCMaps ) 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project TT_CMap_Info_GetFunc get_cmap_info; 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project }; 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 77295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#ifndef FT_CONFIG_OPTION_PIC 78295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 79e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ 80e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang static const FT_Service_TTCMapsRec class_ = \ 81e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang { \ 82e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang get_cmap_info_ \ 83295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner }; 84295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 85e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#else /* FT_CONFIG_OPTION_PIC */ 86295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 87e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ 88e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang void \ 89e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang FT_Init_Class_ ## class_( FT_Library library, \ 90e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang FT_Service_TTCMapsRec* clazz ) \ 91e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang { \ 92e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang FT_UNUSED( library ); \ 93e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang \ 94e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang clazz->get_cmap_info = get_cmap_info_; \ 95e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang } 96295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 97e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang#endif /* FT_CONFIG_OPTION_PIC */ 98295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __SVTTCMAP_H__ */ 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 108