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.font; 8 9 import bindbc.hb.config; 10 11 import bindbc.hb.bind.common; 12 import bindbc.hb.bind.face; 13 14 extern(C) @nogc nothrow: 15 16 struct hb_font_t; 17 18 /* 19 * hb_font_funcs_t 20 */ 21 22 struct hb_font_funcs_t; 23 24 version(BindHB_Static) 25 hb_font_funcs_t* hb_font_funcs_create (); 26 else 27 { 28 private alias fp_hb_font_funcs_create = hb_font_funcs_t* function (); 29 __gshared fp_hb_font_funcs_create hb_font_funcs_create; 30 } 31 32 version(BindHB_Static) 33 hb_font_funcs_t* hb_font_funcs_get_empty (); 34 else 35 { 36 private alias fp_hb_font_funcs_get_empty = hb_font_funcs_t* function (); 37 __gshared fp_hb_font_funcs_get_empty hb_font_funcs_get_empty; 38 } 39 40 version(BindHB_Static) 41 hb_font_funcs_t* hb_font_funcs_reference (hb_font_funcs_t* ffuncs); 42 else 43 { 44 private alias fp_hb_font_funcs_reference = hb_font_funcs_t* function (hb_font_funcs_t* ffuncs); 45 __gshared fp_hb_font_funcs_reference hb_font_funcs_reference; 46 } 47 48 version(BindHB_Static) 49 void hb_font_funcs_destroy (hb_font_funcs_t* ffuncs); 50 else 51 { 52 private alias fp_hb_font_funcs_destroy = void function (hb_font_funcs_t* ffuncs); 53 __gshared fp_hb_font_funcs_destroy hb_font_funcs_destroy; 54 } 55 56 version(BindHB_Static) 57 hb_bool_t hb_font_funcs_set_user_data ( 58 hb_font_funcs_t* ffuncs, 59 hb_user_data_key_t* key, 60 void* data, 61 hb_destroy_func_t destroy, 62 hb_bool_t replace); 63 else 64 { 65 private alias fp_hb_font_funcs_set_user_data = hb_bool_t function ( 66 hb_font_funcs_t* ffuncs, 67 hb_user_data_key_t* key, 68 void* data, 69 hb_destroy_func_t destroy, 70 hb_bool_t replace); 71 __gshared fp_hb_font_funcs_set_user_data hb_font_funcs_set_user_data; 72 } 73 74 version(BindHB_Static) 75 void* hb_font_funcs_get_user_data ( 76 hb_font_funcs_t* ffuncs, 77 hb_user_data_key_t* key); 78 else 79 { 80 private alias fp_hb_font_funcs_get_user_data = void* function ( 81 hb_font_funcs_t* ffuncs, 82 hb_user_data_key_t* key); 83 __gshared fp_hb_font_funcs_get_user_data hb_font_funcs_get_user_data; 84 } 85 86 version(BindHB_Static) 87 void hb_font_funcs_make_immutable (hb_font_funcs_t* ffuncs); 88 else 89 { 90 private alias fp_hb_font_funcs_make_immutable = void function (hb_font_funcs_t* ffuncs); 91 __gshared fp_hb_font_funcs_make_immutable hb_font_funcs_make_immutable; 92 } 93 94 version(BindHB_Static) 95 hb_bool_t hb_font_funcs_is_immutable (hb_font_funcs_t* ffuncs); 96 else 97 { 98 private alias fp_hb_font_funcs_is_immutable = hb_bool_t function (hb_font_funcs_t* ffuncs); 99 __gshared fp_hb_font_funcs_is_immutable hb_font_funcs_is_immutable; 100 } 101 102 /* font and glyph extents */ 103 104 /* Note that typically ascender is positive and descender negative in coordinate systems that grow up. */ 105 struct hb_font_extents_t 106 { 107 hb_position_t ascender; /* typographic ascender. */ 108 hb_position_t descender; /* typographic descender. */ 109 hb_position_t line_gap; /* suggested line spacing gap. */ 110 /*< private >*/ 111 hb_position_t reserved9; 112 hb_position_t reserved8; 113 hb_position_t reserved7; 114 hb_position_t reserved6; 115 hb_position_t reserved5; 116 hb_position_t reserved4; 117 hb_position_t reserved3; 118 hb_position_t reserved2; 119 hb_position_t reserved1; 120 } 121 122 /* Note that height is negative in coordinate systems that grow up. */ 123 struct hb_glyph_extents_t 124 { 125 hb_position_t x_bearing; /* left side of glyph from origin. */ 126 hb_position_t y_bearing; /* top side of glyph from origin. */ 127 hb_position_t width; /* distance from left to right side. */ 128 hb_position_t height; /* distance from top to bottom side. */ 129 } 130 131 /* func types */ 132 133 alias hb_font_get_font_extents_func_t = int function ( 134 hb_font_t* font, 135 void* font_data, 136 hb_font_extents_t* extents, 137 void* user_data); 138 alias hb_font_get_font_h_extents_func_t = int function (); 139 alias hb_font_get_font_v_extents_func_t = int function (); 140 141 alias hb_font_get_nominal_glyph_func_t = int function ( 142 hb_font_t* font, 143 void* font_data, 144 hb_codepoint_t unicode, 145 hb_codepoint_t* glyph, 146 void* user_data); 147 alias hb_font_get_variation_glyph_func_t = int function ( 148 hb_font_t* font, 149 void* font_data, 150 hb_codepoint_t unicode, 151 hb_codepoint_t variation_selector, 152 hb_codepoint_t* glyph, 153 void* user_data); 154 155 alias hb_font_get_nominal_glyphs_func_t = uint function ( 156 hb_font_t* font, 157 void* font_data, 158 uint count, 159 const(hb_codepoint_t)* first_unicode, 160 uint unicode_stride, 161 hb_codepoint_t* first_glyph, 162 uint glyph_stride, 163 void* user_data); 164 165 alias hb_font_get_glyph_advance_func_t = int function ( 166 hb_font_t* font, 167 void* font_data, 168 hb_codepoint_t glyph, 169 void* user_data); 170 alias hb_font_get_glyph_h_advance_func_t = int function (); 171 alias hb_font_get_glyph_v_advance_func_t = int function (); 172 173 alias hb_font_get_glyph_advances_func_t = void function ( 174 hb_font_t* font, 175 void* font_data, 176 uint count, 177 const(hb_codepoint_t)* first_glyph, 178 uint glyph_stride, 179 hb_position_t* first_advance, 180 uint advance_stride, 181 void* user_data); 182 alias hb_font_get_glyph_h_advances_func_t = void function (); 183 alias hb_font_get_glyph_v_advances_func_t = void function (); 184 185 alias hb_font_get_glyph_origin_func_t = int function ( 186 hb_font_t* font, 187 void* font_data, 188 hb_codepoint_t glyph, 189 hb_position_t* x, 190 hb_position_t* y, 191 void* user_data); 192 alias hb_font_get_glyph_h_origin_func_t = int function (); 193 alias hb_font_get_glyph_v_origin_func_t = int function (); 194 195 alias hb_font_get_glyph_kerning_func_t = int function ( 196 hb_font_t* font, 197 void* font_data, 198 hb_codepoint_t first_glyph, 199 hb_codepoint_t second_glyph, 200 void* user_data); 201 alias hb_font_get_glyph_h_kerning_func_t = int function (); 202 203 alias hb_font_get_glyph_extents_func_t = int function ( 204 hb_font_t* font, 205 void* font_data, 206 hb_codepoint_t glyph, 207 hb_glyph_extents_t* extents, 208 void* user_data); 209 alias hb_font_get_glyph_contour_point_func_t = int function ( 210 hb_font_t* font, 211 void* font_data, 212 hb_codepoint_t glyph, 213 uint point_index, 214 hb_position_t* x, 215 hb_position_t* y, 216 void* user_data); 217 218 alias hb_font_get_glyph_name_func_t = int function ( 219 hb_font_t* font, 220 void* font_data, 221 hb_codepoint_t glyph, 222 char* name, 223 uint size, 224 void* user_data); 225 226 /* -1 means nul-terminated */ 227 alias hb_font_get_glyph_from_name_func_t = int function ( 228 hb_font_t* font, 229 void* font_data, 230 const(char)* name, 231 int len, 232 hb_codepoint_t* glyph, 233 void* user_data); 234 235 /* func setters */ 236 237 /** 238 * hb_font_funcs_set_font_h_extents_func: 239 * @ffuncs: font functions. 240 * @func: (closure user_data) (destroy destroy) (scope notified): 241 * @user_data: 242 * @destroy: 243 * 244 * 245 * 246 * Since: 1.1.2 247 **/ 248 version(BindHB_Static) 249 void hb_font_funcs_set_font_h_extents_func ( 250 hb_font_funcs_t* ffuncs, 251 hb_font_get_font_h_extents_func_t func, 252 void* user_data, 253 hb_destroy_func_t destroy); 254 else 255 { 256 private alias fp_hb_font_funcs_set_font_h_extents_func = void function ( 257 hb_font_funcs_t* ffuncs, 258 hb_font_get_font_h_extents_func_t func, 259 void* user_data, 260 hb_destroy_func_t destroy); 261 __gshared fp_hb_font_funcs_set_font_h_extents_func hb_font_funcs_set_font_h_extents_func; 262 } 263 264 /** 265 * hb_font_funcs_set_font_v_extents_func: 266 * @ffuncs: font functions. 267 * @func: (closure user_data) (destroy destroy) (scope notified): 268 * @user_data: 269 * @destroy: 270 * 271 * 272 * 273 * Since: 1.1.2 274 **/ 275 version(BindHB_Static) 276 void hb_font_funcs_set_font_v_extents_func ( 277 hb_font_funcs_t* ffuncs, 278 hb_font_get_font_v_extents_func_t func, 279 void* user_data, 280 hb_destroy_func_t destroy); 281 else 282 { 283 private alias fp_hb_font_funcs_set_font_v_extents_func = void function ( 284 hb_font_funcs_t* ffuncs, 285 hb_font_get_font_v_extents_func_t func, 286 void* user_data, 287 hb_destroy_func_t destroy); 288 __gshared fp_hb_font_funcs_set_font_v_extents_func hb_font_funcs_set_font_v_extents_func; 289 } 290 291 /** 292 * hb_font_funcs_set_nominal_glyph_func: 293 * @ffuncs: font functions. 294 * @func: (closure user_data) (destroy destroy) (scope notified): 295 * @user_data: 296 * @destroy: 297 * 298 * 299 * 300 * Since: 1.2.3 301 **/ 302 version(BindHB_Static) 303 void hb_font_funcs_set_nominal_glyph_func ( 304 hb_font_funcs_t* ffuncs, 305 hb_font_get_nominal_glyph_func_t func, 306 void* user_data, 307 hb_destroy_func_t destroy); 308 else 309 { 310 private alias fp_hb_font_funcs_set_nominal_glyph_func = void function ( 311 hb_font_funcs_t* ffuncs, 312 hb_font_get_nominal_glyph_func_t func, 313 void* user_data, 314 hb_destroy_func_t destroy); 315 __gshared fp_hb_font_funcs_set_nominal_glyph_func hb_font_funcs_set_nominal_glyph_func; 316 } 317 318 static if (hbSupport >= 20000) 319 { 320 /** 321 * hb_font_funcs_set_nominal_glyphs_func: 322 * @ffuncs: font functions. 323 * @func: (closure user_data) (destroy destroy) (scope notified): 324 * @user_data: 325 * @destroy: 326 * 327 * 328 * 329 * Since: 2.0.0 330 **/ 331 version(BindHB_Static) 332 void hb_font_funcs_set_nominal_glyphs_func ( 333 hb_font_funcs_t* ffuncs, 334 hb_font_get_nominal_glyphs_func_t func, 335 void* user_data, 336 hb_destroy_func_t destroy); 337 else 338 { 339 private alias fp_hb_font_funcs_set_nominal_glyphs_func = void function ( 340 hb_font_funcs_t* ffuncs, 341 hb_font_get_nominal_glyphs_func_t func, 342 void* user_data, 343 hb_destroy_func_t destroy); 344 __gshared fp_hb_font_funcs_set_nominal_glyphs_func hb_font_funcs_set_nominal_glyphs_func; 345 } 346 } 347 348 /** 349 * hb_font_funcs_set_variation_glyph_func: 350 * @ffuncs: font functions. 351 * @func: (closure user_data) (destroy destroy) (scope notified): 352 * @user_data: 353 * @destroy: 354 * 355 * 356 * 357 * Since: 1.2.3 358 **/ 359 version(BindHB_Static) 360 void hb_font_funcs_set_variation_glyph_func ( 361 hb_font_funcs_t* ffuncs, 362 hb_font_get_variation_glyph_func_t func, 363 void* user_data, 364 hb_destroy_func_t destroy); 365 else 366 { 367 private alias fp_hb_font_funcs_set_variation_glyph_func = void function ( 368 hb_font_funcs_t* ffuncs, 369 hb_font_get_variation_glyph_func_t func, 370 void* user_data, 371 hb_destroy_func_t destroy); 372 __gshared fp_hb_font_funcs_set_variation_glyph_func hb_font_funcs_set_variation_glyph_func; 373 } 374 375 /** 376 * hb_font_funcs_set_glyph_h_advance_func: 377 * @ffuncs: font functions. 378 * @func: (closure user_data) (destroy destroy) (scope notified): 379 * @user_data: 380 * @destroy: 381 * 382 * 383 * 384 * Since: 0.9.2 385 **/ 386 version(BindHB_Static) 387 void hb_font_funcs_set_glyph_h_advance_func ( 388 hb_font_funcs_t* ffuncs, 389 hb_font_get_glyph_h_advance_func_t func, 390 void* user_data, 391 hb_destroy_func_t destroy); 392 else 393 { 394 private alias fp_hb_font_funcs_set_glyph_h_advance_func = void function ( 395 hb_font_funcs_t* ffuncs, 396 hb_font_get_glyph_h_advance_func_t func, 397 void* user_data, 398 hb_destroy_func_t destroy); 399 __gshared fp_hb_font_funcs_set_glyph_h_advance_func hb_font_funcs_set_glyph_h_advance_func; 400 } 401 402 /** 403 * hb_font_funcs_set_glyph_v_advance_func: 404 * @ffuncs: font functions. 405 * @func: (closure user_data) (destroy destroy) (scope notified): 406 * @user_data: 407 * @destroy: 408 * 409 * 410 * 411 * Since: 0.9.2 412 **/ 413 version(BindHB_Static) 414 void hb_font_funcs_set_glyph_v_advance_func ( 415 hb_font_funcs_t* ffuncs, 416 hb_font_get_glyph_v_advance_func_t func, 417 void* user_data, 418 hb_destroy_func_t destroy); 419 else 420 { 421 private alias fp_hb_font_funcs_set_glyph_v_advance_func = void function ( 422 hb_font_funcs_t* ffuncs, 423 hb_font_get_glyph_v_advance_func_t func, 424 void* user_data, 425 hb_destroy_func_t destroy); 426 __gshared fp_hb_font_funcs_set_glyph_v_advance_func hb_font_funcs_set_glyph_v_advance_func; 427 } 428 429 static if (hbSupport >= 10806) 430 { 431 /** 432 * hb_font_funcs_set_glyph_h_advances_func: 433 * @ffuncs: font functions. 434 * @func: (closure user_data) (destroy destroy) (scope notified): 435 * @user_data: 436 * @destroy: 437 * 438 * 439 * 440 * Since: 1.8.6 441 **/ 442 version(BindHB_Static) 443 void hb_font_funcs_set_glyph_h_advances_func ( 444 hb_font_funcs_t* ffuncs, 445 hb_font_get_glyph_h_advances_func_t func, 446 void* user_data, 447 hb_destroy_func_t destroy); 448 else 449 { 450 private alias fp_hb_font_funcs_set_glyph_h_advances_func = void function ( 451 hb_font_funcs_t* ffuncs, 452 hb_font_get_glyph_h_advances_func_t func, 453 void* user_data, 454 hb_destroy_func_t destroy); 455 __gshared fp_hb_font_funcs_set_glyph_h_advances_func hb_font_funcs_set_glyph_h_advances_func; 456 } 457 458 /** 459 * hb_font_funcs_set_glyph_v_advances_func: 460 * @ffuncs: font functions. 461 * @func: (closure user_data) (destroy destroy) (scope notified): 462 * @user_data: 463 * @destroy: 464 * 465 * 466 * 467 * Since: 1.8.6 468 **/ 469 version(BindHB_Static) 470 void hb_font_funcs_set_glyph_v_advances_func ( 471 hb_font_funcs_t* ffuncs, 472 hb_font_get_glyph_v_advances_func_t func, 473 void* user_data, 474 hb_destroy_func_t destroy); 475 else 476 { 477 private alias fp_hb_font_funcs_set_glyph_v_advances_func = void function ( 478 hb_font_funcs_t* ffuncs, 479 hb_font_get_glyph_v_advances_func_t func, 480 void* user_data, 481 hb_destroy_func_t destroy); 482 __gshared fp_hb_font_funcs_set_glyph_v_advances_func hb_font_funcs_set_glyph_v_advances_func; 483 } 484 } 485 486 /** 487 * hb_font_funcs_set_glyph_h_origin_func: 488 * @ffuncs: font functions. 489 * @func: (closure user_data) (destroy destroy) (scope notified): 490 * @user_data: 491 * @destroy: 492 * 493 * 494 * 495 * Since: 0.9.2 496 **/ 497 version(BindHB_Static) 498 void hb_font_funcs_set_glyph_h_origin_func ( 499 hb_font_funcs_t* ffuncs, 500 hb_font_get_glyph_h_origin_func_t func, 501 void* user_data, 502 hb_destroy_func_t destroy); 503 else 504 { 505 private alias fp_hb_font_funcs_set_glyph_h_origin_func = void function ( 506 hb_font_funcs_t* ffuncs, 507 hb_font_get_glyph_h_origin_func_t func, 508 void* user_data, 509 hb_destroy_func_t destroy); 510 __gshared fp_hb_font_funcs_set_glyph_h_origin_func hb_font_funcs_set_glyph_h_origin_func; 511 } 512 513 /** 514 * hb_font_funcs_set_glyph_v_origin_func: 515 * @ffuncs: font functions. 516 * @func: (closure user_data) (destroy destroy) (scope notified): 517 * @user_data: 518 * @destroy: 519 * 520 * 521 * 522 * Since: 0.9.2 523 **/ 524 version(BindHB_Static) 525 void hb_font_funcs_set_glyph_v_origin_func ( 526 hb_font_funcs_t* ffuncs, 527 hb_font_get_glyph_v_origin_func_t func, 528 void* user_data, 529 hb_destroy_func_t destroy); 530 else 531 { 532 private alias fp_hb_font_funcs_set_glyph_v_origin_func = void function ( 533 hb_font_funcs_t* ffuncs, 534 hb_font_get_glyph_v_origin_func_t func, 535 void* user_data, 536 hb_destroy_func_t destroy); 537 __gshared fp_hb_font_funcs_set_glyph_v_origin_func hb_font_funcs_set_glyph_v_origin_func; 538 } 539 540 /** 541 * hb_font_funcs_set_glyph_h_kerning_func: 542 * @ffuncs: font functions. 543 * @func: (closure user_data) (destroy destroy) (scope notified): 544 * @user_data: 545 * @destroy: 546 * 547 * 548 * 549 * Since: 0.9.2 550 **/ 551 version(BindHB_Static) 552 void hb_font_funcs_set_glyph_h_kerning_func ( 553 hb_font_funcs_t* ffuncs, 554 hb_font_get_glyph_h_kerning_func_t func, 555 void* user_data, 556 hb_destroy_func_t destroy); 557 else 558 { 559 private alias fp_hb_font_funcs_set_glyph_h_kerning_func = void function ( 560 hb_font_funcs_t* ffuncs, 561 hb_font_get_glyph_h_kerning_func_t func, 562 void* user_data, 563 hb_destroy_func_t destroy); 564 __gshared fp_hb_font_funcs_set_glyph_h_kerning_func hb_font_funcs_set_glyph_h_kerning_func; 565 } 566 567 /** 568 * hb_font_funcs_set_glyph_extents_func: 569 * @ffuncs: font functions. 570 * @func: (closure user_data) (destroy destroy) (scope notified): 571 * @user_data: 572 * @destroy: 573 * 574 * 575 * 576 * Since: 0.9.2 577 **/ 578 version(BindHB_Static) 579 void hb_font_funcs_set_glyph_extents_func ( 580 hb_font_funcs_t* ffuncs, 581 hb_font_get_glyph_extents_func_t func, 582 void* user_data, 583 hb_destroy_func_t destroy); 584 else 585 { 586 private alias fp_hb_font_funcs_set_glyph_extents_func = void function ( 587 hb_font_funcs_t* ffuncs, 588 hb_font_get_glyph_extents_func_t func, 589 void* user_data, 590 hb_destroy_func_t destroy); 591 __gshared fp_hb_font_funcs_set_glyph_extents_func hb_font_funcs_set_glyph_extents_func; 592 } 593 594 /** 595 * hb_font_funcs_set_glyph_contour_point_func: 596 * @ffuncs: font functions. 597 * @func: (closure user_data) (destroy destroy) (scope notified): 598 * @user_data: 599 * @destroy: 600 * 601 * 602 * 603 * Since: 0.9.2 604 **/ 605 version(BindHB_Static) 606 void hb_font_funcs_set_glyph_contour_point_func ( 607 hb_font_funcs_t* ffuncs, 608 hb_font_get_glyph_contour_point_func_t func, 609 void* user_data, 610 hb_destroy_func_t destroy); 611 else 612 { 613 private alias fp_hb_font_funcs_set_glyph_contour_point_func = void function ( 614 hb_font_funcs_t* ffuncs, 615 hb_font_get_glyph_contour_point_func_t func, 616 void* user_data, 617 hb_destroy_func_t destroy); 618 __gshared fp_hb_font_funcs_set_glyph_contour_point_func hb_font_funcs_set_glyph_contour_point_func; 619 } 620 621 /** 622 * hb_font_funcs_set_glyph_name_func: 623 * @ffuncs: font functions. 624 * @func: (closure user_data) (destroy destroy) (scope notified): 625 * @user_data: 626 * @destroy: 627 * 628 * 629 * 630 * Since: 0.9.2 631 **/ 632 version(BindHB_Static) 633 void hb_font_funcs_set_glyph_name_func ( 634 hb_font_funcs_t* ffuncs, 635 hb_font_get_glyph_name_func_t func, 636 void* user_data, 637 hb_destroy_func_t destroy); 638 else 639 { 640 private alias fp_hb_font_funcs_set_glyph_name_func = void function ( 641 hb_font_funcs_t* ffuncs, 642 hb_font_get_glyph_name_func_t func, 643 void* user_data, 644 hb_destroy_func_t destroy); 645 __gshared fp_hb_font_funcs_set_glyph_name_func hb_font_funcs_set_glyph_name_func; 646 } 647 648 /** 649 * hb_font_funcs_set_glyph_from_name_func: 650 * @ffuncs: font functions. 651 * @func: (closure user_data) (destroy destroy) (scope notified): 652 * @user_data: 653 * @destroy: 654 * 655 * 656 * 657 * Since: 0.9.2 658 **/ 659 version(BindHB_Static) 660 void hb_font_funcs_set_glyph_from_name_func ( 661 hb_font_funcs_t* ffuncs, 662 hb_font_get_glyph_from_name_func_t func, 663 void* user_data, 664 hb_destroy_func_t destroy); 665 else 666 { 667 private alias fp_hb_font_funcs_set_glyph_from_name_func = void function ( 668 hb_font_funcs_t* ffuncs, 669 hb_font_get_glyph_from_name_func_t func, 670 void* user_data, 671 hb_destroy_func_t destroy); 672 __gshared fp_hb_font_funcs_set_glyph_from_name_func hb_font_funcs_set_glyph_from_name_func; 673 } 674 675 /* func dispatch */ 676 677 version(BindHB_Static) 678 hb_bool_t hb_font_get_h_extents (hb_font_t* font, hb_font_extents_t* extents); 679 else 680 { 681 private alias fp_hb_font_get_h_extents = hb_bool_t function (hb_font_t* font, hb_font_extents_t* extents); 682 __gshared fp_hb_font_get_h_extents hb_font_get_h_extents; 683 } 684 version(BindHB_Static) 685 hb_bool_t hb_font_get_v_extents (hb_font_t* font, hb_font_extents_t* extents); 686 else 687 { 688 private alias fp_hb_font_get_v_extents = hb_bool_t function (hb_font_t* font, hb_font_extents_t* extents); 689 __gshared fp_hb_font_get_v_extents hb_font_get_v_extents; 690 } 691 692 version(BindHB_Static) 693 hb_bool_t hb_font_get_nominal_glyph ( 694 hb_font_t* font, 695 hb_codepoint_t unicode, 696 hb_codepoint_t* glyph); 697 else 698 { 699 private alias fp_hb_font_get_nominal_glyph = hb_bool_t function ( 700 hb_font_t* font, 701 hb_codepoint_t unicode, 702 hb_codepoint_t* glyph); 703 __gshared fp_hb_font_get_nominal_glyph hb_font_get_nominal_glyph; 704 } 705 version(BindHB_Static) 706 hb_bool_t hb_font_get_variation_glyph ( 707 hb_font_t* font, 708 hb_codepoint_t unicode, 709 hb_codepoint_t variation_selector, 710 hb_codepoint_t* glyph); 711 else 712 { 713 private alias fp_hb_font_get_variation_glyph = hb_bool_t function ( 714 hb_font_t* font, 715 hb_codepoint_t unicode, 716 hb_codepoint_t variation_selector, 717 hb_codepoint_t* glyph); 718 __gshared fp_hb_font_get_variation_glyph hb_font_get_variation_glyph; 719 } 720 721 static if (hbSupport >= HBSupport.v2_6_3) 722 { 723 version(BindHB_Static) 724 uint hb_font_get_nominal_glyphs ( 725 hb_font_t* font, 726 uint count, 727 const(hb_codepoint_t)* first_unicode, 728 uint unicode_stride, 729 hb_codepoint_t* first_glyph, 730 uint glyph_stride); 731 else 732 { 733 private alias fp_hb_font_get_nominal_glyphs = uint function ( 734 hb_font_t* font, 735 uint count, 736 const(hb_codepoint_t)* first_unicode, 737 uint unicode_stride, 738 hb_codepoint_t* first_glyph, 739 uint glyph_stride); 740 __gshared fp_hb_font_get_nominal_glyphs hb_font_get_nominal_glyphs; 741 } 742 } 743 744 version(BindHB_Static) 745 hb_position_t hb_font_get_glyph_h_advance ( 746 hb_font_t* font, 747 hb_codepoint_t glyph); 748 else 749 { 750 private alias fp_hb_font_get_glyph_h_advance = hb_position_t function ( 751 hb_font_t* font, 752 hb_codepoint_t glyph); 753 __gshared fp_hb_font_get_glyph_h_advance hb_font_get_glyph_h_advance; 754 } 755 version(BindHB_Static) 756 hb_position_t hb_font_get_glyph_v_advance ( 757 hb_font_t* font, 758 hb_codepoint_t glyph); 759 else 760 { 761 private alias fp_hb_font_get_glyph_v_advance = hb_position_t function ( 762 hb_font_t* font, 763 hb_codepoint_t glyph); 764 __gshared fp_hb_font_get_glyph_v_advance hb_font_get_glyph_v_advance; 765 } 766 767 static if (hbSupport >= HBSupport.v2_6_3) 768 { 769 version(BindHB_Static) 770 void hb_font_get_glyph_h_advances ( 771 hb_font_t* font, 772 uint count, 773 const(hb_codepoint_t)* first_glyph, 774 uint glyph_stride, 775 hb_position_t* first_advance, 776 uint advance_stride); 777 else 778 { 779 private alias fp_hb_font_get_glyph_h_advances = void function ( 780 hb_font_t* font, 781 uint count, 782 const(hb_codepoint_t)* first_glyph, 783 uint glyph_stride, 784 hb_position_t* first_advance, 785 uint advance_stride); 786 __gshared fp_hb_font_get_glyph_h_advances hb_font_get_glyph_h_advances; 787 } 788 789 version(BindHB_Static) 790 void hb_font_get_glyph_v_advances ( 791 hb_font_t* font, 792 uint count, 793 const(hb_codepoint_t)* first_glyph, 794 uint glyph_stride, 795 hb_position_t* first_advance, 796 uint advance_stride); 797 else 798 { 799 private alias fp_hb_font_get_glyph_v_advances = void function ( 800 hb_font_t* font, 801 uint count, 802 const(hb_codepoint_t)* first_glyph, 803 uint glyph_stride, 804 hb_position_t* first_advance, 805 uint advance_stride); 806 __gshared fp_hb_font_get_glyph_v_advances hb_font_get_glyph_v_advances; 807 } 808 } 809 810 version(BindHB_Static) 811 hb_bool_t hb_font_get_glyph_h_origin ( 812 hb_font_t* font, 813 hb_codepoint_t glyph, 814 hb_position_t* x, 815 hb_position_t* y); 816 else 817 { 818 private alias fp_hb_font_get_glyph_h_origin = hb_bool_t function ( 819 hb_font_t* font, 820 hb_codepoint_t glyph, 821 hb_position_t* x, 822 hb_position_t* y); 823 __gshared fp_hb_font_get_glyph_h_origin hb_font_get_glyph_h_origin; 824 } 825 version(BindHB_Static) 826 hb_bool_t hb_font_get_glyph_v_origin ( 827 hb_font_t* font, 828 hb_codepoint_t glyph, 829 hb_position_t* x, 830 hb_position_t* y); 831 else 832 { 833 private alias fp_hb_font_get_glyph_v_origin = hb_bool_t function ( 834 hb_font_t* font, 835 hb_codepoint_t glyph, 836 hb_position_t* x, 837 hb_position_t* y); 838 __gshared fp_hb_font_get_glyph_v_origin hb_font_get_glyph_v_origin; 839 } 840 841 version(BindHB_Static) 842 hb_position_t hb_font_get_glyph_h_kerning ( 843 hb_font_t* font, 844 hb_codepoint_t left_glyph, 845 hb_codepoint_t right_glyph); 846 else 847 { 848 private alias fp_hb_font_get_glyph_h_kerning = hb_position_t function ( 849 hb_font_t* font, 850 hb_codepoint_t left_glyph, 851 hb_codepoint_t right_glyph); 852 __gshared fp_hb_font_get_glyph_h_kerning hb_font_get_glyph_h_kerning; 853 } 854 855 version(BindHB_Static) 856 hb_bool_t hb_font_get_glyph_extents ( 857 hb_font_t* font, 858 hb_codepoint_t glyph, 859 hb_glyph_extents_t* extents); 860 else 861 { 862 private alias fp_hb_font_get_glyph_extents = hb_bool_t function ( 863 hb_font_t* font, 864 hb_codepoint_t glyph, 865 hb_glyph_extents_t* extents); 866 __gshared fp_hb_font_get_glyph_extents hb_font_get_glyph_extents; 867 } 868 869 version(BindHB_Static) 870 hb_bool_t hb_font_get_glyph_contour_point ( 871 hb_font_t* font, 872 hb_codepoint_t glyph, 873 uint point_index, 874 hb_position_t* x, 875 hb_position_t* y); 876 else 877 { 878 private alias fp_hb_font_get_glyph_contour_point = hb_bool_t function ( 879 hb_font_t* font, 880 hb_codepoint_t glyph, 881 uint point_index, 882 hb_position_t* x, 883 hb_position_t* y); 884 __gshared fp_hb_font_get_glyph_contour_point hb_font_get_glyph_contour_point; 885 } 886 887 version(BindHB_Static) 888 hb_bool_t hb_font_get_glyph_name ( 889 hb_font_t* font, 890 hb_codepoint_t glyph, 891 char* name, 892 uint size); 893 else 894 { 895 private alias fp_hb_font_get_glyph_name = hb_bool_t function ( 896 hb_font_t* font, 897 hb_codepoint_t glyph, 898 char* name, 899 uint size); 900 __gshared fp_hb_font_get_glyph_name hb_font_get_glyph_name; 901 } 902 903 /* -1 means nul-terminated */ 904 version(BindHB_Static) 905 hb_bool_t hb_font_get_glyph_from_name ( 906 hb_font_t* font, 907 const(char)* name, 908 int len, 909 hb_codepoint_t* glyph); 910 else 911 { 912 private alias fp_hb_font_get_glyph_from_name = hb_bool_t function ( 913 hb_font_t* font, 914 const(char)* name, 915 int len, 916 hb_codepoint_t* glyph); 917 __gshared fp_hb_font_get_glyph_from_name hb_font_get_glyph_from_name; 918 } 919 920 /* high-level funcs, with fallback */ 921 922 /* Calls either hb_font_get_nominal_glyph() if variation_selector is 0, 923 * otherwise calls hb_font_get_variation_glyph(). */ 924 version(BindHB_Static) 925 hb_bool_t hb_font_get_glyph ( 926 hb_font_t* font, 927 hb_codepoint_t unicode, 928 hb_codepoint_t variation_selector, 929 hb_codepoint_t* glyph); 930 else 931 { 932 private alias fp_hb_font_get_glyph = hb_bool_t function ( 933 hb_font_t* font, 934 hb_codepoint_t unicode, 935 hb_codepoint_t variation_selector, 936 hb_codepoint_t* glyph); 937 __gshared fp_hb_font_get_glyph hb_font_get_glyph; 938 } 939 940 version(BindHB_Static) 941 void hb_font_get_extents_for_direction ( 942 hb_font_t* font, 943 hb_direction_t direction, 944 hb_font_extents_t* extents); 945 else 946 { 947 private alias fp_hb_font_get_extents_for_direction = void function ( 948 hb_font_t* font, 949 hb_direction_t direction, 950 hb_font_extents_t* extents); 951 __gshared fp_hb_font_get_extents_for_direction hb_font_get_extents_for_direction; 952 } 953 version(BindHB_Static) 954 void hb_font_get_glyph_advance_for_direction ( 955 hb_font_t* font, 956 hb_codepoint_t glyph, 957 hb_direction_t direction, 958 hb_position_t* x, 959 hb_position_t* y); 960 else 961 { 962 private alias fp_hb_font_get_glyph_advance_for_direction = void function ( 963 hb_font_t* font, 964 hb_codepoint_t glyph, 965 hb_direction_t direction, 966 hb_position_t* x, 967 hb_position_t* y); 968 __gshared fp_hb_font_get_glyph_advance_for_direction hb_font_get_glyph_advance_for_direction; 969 } 970 971 static if (hbSupport >= HBSupport.v2_6_3) 972 { 973 version(BindHB_Static) 974 void hb_font_get_glyph_advances_for_direction ( 975 hb_font_t* font, 976 hb_direction_t direction, 977 uint count, 978 const(hb_codepoint_t)* first_glyph, 979 uint glyph_stride, 980 hb_position_t* first_advance, 981 uint advance_stride); 982 else 983 { 984 private alias fp_hb_font_get_glyph_advances_for_direction = void function ( 985 hb_font_t* font, 986 hb_direction_t direction, 987 uint count, 988 const(hb_codepoint_t)* first_glyph, 989 uint glyph_stride, 990 hb_position_t* first_advance, 991 uint advance_stride); 992 __gshared fp_hb_font_get_glyph_advances_for_direction hb_font_get_glyph_advances_for_direction; 993 } 994 } 995 996 version(BindHB_Static) 997 void hb_font_get_glyph_origin_for_direction ( 998 hb_font_t* font, 999 hb_codepoint_t glyph, 1000 hb_direction_t direction, 1001 hb_position_t* x, 1002 hb_position_t* y); 1003 else 1004 { 1005 private alias fp_hb_font_get_glyph_origin_for_direction = void function ( 1006 hb_font_t* font, 1007 hb_codepoint_t glyph, 1008 hb_direction_t direction, 1009 hb_position_t* x, 1010 hb_position_t* y); 1011 __gshared fp_hb_font_get_glyph_origin_for_direction hb_font_get_glyph_origin_for_direction; 1012 } 1013 version(BindHB_Static) 1014 void hb_font_add_glyph_origin_for_direction ( 1015 hb_font_t* font, 1016 hb_codepoint_t glyph, 1017 hb_direction_t direction, 1018 hb_position_t* x, 1019 hb_position_t* y); 1020 else 1021 { 1022 private alias fp_hb_font_add_glyph_origin_for_direction = void function ( 1023 hb_font_t* font, 1024 hb_codepoint_t glyph, 1025 hb_direction_t direction, 1026 hb_position_t* x, 1027 hb_position_t* y); 1028 __gshared fp_hb_font_add_glyph_origin_for_direction hb_font_add_glyph_origin_for_direction; 1029 } 1030 version(BindHB_Static) 1031 void hb_font_subtract_glyph_origin_for_direction ( 1032 hb_font_t* font, 1033 hb_codepoint_t glyph, 1034 hb_direction_t direction, 1035 hb_position_t* x, 1036 hb_position_t* y); 1037 else 1038 { 1039 private alias fp_hb_font_subtract_glyph_origin_for_direction = void function ( 1040 hb_font_t* font, 1041 hb_codepoint_t glyph, 1042 hb_direction_t direction, 1043 hb_position_t* x, 1044 hb_position_t* y); 1045 __gshared fp_hb_font_subtract_glyph_origin_for_direction hb_font_subtract_glyph_origin_for_direction; 1046 } 1047 1048 version(BindHB_Static) 1049 void hb_font_get_glyph_kerning_for_direction ( 1050 hb_font_t* font, 1051 hb_codepoint_t first_glyph, 1052 hb_codepoint_t second_glyph, 1053 hb_direction_t direction, 1054 hb_position_t* x, 1055 hb_position_t* y); 1056 else 1057 { 1058 private alias fp_hb_font_get_glyph_kerning_for_direction = void function ( 1059 hb_font_t* font, 1060 hb_codepoint_t first_glyph, 1061 hb_codepoint_t second_glyph, 1062 hb_direction_t direction, 1063 hb_position_t* x, 1064 hb_position_t* y); 1065 __gshared fp_hb_font_get_glyph_kerning_for_direction hb_font_get_glyph_kerning_for_direction; 1066 } 1067 1068 version(BindHB_Static) 1069 hb_bool_t hb_font_get_glyph_extents_for_origin ( 1070 hb_font_t* font, 1071 hb_codepoint_t glyph, 1072 hb_direction_t direction, 1073 hb_glyph_extents_t* extents); 1074 else 1075 { 1076 private alias fp_hb_font_get_glyph_extents_for_origin = hb_bool_t function ( 1077 hb_font_t* font, 1078 hb_codepoint_t glyph, 1079 hb_direction_t direction, 1080 hb_glyph_extents_t* extents); 1081 __gshared fp_hb_font_get_glyph_extents_for_origin hb_font_get_glyph_extents_for_origin; 1082 } 1083 1084 version(BindHB_Static) 1085 hb_bool_t hb_font_get_glyph_contour_point_for_origin ( 1086 hb_font_t* font, 1087 hb_codepoint_t glyph, 1088 uint point_index, 1089 hb_direction_t direction, 1090 hb_position_t* x, 1091 hb_position_t* y); 1092 else 1093 { 1094 private alias fp_hb_font_get_glyph_contour_point_for_origin = hb_bool_t function ( 1095 hb_font_t* font, 1096 hb_codepoint_t glyph, 1097 uint point_index, 1098 hb_direction_t direction, 1099 hb_position_t* x, 1100 hb_position_t* y); 1101 __gshared fp_hb_font_get_glyph_contour_point_for_origin hb_font_get_glyph_contour_point_for_origin; 1102 } 1103 1104 /* Generates gidDDD if glyph has no name. */ 1105 version(BindHB_Static) 1106 void hb_font_glyph_to_string ( 1107 hb_font_t* font, 1108 hb_codepoint_t glyph, 1109 char* s, 1110 uint size); 1111 else 1112 { 1113 private alias fp_hb_font_glyph_to_string = void function ( 1114 hb_font_t* font, 1115 hb_codepoint_t glyph, 1116 char* s, 1117 uint size); 1118 __gshared fp_hb_font_glyph_to_string hb_font_glyph_to_string; 1119 } 1120 /* Parses gidDDD and uniUUUU strings automatically. */ 1121 1122 /* -1 means nul-terminated */ 1123 version(BindHB_Static) 1124 hb_bool_t hb_font_glyph_from_string ( 1125 hb_font_t* font, 1126 const(char)* s, 1127 int len, 1128 hb_codepoint_t* glyph); 1129 else 1130 { 1131 private alias fp_hb_font_glyph_from_string = hb_bool_t function ( 1132 hb_font_t* font, 1133 const(char)* s, 1134 int len, 1135 hb_codepoint_t* glyph); 1136 __gshared fp_hb_font_glyph_from_string hb_font_glyph_from_string; 1137 } 1138 1139 /* 1140 * hb_font_t 1141 */ 1142 1143 /* Fonts are very light-weight objects */ 1144 1145 version(BindHB_Static) 1146 hb_font_t* hb_font_create (hb_face_t* face); 1147 else 1148 { 1149 private alias fp_hb_font_create = hb_font_t* function (hb_face_t* face); 1150 __gshared fp_hb_font_create hb_font_create; 1151 } 1152 1153 version(BindHB_Static) 1154 hb_font_t* hb_font_create_sub_font (hb_font_t* parent); 1155 else 1156 { 1157 private alias fp_hb_font_create_sub_font = hb_font_t* function (hb_font_t* parent); 1158 __gshared fp_hb_font_create_sub_font hb_font_create_sub_font; 1159 } 1160 1161 version(BindHB_Static) 1162 hb_font_t* hb_font_get_empty (); 1163 else 1164 { 1165 private alias fp_hb_font_get_empty = hb_font_t* function (); 1166 __gshared fp_hb_font_get_empty hb_font_get_empty; 1167 } 1168 1169 version(BindHB_Static) 1170 hb_font_t* hb_font_reference (hb_font_t* font); 1171 else 1172 { 1173 private alias fp_hb_font_reference = hb_font_t* function (hb_font_t* font); 1174 __gshared fp_hb_font_reference hb_font_reference; 1175 } 1176 1177 version(BindHB_Static) 1178 void hb_font_destroy (hb_font_t* font); 1179 else 1180 { 1181 private alias fp_hb_font_destroy = void function (hb_font_t* font); 1182 __gshared fp_hb_font_destroy hb_font_destroy; 1183 } 1184 1185 version(BindHB_Static) 1186 hb_bool_t hb_font_set_user_data ( 1187 hb_font_t* font, 1188 hb_user_data_key_t* key, 1189 void* data, 1190 hb_destroy_func_t destroy, 1191 hb_bool_t replace); 1192 else 1193 { 1194 private alias fp_hb_font_set_user_data = hb_bool_t function ( 1195 hb_font_t* font, 1196 hb_user_data_key_t* key, 1197 void* data, 1198 hb_destroy_func_t destroy, 1199 hb_bool_t replace); 1200 __gshared fp_hb_font_set_user_data hb_font_set_user_data; 1201 } 1202 1203 version(BindHB_Static) 1204 void* hb_font_get_user_data (hb_font_t* font, hb_user_data_key_t* key); 1205 else 1206 { 1207 private alias fp_hb_font_get_user_data = void* function (hb_font_t* font, hb_user_data_key_t* key); 1208 __gshared fp_hb_font_get_user_data hb_font_get_user_data; 1209 } 1210 1211 version(BindHB_Static) 1212 void hb_font_make_immutable (hb_font_t* font); 1213 else 1214 { 1215 private alias fp_hb_font_make_immutable = void function (hb_font_t* font); 1216 __gshared fp_hb_font_make_immutable hb_font_make_immutable; 1217 } 1218 1219 version(BindHB_Static) 1220 hb_bool_t hb_font_is_immutable (hb_font_t* font); 1221 else 1222 { 1223 private alias fp_hb_font_is_immutable = hb_bool_t function (hb_font_t* font); 1224 __gshared fp_hb_font_is_immutable hb_font_is_immutable; 1225 } 1226 1227 version(BindHB_Static) 1228 void hb_font_set_parent (hb_font_t* font, hb_font_t* parent); 1229 else 1230 { 1231 private alias fp_hb_font_set_parent = void function (hb_font_t* font, hb_font_t* parent); 1232 __gshared fp_hb_font_set_parent hb_font_set_parent; 1233 } 1234 1235 version(BindHB_Static) 1236 hb_font_t* hb_font_get_parent (hb_font_t* font); 1237 else 1238 { 1239 private alias fp_hb_font_get_parent = hb_font_t* function (hb_font_t* font); 1240 __gshared fp_hb_font_get_parent hb_font_get_parent; 1241 } 1242 1243 version(BindHB_Static) 1244 void hb_font_set_face (hb_font_t* font, hb_face_t* face); 1245 else 1246 { 1247 private alias fp_hb_font_set_face = void function (hb_font_t* font, hb_face_t* face); 1248 __gshared fp_hb_font_set_face hb_font_set_face; 1249 } 1250 1251 version(BindHB_Static) 1252 hb_face_t* hb_font_get_face (hb_font_t* font); 1253 else 1254 { 1255 private alias fp_hb_font_get_face = hb_face_t* function (hb_font_t* font); 1256 __gshared fp_hb_font_get_face hb_font_get_face; 1257 } 1258 1259 version(BindHB_Static) 1260 void hb_font_set_funcs ( 1261 hb_font_t* font, 1262 hb_font_funcs_t* klass, 1263 void* font_data, 1264 hb_destroy_func_t destroy); 1265 else 1266 { 1267 private alias fp_hb_font_set_funcs = void function ( 1268 hb_font_t* font, 1269 hb_font_funcs_t* klass, 1270 void* font_data, 1271 hb_destroy_func_t destroy); 1272 __gshared fp_hb_font_set_funcs hb_font_set_funcs; 1273 } 1274 1275 /* Be *very* careful with this function! */ 1276 version(BindHB_Static) 1277 void hb_font_set_funcs_data ( 1278 hb_font_t* font, 1279 void* font_data, 1280 hb_destroy_func_t destroy); 1281 else 1282 { 1283 private alias fp_hb_font_set_funcs_data = void function ( 1284 hb_font_t* font, 1285 void* font_data, 1286 hb_destroy_func_t destroy); 1287 __gshared fp_hb_font_set_funcs_data hb_font_set_funcs_data; 1288 } 1289 1290 version(BindHB_Static) 1291 void hb_font_set_scale (hb_font_t* font, int x_scale, int y_scale); 1292 else 1293 { 1294 private alias fp_hb_font_set_scale = void function (hb_font_t* font, int x_scale, int y_scale); 1295 __gshared fp_hb_font_set_scale hb_font_set_scale; 1296 } 1297 1298 version(BindHB_Static) 1299 void hb_font_get_scale (hb_font_t* font, int* x_scale, int* y_scale); 1300 else 1301 { 1302 private alias fp_hb_font_get_scale = void function (hb_font_t* font, int* x_scale, int* y_scale); 1303 __gshared fp_hb_font_get_scale hb_font_get_scale; 1304 } 1305 1306 /* 1307 * A zero value means "no hinting in that direction" 1308 */ 1309 version(BindHB_Static) 1310 void hb_font_set_ppem (hb_font_t* font, uint x_ppem, uint y_ppem); 1311 else 1312 { 1313 private alias fp_hb_font_set_ppem = void function (hb_font_t* font, uint x_ppem, uint y_ppem); 1314 __gshared fp_hb_font_set_ppem hb_font_set_ppem; 1315 } 1316 1317 version(BindHB_Static) 1318 void hb_font_get_ppem (hb_font_t* font, uint* x_ppem, uint* y_ppem); 1319 else 1320 { 1321 private alias fp_hb_font_get_ppem = void function (hb_font_t* font, uint* x_ppem, uint* y_ppem); 1322 __gshared fp_hb_font_get_ppem hb_font_get_ppem; 1323 } 1324 1325 /* 1326 * Point size per EM. Used for optical-sizing in CoreText. 1327 * A value of zero means "not set". 1328 */ 1329 version(BindHB_Static) 1330 void hb_font_set_ptem (hb_font_t* font, float ptem); 1331 else 1332 { 1333 private alias fp_hb_font_set_ptem = void function (hb_font_t* font, float ptem); 1334 __gshared fp_hb_font_set_ptem hb_font_set_ptem; 1335 } 1336 1337 version(BindHB_Static) 1338 float hb_font_get_ptem (hb_font_t* font); 1339 else 1340 { 1341 private alias fp_hb_font_get_ptem = float function (hb_font_t* font); 1342 __gshared fp_hb_font_get_ptem hb_font_get_ptem; 1343 } 1344 1345 version(BindHB_Static) 1346 void hb_font_set_variations ( 1347 hb_font_t* font, 1348 const(hb_variation_t)* variations, 1349 uint variations_length); 1350 else 1351 { 1352 private alias fp_hb_font_set_variations = void function ( 1353 hb_font_t* font, 1354 const(hb_variation_t)* variations, 1355 uint variations_length); 1356 __gshared fp_hb_font_set_variations hb_font_set_variations; 1357 } 1358 1359 version(BindHB_Static) 1360 void hb_font_set_var_coords_design ( 1361 hb_font_t* font, 1362 const(float)* coords, 1363 uint coords_length); 1364 else 1365 { 1366 private alias fp_hb_font_set_var_coords_design = void function ( 1367 hb_font_t* font, 1368 const(float)* coords, 1369 uint coords_length); 1370 __gshared fp_hb_font_set_var_coords_design hb_font_set_var_coords_design; 1371 } 1372 1373 /* 2.14 normalized */ 1374 version(BindHB_Static) 1375 void hb_font_set_var_coords_normalized ( 1376 hb_font_t* font, 1377 const(int)* coords, 1378 uint coords_length); 1379 else 1380 { 1381 private alias fp_hb_font_set_var_coords_normalized = void function ( 1382 hb_font_t* font, 1383 const(int)* coords, 1384 uint coords_length); 1385 __gshared fp_hb_font_set_var_coords_normalized hb_font_set_var_coords_normalized; 1386 } 1387 1388 version(BindHB_Static) 1389 const(int)* hb_font_get_var_coords_normalized (hb_font_t* font, uint* length); 1390 else 1391 { 1392 private alias fp_hb_font_get_var_coords_normalized = const(int)* function (hb_font_t* font, uint* length); 1393 __gshared fp_hb_font_get_var_coords_normalized hb_font_get_var_coords_normalized; 1394 } 1395 1396 static if (hbSupport >= HBSupport.v2_6_3) 1397 { 1398 version(BindHB_Static) 1399 void hb_font_set_var_named_instance (hb_font_t* font, uint instance_index); 1400 else 1401 { 1402 private alias fp_hb_font_set_var_named_instance = void function (hb_font_t* font, uint instance_index); 1403 __gshared fp_hb_font_set_var_named_instance hb_font_set_var_named_instance; 1404 } 1405 }