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