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/* */ 10ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease/* Copyright 2003, 2008, 2009, 2012, 2013 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 3441371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier#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 */ 50ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease /* `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 { 6141371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier FT_ULong language; 6241371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier 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 7941371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ 8041371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier static const FT_Service_TTCMapsRec class_ = \ 8141371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier { \ 8241371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier get_cmap_info_ \ 83295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner }; 84295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 8541371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier#else /* FT_CONFIG_OPTION_PIC */ 86295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 8741371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ 8841371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier void \ 8941371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier FT_Init_Class_ ## class_( FT_Library library, \ 9041371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier FT_Service_TTCMapsRec* clazz ) \ 9141371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier { \ 9241371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier FT_UNUSED( library ); \ 9341371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier \ 9441371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier clazz->get_cmap_info = get_cmap_info_; \ 9541371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier } 96295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 9741371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier#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