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