1 /****************************************************************************
2  *
3  * afshaper.h
4  *
5  *   HarfBuzz interface for accessing OpenType features (specification).
6  *
7  * Copyright (C) 2013-2019 by
8  * David Turner, Robert Wilhelm, and Werner Lemberg.
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 AFSHAPER_H_
20 #define AFSHAPER_H_
21 
22 
23 #include <ft2build.h>
24 #include FT_FREETYPE_H
25 
26 
27 #ifdef FT_CONFIG_OPTION_USE_HARFBUZZ
28 
29 #include <hb.h>
30 #include <hb-ot.h>
31 #include <hb-ft.h>
32 
33 #endif
34 
35 
36 FT_BEGIN_HEADER
37 
38   FT_Error
39   af_shaper_get_coverage( AF_FaceGlobals  globals,
40                           AF_StyleClass   style_class,
41                           FT_UShort*      gstyles,
42                           FT_Bool         default_script );
43 
44 
45   void*
46   af_shaper_buf_create( FT_Face  face );
47 
48   void
49   af_shaper_buf_destroy( FT_Face  face,
50                          void*    buf );
51 
52   const char*
53   af_shaper_get_cluster( const char*      p,
54                          AF_StyleMetrics  metrics,
55                          void*            buf_,
56                          unsigned int*    count );
57 
58   FT_ULong
59   af_shaper_get_elem( AF_StyleMetrics  metrics,
60                       void*            buf_,
61                       unsigned int     idx,
62                       FT_Long*         x_advance,
63                       FT_Long*         y_offset );
64 
65  /* */
66 
67 FT_END_HEADER
68 
69 #endif /* AFSHAPER_H_ */
70 
71 
72 /* END */
73