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.subset; 8 9 import bindbc.hb.config; 10 11 version(HB_with_subset): 12 13 pragma(msg, "Warning: HarfBuzz Subset API is not stable and subject to breaking changes."); 14 15 static if (hbSupport >= 20500) 16 { 17 import bindbc.hb.bind.common; 18 import bindbc.hb.bind.face; 19 import bindbc.hb.bind.set; 20 21 extern(C) @nogc nothrow: 22 23 /* 24 * hb_subset_input_t 25 * 26 * Things that change based on the input. Characters to keep, etc. 27 */ 28 29 struct hb_subset_input_t; 30 31 version(BindHB_Static) 32 hb_subset_input_t* hb_subset_input_create_or_fail (); 33 else 34 { 35 private alias fp_hb_subset_input_create_or_fail = hb_subset_input_t* function (); 36 __gshared fp_hb_subset_input_create_or_fail hb_subset_input_create_or_fail; 37 } 38 39 version(BindHB_Static) 40 hb_subset_input_t* hb_subset_input_reference (hb_subset_input_t* subset_input); 41 else 42 { 43 private alias fp_hb_subset_input_reference = hb_subset_input_t* function (hb_subset_input_t* subset_input); 44 __gshared fp_hb_subset_input_reference hb_subset_input_reference; 45 } 46 47 version(BindHB_Static) 48 void hb_subset_input_destroy (hb_subset_input_t* subset_input); 49 else 50 { 51 private alias fp_hb_subset_input_destroy = void function (hb_subset_input_t* subset_input); 52 __gshared fp_hb_subset_input_destroy hb_subset_input_destroy; 53 } 54 55 version(BindHB_Static) 56 hb_set_t* hb_subset_input_unicode_set (hb_subset_input_t* subset_input); 57 else 58 { 59 private alias fp_hb_subset_input_unicode_set = hb_set_t* function (hb_subset_input_t* subset_input); 60 __gshared fp_hb_subset_input_unicode_set hb_subset_input_unicode_set; 61 } 62 63 version(BindHB_Static) 64 hb_set_t* hb_subset_input_glyph_set (hb_subset_input_t* subset_input); 65 else 66 { 67 private alias fp_hb_subset_input_glyph_set = hb_set_t* function (hb_subset_input_t* subset_input); 68 __gshared fp_hb_subset_input_glyph_set hb_subset_input_glyph_set; 69 } 70 71 version(BindHB_Static) 72 hb_set_t* hb_subset_input_nameid_set (hb_subset_input_t* subset_input); 73 else 74 { 75 private alias fp_hb_subset_input_nameid_set = hb_set_t* function (hb_subset_input_t* subset_input); 76 __gshared fp_hb_subset_input_nameid_set hb_subset_input_nameid_set; 77 } 78 79 version(BindHB_Static) 80 hb_set_t* hb_subset_input_drop_tables_set (hb_subset_input_t* subset_input); 81 else 82 { 83 private alias fp_hb_subset_input_drop_tables_set = hb_set_t* function (hb_subset_input_t* subset_input); 84 __gshared fp_hb_subset_input_drop_tables_set hb_subset_input_drop_tables_set; 85 } 86 87 version(BindHB_Static) 88 void hb_subset_input_set_drop_hints ( 89 hb_subset_input_t* subset_input, 90 hb_bool_t drop_hints); 91 else 92 { 93 private alias fp_hb_subset_input_set_drop_hints = void function ( 94 hb_subset_input_t* subset_input, 95 hb_bool_t drop_hints); 96 __gshared fp_hb_subset_input_set_drop_hints hb_subset_input_set_drop_hints; 97 } 98 version(BindHB_Static) 99 hb_bool_t hb_subset_input_get_drop_hints (hb_subset_input_t* subset_input); 100 else 101 { 102 private alias fp_hb_subset_input_get_drop_hints = hb_bool_t function (hb_subset_input_t* subset_input); 103 __gshared fp_hb_subset_input_get_drop_hints hb_subset_input_get_drop_hints; 104 } 105 106 version(BindHB_Static) 107 void hb_subset_input_set_desubroutinize ( 108 hb_subset_input_t* subset_input, 109 hb_bool_t desubroutinize); 110 else 111 { 112 private alias fp_hb_subset_input_set_desubroutinize = void function ( 113 hb_subset_input_t* subset_input, 114 hb_bool_t desubroutinize); 115 __gshared fp_hb_subset_input_set_desubroutinize hb_subset_input_set_desubroutinize; 116 } 117 version(BindHB_Static) 118 hb_bool_t hb_subset_input_get_desubroutinize (hb_subset_input_t* subset_input); 119 else 120 { 121 private alias fp_hb_subset_input_get_desubroutinize = hb_bool_t function (hb_subset_input_t* subset_input); 122 __gshared fp_hb_subset_input_get_desubroutinize hb_subset_input_get_desubroutinize; 123 } 124 125 version(BindHB_Static) 126 void hb_subset_input_set_retain_gids ( 127 hb_subset_input_t* subset_input, 128 hb_bool_t retain_gids); 129 else 130 { 131 private alias fp_hb_subset_input_set_retain_gids = void function ( 132 hb_subset_input_t* subset_input, 133 hb_bool_t retain_gids); 134 __gshared fp_hb_subset_input_set_retain_gids hb_subset_input_set_retain_gids; 135 } 136 version(BindHB_Static) 137 hb_bool_t hb_subset_input_get_retain_gids (hb_subset_input_t* subset_input); 138 else 139 { 140 private alias fp_hb_subset_input_get_retain_gids = hb_bool_t function (hb_subset_input_t* subset_input); 141 __gshared fp_hb_subset_input_get_retain_gids hb_subset_input_get_retain_gids; 142 } 143 144 /* hb_subset () */ 145 version(BindHB_Static) 146 hb_face_t* hb_subset (hb_face_t* source, hb_subset_input_t* input); 147 else 148 { 149 private alias fp_hb_subset = hb_face_t* function (hb_face_t* source, hb_subset_input_t* input); 150 __gshared fp_hb_subset hb_subset; 151 } 152 }