1/***************************************************************************/
2/*                                                                         */
3/*  afshaper.h                                                             */
4/*                                                                         */
5/*    HarfBuzz interface for accessing OpenType features (specification).  */
6/*                                                                         */
7/*  Copyright 2013-2018 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
36FT_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
67FT_END_HEADER
68
69#endif /* AFSHAPER_H_ */
70
71
72/* END */
73