1/***************************************************************************/ 2/* */ 3/* svcid.h */ 4/* */ 5/* The FreeType CID font services (specification). */ 6/* */ 7/* Copyright 2007, 2009, 2012 by Derek Clegg, Michael Toftdal. */ 8/* */ 9/* This file is part of the FreeType project, and may only be used, */ 10/* modified, and distributed under the terms of the FreeType project */ 11/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 12/* this file you indicate that you have read the license and */ 13/* understand and accept it fully. */ 14/* */ 15/***************************************************************************/ 16 17 18#ifndef __SVCID_H__ 19#define __SVCID_H__ 20 21#include "../ftserv.h" 22 23 24FT_BEGIN_HEADER 25 26 27#define FT_SERVICE_ID_CID "CID" 28 29 typedef FT_Error 30 (*FT_CID_GetRegistryOrderingSupplementFunc)( FT_Face face, 31 const char* *registry, 32 const char* *ordering, 33 FT_Int *supplement ); 34 typedef FT_Error 35 (*FT_CID_GetIsInternallyCIDKeyedFunc)( FT_Face face, 36 FT_Bool *is_cid ); 37 typedef FT_Error 38 (*FT_CID_GetCIDFromGlyphIndexFunc)( FT_Face face, 39 FT_UInt glyph_index, 40 FT_UInt *cid ); 41 42 FT_DEFINE_SERVICE( CID ) 43 { 44 FT_CID_GetRegistryOrderingSupplementFunc get_ros; 45 FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid; 46 FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index; 47 }; 48 49 50#ifndef FT_CONFIG_OPTION_PIC 51 52#define FT_DEFINE_SERVICE_CIDREC( class_, \ 53 get_ros_, \ 54 get_is_cid_, \ 55 get_cid_from_glyph_index_ ) \ 56 static const FT_Service_CIDRec class_ = \ 57 { \ 58 get_ros_, get_is_cid_, get_cid_from_glyph_index_ \ 59 }; 60 61#else /* FT_CONFIG_OPTION_PIC */ 62 63#define FT_DEFINE_SERVICE_CIDREC( class_, \ 64 get_ros_, \ 65 get_is_cid_, \ 66 get_cid_from_glyph_index_ ) \ 67 void \ 68 FT_Init_Class_ ## class_( FT_Library library, \ 69 FT_Service_CIDRec* clazz ) \ 70 { \ 71 FT_UNUSED( library ); \ 72 \ 73 clazz->get_ros = get_ros_; \ 74 clazz->get_is_cid = get_is_cid_; \ 75 clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_; \ 76 } 77 78#endif /* FT_CONFIG_OPTION_PIC */ 79 80 /* */ 81 82 83FT_END_HEADER 84 85 86#endif /* __SVCID_H__ */ 87 88 89/* END */ 90