File indexing completed on 2025-02-21 10:04:01
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
0028 #error "Include <hb.h> instead."
0029 #endif
0030
0031 #ifndef HB_FONT_H
0032 #define HB_FONT_H
0033
0034 #include "hb-common.h"
0035 #include "hb-face.h"
0036 #include "hb-draw.h"
0037 #include "hb-paint.h"
0038
0039 HB_BEGIN_DECLS
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058 typedef struct hb_font_funcs_t hb_font_funcs_t;
0059
0060 HB_EXTERN hb_font_funcs_t *
0061 hb_font_funcs_create (void);
0062
0063 HB_EXTERN hb_font_funcs_t *
0064 hb_font_funcs_get_empty (void);
0065
0066 HB_EXTERN hb_font_funcs_t *
0067 hb_font_funcs_reference (hb_font_funcs_t *ffuncs);
0068
0069 HB_EXTERN void
0070 hb_font_funcs_destroy (hb_font_funcs_t *ffuncs);
0071
0072 HB_EXTERN hb_bool_t
0073 hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs,
0074 hb_user_data_key_t *key,
0075 void * data,
0076 hb_destroy_func_t destroy,
0077 hb_bool_t replace);
0078
0079
0080 HB_EXTERN void *
0081 hb_font_funcs_get_user_data (const hb_font_funcs_t *ffuncs,
0082 hb_user_data_key_t *key);
0083
0084
0085 HB_EXTERN void
0086 hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs);
0087
0088 HB_EXTERN hb_bool_t
0089 hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs);
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105 typedef struct hb_font_extents_t {
0106 hb_position_t ascender;
0107 hb_position_t descender;
0108 hb_position_t line_gap;
0109
0110 hb_position_t reserved9;
0111 hb_position_t reserved8;
0112 hb_position_t reserved7;
0113 hb_position_t reserved6;
0114 hb_position_t reserved5;
0115 hb_position_t reserved4;
0116 hb_position_t reserved3;
0117 hb_position_t reserved2;
0118 hb_position_t reserved1;
0119 } hb_font_extents_t;
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133 typedef hb_bool_t (*hb_font_get_font_extents_func_t) (hb_font_t *font, void *font_data,
0134 hb_font_extents_t *extents,
0135 void *user_data);
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147 typedef hb_font_get_font_extents_func_t hb_font_get_font_h_extents_func_t;
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159 typedef hb_font_get_font_extents_func_t hb_font_get_font_v_extents_func_t;
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178 typedef hb_bool_t (*hb_font_get_nominal_glyph_func_t) (hb_font_t *font, void *font_data,
0179 hb_codepoint_t unicode,
0180 hb_codepoint_t *glyph,
0181 void *user_data);
0182
0183
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201 typedef hb_bool_t (*hb_font_get_variation_glyph_func_t) (hb_font_t *font, void *font_data,
0202 hb_codepoint_t unicode, hb_codepoint_t variation_selector,
0203 hb_codepoint_t *glyph,
0204 void *user_data);
0205
0206
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227 typedef unsigned int (*hb_font_get_nominal_glyphs_func_t) (hb_font_t *font, void *font_data,
0228 unsigned int count,
0229 const hb_codepoint_t *first_unicode,
0230 unsigned int unicode_stride,
0231 hb_codepoint_t *first_glyph,
0232 unsigned int glyph_stride,
0233 void *user_data);
0234
0235
0236
0237
0238
0239
0240
0241
0242
0243
0244
0245
0246
0247
0248
0249
0250 typedef hb_position_t (*hb_font_get_glyph_advance_func_t) (hb_font_t *font, void *font_data,
0251 hb_codepoint_t glyph,
0252 void *user_data);
0253
0254
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264 typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_h_advance_func_t;
0265
0266
0267
0268
0269
0270
0271
0272
0273
0274
0275
0276 typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_v_advance_func_t;
0277
0278
0279
0280
0281
0282
0283
0284
0285
0286
0287
0288
0289
0290
0291
0292
0293
0294 typedef void (*hb_font_get_glyph_advances_func_t) (hb_font_t* font, void* font_data,
0295 unsigned int count,
0296 const hb_codepoint_t *first_glyph,
0297 unsigned glyph_stride,
0298 hb_position_t *first_advance,
0299 unsigned advance_stride,
0300 void *user_data);
0301
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311 typedef hb_font_get_glyph_advances_func_t hb_font_get_glyph_h_advances_func_t;
0312
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322 typedef hb_font_get_glyph_advances_func_t hb_font_get_glyph_v_advances_func_t;
0323
0324
0325
0326
0327
0328
0329
0330
0331
0332
0333
0334
0335
0336
0337
0338
0339
0340
0341
0342 typedef hb_bool_t (*hb_font_get_glyph_origin_func_t) (hb_font_t *font, void *font_data,
0343 hb_codepoint_t glyph,
0344 hb_position_t *x, hb_position_t *y,
0345 void *user_data);
0346
0347
0348
0349
0350
0351
0352
0353
0354
0355
0356
0357 typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_h_origin_func_t;
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368
0369 typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_v_origin_func_t;
0370
0371
0372
0373
0374
0375
0376
0377
0378
0379
0380
0381
0382
0383 typedef hb_position_t (*hb_font_get_glyph_kerning_func_t) (hb_font_t *font, void *font_data,
0384 hb_codepoint_t first_glyph, hb_codepoint_t second_glyph,
0385 void *user_data);
0386
0387
0388
0389
0390
0391
0392
0393
0394
0395 typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_h_kerning_func_t;
0396
0397
0398
0399
0400
0401
0402
0403
0404
0405
0406
0407
0408
0409
0410
0411
0412
0413
0414 typedef hb_bool_t (*hb_font_get_glyph_extents_func_t) (hb_font_t *font, void *font_data,
0415 hb_codepoint_t glyph,
0416 hb_glyph_extents_t *extents,
0417 void *user_data);
0418
0419
0420
0421
0422
0423
0424
0425
0426
0427
0428
0429
0430
0431
0432
0433
0434
0435
0436
0437
0438 typedef hb_bool_t (*hb_font_get_glyph_contour_point_func_t) (hb_font_t *font, void *font_data,
0439 hb_codepoint_t glyph, unsigned int point_index,
0440 hb_position_t *x, hb_position_t *y,
0441 void *user_data);
0442
0443
0444
0445
0446
0447
0448
0449
0450
0451
0452
0453
0454
0455
0456
0457
0458
0459
0460
0461 typedef hb_bool_t (*hb_font_get_glyph_name_func_t) (hb_font_t *font, void *font_data,
0462 hb_codepoint_t glyph,
0463 char *name, unsigned int size,
0464 void *user_data);
0465
0466
0467
0468
0469
0470
0471
0472
0473
0474
0475
0476
0477
0478
0479
0480
0481
0482
0483 typedef hb_bool_t (*hb_font_get_glyph_from_name_func_t) (hb_font_t *font, void *font_data,
0484 const char *name, int len,
0485 hb_codepoint_t *glyph,
0486 void *user_data);
0487
0488
0489
0490
0491
0492
0493
0494
0495
0496
0497
0498
0499
0500
0501
0502 typedef void (*hb_font_draw_glyph_func_t) (hb_font_t *font, void *font_data,
0503 hb_codepoint_t glyph,
0504 hb_draw_funcs_t *draw_funcs, void *draw_data,
0505 void *user_data);
0506
0507
0508
0509
0510
0511
0512
0513
0514
0515
0516
0517
0518
0519
0520
0521
0522 typedef void (*hb_font_paint_glyph_func_t) (hb_font_t *font, void *font_data,
0523 hb_codepoint_t glyph,
0524 hb_paint_funcs_t *paint_funcs, void *paint_data,
0525 unsigned int palette_index,
0526 hb_color_t foreground,
0527 void *user_data);
0528
0529
0530
0531
0532
0533
0534
0535
0536
0537
0538
0539
0540
0541
0542 HB_EXTERN void
0543 hb_font_funcs_set_font_h_extents_func (hb_font_funcs_t *ffuncs,
0544 hb_font_get_font_h_extents_func_t func,
0545 void *user_data, hb_destroy_func_t destroy);
0546
0547
0548
0549
0550
0551
0552
0553
0554
0555
0556
0557
0558 HB_EXTERN void
0559 hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs,
0560 hb_font_get_font_v_extents_func_t func,
0561 void *user_data, hb_destroy_func_t destroy);
0562
0563
0564
0565
0566
0567
0568
0569
0570
0571
0572
0573
0574 HB_EXTERN void
0575 hb_font_funcs_set_nominal_glyph_func (hb_font_funcs_t *ffuncs,
0576 hb_font_get_nominal_glyph_func_t func,
0577 void *user_data, hb_destroy_func_t destroy);
0578
0579
0580
0581
0582
0583
0584
0585
0586
0587
0588
0589
0590 HB_EXTERN void
0591 hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs,
0592 hb_font_get_nominal_glyphs_func_t func,
0593 void *user_data, hb_destroy_func_t destroy);
0594
0595
0596
0597
0598
0599
0600
0601
0602
0603
0604
0605
0606 HB_EXTERN void
0607 hb_font_funcs_set_variation_glyph_func (hb_font_funcs_t *ffuncs,
0608 hb_font_get_variation_glyph_func_t func,
0609 void *user_data, hb_destroy_func_t destroy);
0610
0611
0612
0613
0614
0615
0616
0617
0618
0619
0620
0621
0622 HB_EXTERN void
0623 hb_font_funcs_set_glyph_h_advance_func (hb_font_funcs_t *ffuncs,
0624 hb_font_get_glyph_h_advance_func_t func,
0625 void *user_data, hb_destroy_func_t destroy);
0626
0627
0628
0629
0630
0631
0632
0633
0634
0635
0636
0637
0638 HB_EXTERN void
0639 hb_font_funcs_set_glyph_v_advance_func (hb_font_funcs_t *ffuncs,
0640 hb_font_get_glyph_v_advance_func_t func,
0641 void *user_data, hb_destroy_func_t destroy);
0642
0643
0644
0645
0646
0647
0648
0649
0650
0651
0652
0653
0654 HB_EXTERN void
0655 hb_font_funcs_set_glyph_h_advances_func (hb_font_funcs_t *ffuncs,
0656 hb_font_get_glyph_h_advances_func_t func,
0657 void *user_data, hb_destroy_func_t destroy);
0658
0659
0660
0661
0662
0663
0664
0665
0666
0667
0668
0669
0670 HB_EXTERN void
0671 hb_font_funcs_set_glyph_v_advances_func (hb_font_funcs_t *ffuncs,
0672 hb_font_get_glyph_v_advances_func_t func,
0673 void *user_data, hb_destroy_func_t destroy);
0674
0675
0676
0677
0678
0679
0680
0681
0682
0683
0684
0685
0686 HB_EXTERN void
0687 hb_font_funcs_set_glyph_h_origin_func (hb_font_funcs_t *ffuncs,
0688 hb_font_get_glyph_h_origin_func_t func,
0689 void *user_data, hb_destroy_func_t destroy);
0690
0691
0692
0693
0694
0695
0696
0697
0698
0699
0700
0701
0702 HB_EXTERN void
0703 hb_font_funcs_set_glyph_v_origin_func (hb_font_funcs_t *ffuncs,
0704 hb_font_get_glyph_v_origin_func_t func,
0705 void *user_data, hb_destroy_func_t destroy);
0706
0707
0708
0709
0710
0711
0712
0713
0714
0715
0716
0717
0718 HB_EXTERN void
0719 hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs,
0720 hb_font_get_glyph_h_kerning_func_t func,
0721 void *user_data, hb_destroy_func_t destroy);
0722
0723
0724
0725
0726
0727
0728
0729
0730
0731
0732
0733
0734 HB_EXTERN void
0735 hb_font_funcs_set_glyph_extents_func (hb_font_funcs_t *ffuncs,
0736 hb_font_get_glyph_extents_func_t func,
0737 void *user_data, hb_destroy_func_t destroy);
0738
0739
0740
0741
0742
0743
0744
0745
0746
0747
0748
0749
0750 HB_EXTERN void
0751 hb_font_funcs_set_glyph_contour_point_func (hb_font_funcs_t *ffuncs,
0752 hb_font_get_glyph_contour_point_func_t func,
0753 void *user_data, hb_destroy_func_t destroy);
0754
0755
0756
0757
0758
0759
0760
0761
0762
0763
0764
0765
0766 HB_EXTERN void
0767 hb_font_funcs_set_glyph_name_func (hb_font_funcs_t *ffuncs,
0768 hb_font_get_glyph_name_func_t func,
0769 void *user_data, hb_destroy_func_t destroy);
0770
0771
0772
0773
0774
0775
0776
0777
0778
0779
0780
0781
0782 HB_EXTERN void
0783 hb_font_funcs_set_glyph_from_name_func (hb_font_funcs_t *ffuncs,
0784 hb_font_get_glyph_from_name_func_t func,
0785 void *user_data, hb_destroy_func_t destroy);
0786
0787
0788
0789
0790
0791
0792
0793
0794
0795
0796
0797
0798 HB_EXTERN void
0799 hb_font_funcs_set_draw_glyph_func (hb_font_funcs_t *ffuncs,
0800 hb_font_draw_glyph_func_t func,
0801 void *user_data, hb_destroy_func_t destroy);
0802
0803
0804
0805
0806
0807
0808
0809
0810
0811
0812
0813
0814 HB_EXTERN void
0815 hb_font_funcs_set_paint_glyph_func (hb_font_funcs_t *ffuncs,
0816 hb_font_paint_glyph_func_t func,
0817 void *user_data, hb_destroy_func_t destroy);
0818
0819
0820
0821 HB_EXTERN hb_bool_t
0822 hb_font_get_h_extents (hb_font_t *font,
0823 hb_font_extents_t *extents);
0824 HB_EXTERN hb_bool_t
0825 hb_font_get_v_extents (hb_font_t *font,
0826 hb_font_extents_t *extents);
0827
0828 HB_EXTERN hb_bool_t
0829 hb_font_get_nominal_glyph (hb_font_t *font,
0830 hb_codepoint_t unicode,
0831 hb_codepoint_t *glyph);
0832 HB_EXTERN hb_bool_t
0833 hb_font_get_variation_glyph (hb_font_t *font,
0834 hb_codepoint_t unicode, hb_codepoint_t variation_selector,
0835 hb_codepoint_t *glyph);
0836
0837 HB_EXTERN unsigned int
0838 hb_font_get_nominal_glyphs (hb_font_t *font,
0839 unsigned int count,
0840 const hb_codepoint_t *first_unicode,
0841 unsigned int unicode_stride,
0842 hb_codepoint_t *first_glyph,
0843 unsigned int glyph_stride);
0844
0845 HB_EXTERN hb_position_t
0846 hb_font_get_glyph_h_advance (hb_font_t *font,
0847 hb_codepoint_t glyph);
0848 HB_EXTERN hb_position_t
0849 hb_font_get_glyph_v_advance (hb_font_t *font,
0850 hb_codepoint_t glyph);
0851
0852 HB_EXTERN void
0853 hb_font_get_glyph_h_advances (hb_font_t* font,
0854 unsigned int count,
0855 const hb_codepoint_t *first_glyph,
0856 unsigned glyph_stride,
0857 hb_position_t *first_advance,
0858 unsigned advance_stride);
0859 HB_EXTERN void
0860 hb_font_get_glyph_v_advances (hb_font_t* font,
0861 unsigned int count,
0862 const hb_codepoint_t *first_glyph,
0863 unsigned glyph_stride,
0864 hb_position_t *first_advance,
0865 unsigned advance_stride);
0866
0867 HB_EXTERN hb_bool_t
0868 hb_font_get_glyph_h_origin (hb_font_t *font,
0869 hb_codepoint_t glyph,
0870 hb_position_t *x, hb_position_t *y);
0871 HB_EXTERN hb_bool_t
0872 hb_font_get_glyph_v_origin (hb_font_t *font,
0873 hb_codepoint_t glyph,
0874 hb_position_t *x, hb_position_t *y);
0875
0876 HB_EXTERN hb_position_t
0877 hb_font_get_glyph_h_kerning (hb_font_t *font,
0878 hb_codepoint_t left_glyph, hb_codepoint_t right_glyph);
0879
0880 HB_EXTERN hb_bool_t
0881 hb_font_get_glyph_extents (hb_font_t *font,
0882 hb_codepoint_t glyph,
0883 hb_glyph_extents_t *extents);
0884
0885 HB_EXTERN hb_bool_t
0886 hb_font_get_glyph_contour_point (hb_font_t *font,
0887 hb_codepoint_t glyph, unsigned int point_index,
0888 hb_position_t *x, hb_position_t *y);
0889
0890 HB_EXTERN hb_bool_t
0891 hb_font_get_glyph_name (hb_font_t *font,
0892 hb_codepoint_t glyph,
0893 char *name, unsigned int size);
0894 HB_EXTERN hb_bool_t
0895 hb_font_get_glyph_from_name (hb_font_t *font,
0896 const char *name, int len,
0897 hb_codepoint_t *glyph);
0898
0899 HB_EXTERN void
0900 hb_font_draw_glyph (hb_font_t *font,
0901 hb_codepoint_t glyph,
0902 hb_draw_funcs_t *dfuncs, void *draw_data);
0903
0904 HB_EXTERN void
0905 hb_font_paint_glyph (hb_font_t *font,
0906 hb_codepoint_t glyph,
0907 hb_paint_funcs_t *pfuncs, void *paint_data,
0908 unsigned int palette_index,
0909 hb_color_t foreground);
0910
0911
0912
0913
0914
0915 HB_EXTERN hb_bool_t
0916 hb_font_get_glyph (hb_font_t *font,
0917 hb_codepoint_t unicode, hb_codepoint_t variation_selector,
0918 hb_codepoint_t *glyph);
0919
0920 HB_EXTERN void
0921 hb_font_get_extents_for_direction (hb_font_t *font,
0922 hb_direction_t direction,
0923 hb_font_extents_t *extents);
0924 HB_EXTERN void
0925 hb_font_get_glyph_advance_for_direction (hb_font_t *font,
0926 hb_codepoint_t glyph,
0927 hb_direction_t direction,
0928 hb_position_t *x, hb_position_t *y);
0929 HB_EXTERN void
0930 hb_font_get_glyph_advances_for_direction (hb_font_t* font,
0931 hb_direction_t direction,
0932 unsigned int count,
0933 const hb_codepoint_t *first_glyph,
0934 unsigned glyph_stride,
0935 hb_position_t *first_advance,
0936 unsigned advance_stride);
0937 HB_EXTERN void
0938 hb_font_get_glyph_origin_for_direction (hb_font_t *font,
0939 hb_codepoint_t glyph,
0940 hb_direction_t direction,
0941 hb_position_t *x, hb_position_t *y);
0942 HB_EXTERN void
0943 hb_font_add_glyph_origin_for_direction (hb_font_t *font,
0944 hb_codepoint_t glyph,
0945 hb_direction_t direction,
0946 hb_position_t *x, hb_position_t *y);
0947 HB_EXTERN void
0948 hb_font_subtract_glyph_origin_for_direction (hb_font_t *font,
0949 hb_codepoint_t glyph,
0950 hb_direction_t direction,
0951 hb_position_t *x, hb_position_t *y);
0952
0953 HB_EXTERN void
0954 hb_font_get_glyph_kerning_for_direction (hb_font_t *font,
0955 hb_codepoint_t first_glyph, hb_codepoint_t second_glyph,
0956 hb_direction_t direction,
0957 hb_position_t *x, hb_position_t *y);
0958
0959 HB_EXTERN hb_bool_t
0960 hb_font_get_glyph_extents_for_origin (hb_font_t *font,
0961 hb_codepoint_t glyph,
0962 hb_direction_t direction,
0963 hb_glyph_extents_t *extents);
0964
0965 HB_EXTERN hb_bool_t
0966 hb_font_get_glyph_contour_point_for_origin (hb_font_t *font,
0967 hb_codepoint_t glyph, unsigned int point_index,
0968 hb_direction_t direction,
0969 hb_position_t *x, hb_position_t *y);
0970
0971
0972 HB_EXTERN void
0973 hb_font_glyph_to_string (hb_font_t *font,
0974 hb_codepoint_t glyph,
0975 char *s, unsigned int size);
0976
0977 HB_EXTERN hb_bool_t
0978 hb_font_glyph_from_string (hb_font_t *font,
0979 const char *s, int len,
0980 hb_codepoint_t *glyph);
0981
0982
0983
0984
0985
0986
0987
0988
0989 HB_EXTERN hb_font_t *
0990 hb_font_create (hb_face_t *face);
0991
0992 HB_EXTERN hb_font_t *
0993 hb_font_create_sub_font (hb_font_t *parent);
0994
0995 HB_EXTERN hb_font_t *
0996 hb_font_get_empty (void);
0997
0998 HB_EXTERN hb_font_t *
0999 hb_font_reference (hb_font_t *font);
1000
1001 HB_EXTERN void
1002 hb_font_destroy (hb_font_t *font);
1003
1004 HB_EXTERN hb_bool_t
1005 hb_font_set_user_data (hb_font_t *font,
1006 hb_user_data_key_t *key,
1007 void * data,
1008 hb_destroy_func_t destroy,
1009 hb_bool_t replace);
1010
1011
1012 HB_EXTERN void *
1013 hb_font_get_user_data (const hb_font_t *font,
1014 hb_user_data_key_t *key);
1015
1016 HB_EXTERN void
1017 hb_font_make_immutable (hb_font_t *font);
1018
1019 HB_EXTERN hb_bool_t
1020 hb_font_is_immutable (hb_font_t *font);
1021
1022 HB_EXTERN unsigned int
1023 hb_font_get_serial (hb_font_t *font);
1024
1025 HB_EXTERN void
1026 hb_font_changed (hb_font_t *font);
1027
1028 HB_EXTERN void
1029 hb_font_set_parent (hb_font_t *font,
1030 hb_font_t *parent);
1031
1032 HB_EXTERN hb_font_t *
1033 hb_font_get_parent (hb_font_t *font);
1034
1035 HB_EXTERN void
1036 hb_font_set_face (hb_font_t *font,
1037 hb_face_t *face);
1038
1039 HB_EXTERN hb_face_t *
1040 hb_font_get_face (hb_font_t *font);
1041
1042
1043 HB_EXTERN void
1044 hb_font_set_funcs (hb_font_t *font,
1045 hb_font_funcs_t *klass,
1046 void *font_data,
1047 hb_destroy_func_t destroy);
1048
1049
1050 HB_EXTERN void
1051 hb_font_set_funcs_data (hb_font_t *font,
1052 void *font_data,
1053 hb_destroy_func_t destroy);
1054
1055
1056 HB_EXTERN void
1057 hb_font_set_scale (hb_font_t *font,
1058 int x_scale,
1059 int y_scale);
1060
1061 HB_EXTERN void
1062 hb_font_get_scale (hb_font_t *font,
1063 int *x_scale,
1064 int *y_scale);
1065
1066
1067
1068
1069 HB_EXTERN void
1070 hb_font_set_ppem (hb_font_t *font,
1071 unsigned int x_ppem,
1072 unsigned int y_ppem);
1073
1074 HB_EXTERN void
1075 hb_font_get_ppem (hb_font_t *font,
1076 unsigned int *x_ppem,
1077 unsigned int *y_ppem);
1078
1079
1080
1081
1082
1083 HB_EXTERN void
1084 hb_font_set_ptem (hb_font_t *font, float ptem);
1085
1086 HB_EXTERN float
1087 hb_font_get_ptem (hb_font_t *font);
1088
1089 HB_EXTERN void
1090 hb_font_set_synthetic_bold (hb_font_t *font,
1091 float x_embolden, float y_embolden,
1092 hb_bool_t in_place);
1093
1094 HB_EXTERN void
1095 hb_font_get_synthetic_bold (hb_font_t *font,
1096 float *x_embolden, float *y_embolden,
1097 hb_bool_t *in_place);
1098
1099 HB_EXTERN void
1100 hb_font_set_synthetic_slant (hb_font_t *font, float slant);
1101
1102 HB_EXTERN float
1103 hb_font_get_synthetic_slant (hb_font_t *font);
1104
1105 HB_EXTERN void
1106 hb_font_set_variations (hb_font_t *font,
1107 const hb_variation_t *variations,
1108 unsigned int variations_length);
1109
1110 HB_EXTERN void
1111 hb_font_set_variation (hb_font_t *font,
1112 hb_tag_t tag,
1113 float value);
1114
1115 HB_EXTERN void
1116 hb_font_set_var_coords_design (hb_font_t *font,
1117 const float *coords,
1118 unsigned int coords_length);
1119
1120 HB_EXTERN const float *
1121 hb_font_get_var_coords_design (hb_font_t *font,
1122 unsigned int *length);
1123
1124 HB_EXTERN void
1125 hb_font_set_var_coords_normalized (hb_font_t *font,
1126 const int *coords,
1127 unsigned int coords_length);
1128
1129 HB_EXTERN const int *
1130 hb_font_get_var_coords_normalized (hb_font_t *font,
1131 unsigned int *length);
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142 #define HB_FONT_NO_VAR_NAMED_INSTANCE 0xFFFFFFFF
1143
1144 HB_EXTERN void
1145 hb_font_set_var_named_instance (hb_font_t *font,
1146 unsigned int instance_index);
1147
1148 HB_EXTERN unsigned int
1149 hb_font_get_var_named_instance (hb_font_t *font);
1150
1151 HB_END_DECLS
1152
1153 #endif