OLD | NEW |
| (Empty) |
1 /***************************************************************************/ | |
2 /* */ | |
3 /* ftcid.c */ | |
4 /* */ | |
5 /* FreeType API for accessing CID font information. */ | |
6 /* */ | |
7 /* Copyright 2007, 2009, 2013 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 #include "../../include/ft2build.h" | |
19 #include "../../include/freetype/ftcid.h" | |
20 #include "../../include/freetype/internal/ftobjs.h" | |
21 #include "../../include/freetype/internal/services/svcid.h" | |
22 | |
23 | |
24 /* documentation is in ftcid.h */ | |
25 | |
26 FT_EXPORT_DEF( FT_Error ) | |
27 FT_Get_CID_Registry_Ordering_Supplement( FT_Face face, | |
28 const char* *registry, | |
29 const char* *ordering, | |
30 FT_Int *supplement) | |
31 { | |
32 FT_Error error; | |
33 const char* r = NULL; | |
34 const char* o = NULL; | |
35 FT_Int s = 0; | |
36 | |
37 | |
38 error = FT_ERR( Invalid_Argument ); | |
39 | |
40 if ( face ) | |
41 { | |
42 FT_Service_CID service; | |
43 | |
44 | |
45 FT_FACE_FIND_SERVICE( face, service, CID ); | |
46 | |
47 if ( service && service->get_ros ) | |
48 error = service->get_ros( face, &r, &o, &s ); | |
49 } | |
50 | |
51 if ( registry ) | |
52 *registry = r; | |
53 | |
54 if ( ordering ) | |
55 *ordering = o; | |
56 | |
57 if ( supplement ) | |
58 *supplement = s; | |
59 | |
60 return error; | |
61 } | |
62 | |
63 | |
64 FT_EXPORT_DEF( FT_Error ) | |
65 FT_Get_CID_Is_Internally_CID_Keyed( FT_Face face, | |
66 FT_Bool *is_cid ) | |
67 { | |
68 FT_Error error = FT_ERR( Invalid_Argument ); | |
69 FT_Bool ic = 0; | |
70 | |
71 | |
72 if ( face ) | |
73 { | |
74 FT_Service_CID service; | |
75 | |
76 | |
77 FT_FACE_FIND_SERVICE( face, service, CID ); | |
78 | |
79 if ( service && service->get_is_cid ) | |
80 error = service->get_is_cid( face, &ic); | |
81 } | |
82 | |
83 if ( is_cid ) | |
84 *is_cid = ic; | |
85 | |
86 return error; | |
87 } | |
88 | |
89 | |
90 FT_EXPORT_DEF( FT_Error ) | |
91 FT_Get_CID_From_Glyph_Index( FT_Face face, | |
92 FT_UInt glyph_index, | |
93 FT_UInt *cid ) | |
94 { | |
95 FT_Error error = FT_ERR( Invalid_Argument ); | |
96 FT_UInt c = 0; | |
97 | |
98 | |
99 if ( face ) | |
100 { | |
101 FT_Service_CID service; | |
102 | |
103 | |
104 FT_FACE_FIND_SERVICE( face, service, CID ); | |
105 | |
106 if ( service && service->get_cid_from_glyph_index ) | |
107 error = service->get_cid_from_glyph_index( face, glyph_index, &c); | |
108 } | |
109 | |
110 if ( cid ) | |
111 *cid = c; | |
112 | |
113 return error; | |
114 } | |
115 | |
116 | |
117 /* END */ | |
OLD | NEW |