Sync with trunk r47367
[reactos.git] / lib / 3rdparty / freetype / include / freetype / internal / services / svcid.h
1 /***************************************************************************/
2 /* */
3 /* svcid.h */
4 /* */
5 /* The FreeType CID font services (specification). */
6 /* */
7 /* Copyright 2007, 2009 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 FT_INTERNAL_SERVICE_H
22
23
24 FT_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 #ifndef FT_CONFIG_OPTION_PIC
50
51 #define FT_DEFINE_SERVICE_CIDREC(class_, get_ros_, \
52 get_is_cid_, get_cid_from_glyph_index_ ) \
53 static const FT_Service_CIDRec class_ = \
54 { \
55 get_ros_, get_is_cid_, get_cid_from_glyph_index_ \
56 };
57
58 #else /* FT_CONFIG_OPTION_PIC */
59
60 #define FT_DEFINE_SERVICE_CIDREC(class_, get_ros_, \
61 get_is_cid_, get_cid_from_glyph_index_ ) \
62 void \
63 FT_Init_Class_##class_( FT_Library library, \
64 FT_Service_CIDRec* clazz) \
65 { \
66 FT_UNUSED(library); \
67 clazz->get_ros = get_ros_; \
68 clazz->get_is_cid = get_is_cid_; \
69 clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_; \
70 }
71
72 #endif /* FT_CONFIG_OPTION_PIC */
73
74 /* */
75
76
77 FT_END_HEADER
78
79
80 #endif /* __SVCID_H__ */
81
82
83 /* END */