1 
2 //          Copyright Ahmet Sait Koçak 2020.
3 // Distributed under the Boost Software License, Version 1.0.
4 //    (See accompanying file LICENSE_1_0.txt or copy at
5 //          https://www.boost.org/LICENSE_1_0.txt)
6 
7 module bindbc.hb.bind.shape;
8 
9 import bindbc.hb.bind.buffer;
10 import bindbc.hb.bind.common;
11 import bindbc.hb.bind.font;
12 
13 extern(C) @nogc nothrow:
14 
15 version(BindHB_Static)
16     void hb_shape (
17         hb_font_t* font,
18         hb_buffer_t* buffer,
19         const(hb_feature_t)* features,
20         uint num_features);
21 else
22 {
23     private alias fp_hb_shape = void function (
24         hb_font_t* font,
25         hb_buffer_t* buffer,
26         const(hb_feature_t)* features,
27         uint num_features);
28     __gshared fp_hb_shape hb_shape;
29 }
30 
31 version(BindHB_Static)
32     hb_bool_t hb_shape_full (
33         hb_font_t* font,
34         hb_buffer_t* buffer,
35         const(hb_feature_t)* features,
36         uint num_features,
37         const(char*)* shaper_list);
38 else
39 {
40     private alias fp_hb_shape_full = hb_bool_t function (
41         hb_font_t* font,
42         hb_buffer_t* buffer,
43         const(hb_feature_t)* features,
44         uint num_features,
45         const(char*)* shaper_list);
46     __gshared fp_hb_shape_full hb_shape_full;
47 }
48 
49 version(BindHB_Static)
50     const(char*)* hb_shape_list_shapers ();
51 else
52 {
53     private alias fp_hb_shape_list_shapers = const(char*)* function ();
54     __gshared fp_hb_shape_list_shapers hb_shape_list_shapers;
55 }