1 /***************************************************************************/
2 /*                                                                         */
3 /*  ftcid.h                                                                */
4 /*                                                                         */
5 /*    FreeType API for accessing CID font information (specification).     */
6 /*                                                                         */
7 /*  Copyright 2007-2015 by                                                 */
8 /*  Dereg 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 __FTCID_H__
20 #define __FTCID_H__
21 
22 #include <ft2build.h>
23 #include FT_FREETYPE_H
24 
25 #ifdef FREETYPE_H
26 #error "freetype.h of FreeType 1 has been loaded!"
27 #error "Please fix the directory search order for header files"
28 #error "so that freetype.h of FreeType 2 is found first."
29 #endif
30 
31 
32 FT_BEGIN_HEADER
33 
34 
35   /*************************************************************************/
36   /*                                                                       */
37   /* <Section>                                                             */
38   /*    cid_fonts                                                          */
39   /*                                                                       */
40   /* <Title>                                                               */
41   /*    CID Fonts                                                          */
42   /*                                                                       */
43   /* <Abstract>                                                            */
44   /*    CID-keyed font specific API.                                       */
45   /*                                                                       */
46   /* <Description>                                                         */
47   /*    This section contains the declaration of CID-keyed font specific   */
48   /*    functions.                                                         */
49   /*                                                                       */
50   /*************************************************************************/
51 
52 
53   /**********************************************************************
54    *
55    * @function:
56    *    FT_Get_CID_Registry_Ordering_Supplement
57    *
58    * @description:
59    *    Retrieve the Registry/Ordering/Supplement triple (also known as the
60    *    "R/O/S") from a CID-keyed font.
61    *
62    * @input:
63    *    face ::
64    *       A handle to the input face.
65    *
66    * @output:
67    *    registry ::
68    *       The registry, as a C~string, owned by the face.
69    *
70    *    ordering ::
71    *       The ordering, as a C~string, owned by the face.
72    *
73    *    supplement ::
74    *       The supplement.
75    *
76    * @return:
77    *    FreeType error code.  0~means success.
78    *
79    * @note:
80    *    This function only works with CID faces, returning an error
81    *    otherwise.
82    *
83    * @since:
84    *    2.3.6
85    */
86   FT_EXPORT( FT_Error )
87   FT_Get_CID_Registry_Ordering_Supplement( FT_Face       face,
88                                            const char*  *registry,
89                                            const char*  *ordering,
90                                            FT_Int       *supplement);
91 
92 
93   /**********************************************************************
94    *
95    * @function:
96    *    FT_Get_CID_Is_Internally_CID_Keyed
97    *
98    * @description:
99    *    Retrieve the type of the input face, CID keyed or not.  In
100    *    constrast to the @FT_IS_CID_KEYED macro this function returns
101    *    successfully also for CID-keyed fonts in an SNFT wrapper.
102    *
103    * @input:
104    *    face ::
105    *       A handle to the input face.
106    *
107    * @output:
108    *    is_cid ::
109    *       The type of the face as an @FT_Bool.
110    *
111    * @return:
112    *    FreeType error code.  0~means success.
113    *
114    * @note:
115    *    This function only works with CID faces and OpenType fonts,
116    *    returning an error otherwise.
117    *
118    * @since:
119    *    2.3.9
120    */
121   FT_EXPORT( FT_Error )
122   FT_Get_CID_Is_Internally_CID_Keyed( FT_Face   face,
123                                       FT_Bool  *is_cid );
124 
125 
126   /**********************************************************************
127    *
128    * @function:
129    *    FT_Get_CID_From_Glyph_Index
130    *
131    * @description:
132    *    Retrieve the CID of the input glyph index.
133    *
134    * @input:
135    *    face ::
136    *       A handle to the input face.
137    *
138    *    glyph_index ::
139    *       The input glyph index.
140    *
141    * @output:
142    *    cid ::
143    *       The CID as an @FT_UInt.
144    *
145    * @return:
146    *    FreeType error code.  0~means success.
147    *
148    * @note:
149    *    This function only works with CID faces and OpenType fonts,
150    *    returning an error otherwise.
151    *
152    * @since:
153    *    2.3.9
154    */
155   FT_EXPORT( FT_Error )
156   FT_Get_CID_From_Glyph_Index( FT_Face   face,
157                                FT_UInt   glyph_index,
158                                FT_UInt  *cid );
159 
160   /* */
161 
162 
163 FT_END_HEADER
164 
165 #endif /* __FTCID_H__ */
166 
167 
168 /* END */
169