1*2d1272b8SAndroid Build Coastguard Worker /* 2*2d1272b8SAndroid Build Coastguard Worker * Copyright © 2009 Red Hat, Inc. 3*2d1272b8SAndroid Build Coastguard Worker * 4*2d1272b8SAndroid Build Coastguard Worker * This is part of HarfBuzz, a text shaping library. 5*2d1272b8SAndroid Build Coastguard Worker * 6*2d1272b8SAndroid Build Coastguard Worker * Permission is hereby granted, without written agreement and without 7*2d1272b8SAndroid Build Coastguard Worker * license or royalty fees, to use, copy, modify, and distribute this 8*2d1272b8SAndroid Build Coastguard Worker * software and its documentation for any purpose, provided that the 9*2d1272b8SAndroid Build Coastguard Worker * above copyright notice and the following two paragraphs appear in 10*2d1272b8SAndroid Build Coastguard Worker * all copies of this software. 11*2d1272b8SAndroid Build Coastguard Worker * 12*2d1272b8SAndroid Build Coastguard Worker * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 13*2d1272b8SAndroid Build Coastguard Worker * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 14*2d1272b8SAndroid Build Coastguard Worker * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 15*2d1272b8SAndroid Build Coastguard Worker * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 16*2d1272b8SAndroid Build Coastguard Worker * DAMAGE. 17*2d1272b8SAndroid Build Coastguard Worker * 18*2d1272b8SAndroid Build Coastguard Worker * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 19*2d1272b8SAndroid Build Coastguard Worker * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 20*2d1272b8SAndroid Build Coastguard Worker * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 21*2d1272b8SAndroid Build Coastguard Worker * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 22*2d1272b8SAndroid Build Coastguard Worker * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 23*2d1272b8SAndroid Build Coastguard Worker * 24*2d1272b8SAndroid Build Coastguard Worker * Red Hat Author(s): Behdad Esfahbod 25*2d1272b8SAndroid Build Coastguard Worker */ 26*2d1272b8SAndroid Build Coastguard Worker 27*2d1272b8SAndroid Build Coastguard Worker #if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) 28*2d1272b8SAndroid Build Coastguard Worker #error "Include <hb.h> instead." 29*2d1272b8SAndroid Build Coastguard Worker #endif 30*2d1272b8SAndroid Build Coastguard Worker 31*2d1272b8SAndroid Build Coastguard Worker #ifndef HB_FONT_H 32*2d1272b8SAndroid Build Coastguard Worker #define HB_FONT_H 33*2d1272b8SAndroid Build Coastguard Worker 34*2d1272b8SAndroid Build Coastguard Worker #include "hb-common.h" 35*2d1272b8SAndroid Build Coastguard Worker #include "hb-face.h" 36*2d1272b8SAndroid Build Coastguard Worker #include "hb-draw.h" 37*2d1272b8SAndroid Build Coastguard Worker #include "hb-paint.h" 38*2d1272b8SAndroid Build Coastguard Worker 39*2d1272b8SAndroid Build Coastguard Worker HB_BEGIN_DECLS 40*2d1272b8SAndroid Build Coastguard Worker 41*2d1272b8SAndroid Build Coastguard Worker /* 42*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_t 43*2d1272b8SAndroid Build Coastguard Worker */ 44*2d1272b8SAndroid Build Coastguard Worker 45*2d1272b8SAndroid Build Coastguard Worker /** 46*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_t: 47*2d1272b8SAndroid Build Coastguard Worker * 48*2d1272b8SAndroid Build Coastguard Worker * Data type containing a set of virtual methods used for 49*2d1272b8SAndroid Build Coastguard Worker * working on #hb_font_t font objects. 50*2d1272b8SAndroid Build Coastguard Worker * 51*2d1272b8SAndroid Build Coastguard Worker * HarfBuzz provides a lightweight default function for each of 52*2d1272b8SAndroid Build Coastguard Worker * the methods in #hb_font_funcs_t. Client programs can implement 53*2d1272b8SAndroid Build Coastguard Worker * their own replacements for the individual font functions, as 54*2d1272b8SAndroid Build Coastguard Worker * needed, and replace the default by calling the setter for a 55*2d1272b8SAndroid Build Coastguard Worker * method. 56*2d1272b8SAndroid Build Coastguard Worker * 57*2d1272b8SAndroid Build Coastguard Worker **/ 58*2d1272b8SAndroid Build Coastguard Worker typedef struct hb_font_funcs_t hb_font_funcs_t; 59*2d1272b8SAndroid Build Coastguard Worker 60*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_font_funcs_t * 61*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_create (void); 62*2d1272b8SAndroid Build Coastguard Worker 63*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_font_funcs_t * 64*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_get_empty (void); 65*2d1272b8SAndroid Build Coastguard Worker 66*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_font_funcs_t * 67*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_reference (hb_font_funcs_t *ffuncs); 68*2d1272b8SAndroid Build Coastguard Worker 69*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 70*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_destroy (hb_font_funcs_t *ffuncs); 71*2d1272b8SAndroid Build Coastguard Worker 72*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 73*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, 74*2d1272b8SAndroid Build Coastguard Worker hb_user_data_key_t *key, 75*2d1272b8SAndroid Build Coastguard Worker void * data, 76*2d1272b8SAndroid Build Coastguard Worker hb_destroy_func_t destroy, 77*2d1272b8SAndroid Build Coastguard Worker hb_bool_t replace); 78*2d1272b8SAndroid Build Coastguard Worker 79*2d1272b8SAndroid Build Coastguard Worker 80*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void * 81*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_get_user_data (const hb_font_funcs_t *ffuncs, 82*2d1272b8SAndroid Build Coastguard Worker hb_user_data_key_t *key); 83*2d1272b8SAndroid Build Coastguard Worker 84*2d1272b8SAndroid Build Coastguard Worker 85*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 86*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs); 87*2d1272b8SAndroid Build Coastguard Worker 88*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 89*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs); 90*2d1272b8SAndroid Build Coastguard Worker 91*2d1272b8SAndroid Build Coastguard Worker 92*2d1272b8SAndroid Build Coastguard Worker /* font extents */ 93*2d1272b8SAndroid Build Coastguard Worker 94*2d1272b8SAndroid Build Coastguard Worker /** 95*2d1272b8SAndroid Build Coastguard Worker * hb_font_extents_t: 96*2d1272b8SAndroid Build Coastguard Worker * @ascender: The height of typographic ascenders. 97*2d1272b8SAndroid Build Coastguard Worker * @descender: The depth of typographic descenders. 98*2d1272b8SAndroid Build Coastguard Worker * @line_gap: The suggested line-spacing gap. 99*2d1272b8SAndroid Build Coastguard Worker * 100*2d1272b8SAndroid Build Coastguard Worker * Font-wide extent values, measured in font units. 101*2d1272b8SAndroid Build Coastguard Worker * 102*2d1272b8SAndroid Build Coastguard Worker * Note that typically @ascender is positive and @descender 103*2d1272b8SAndroid Build Coastguard Worker * negative, in coordinate systems that grow up. 104*2d1272b8SAndroid Build Coastguard Worker **/ 105*2d1272b8SAndroid Build Coastguard Worker typedef struct hb_font_extents_t { 106*2d1272b8SAndroid Build Coastguard Worker hb_position_t ascender; 107*2d1272b8SAndroid Build Coastguard Worker hb_position_t descender; 108*2d1272b8SAndroid Build Coastguard Worker hb_position_t line_gap; 109*2d1272b8SAndroid Build Coastguard Worker /*< private >*/ 110*2d1272b8SAndroid Build Coastguard Worker hb_position_t reserved9; 111*2d1272b8SAndroid Build Coastguard Worker hb_position_t reserved8; 112*2d1272b8SAndroid Build Coastguard Worker hb_position_t reserved7; 113*2d1272b8SAndroid Build Coastguard Worker hb_position_t reserved6; 114*2d1272b8SAndroid Build Coastguard Worker hb_position_t reserved5; 115*2d1272b8SAndroid Build Coastguard Worker hb_position_t reserved4; 116*2d1272b8SAndroid Build Coastguard Worker hb_position_t reserved3; 117*2d1272b8SAndroid Build Coastguard Worker hb_position_t reserved2; 118*2d1272b8SAndroid Build Coastguard Worker hb_position_t reserved1; 119*2d1272b8SAndroid Build Coastguard Worker } hb_font_extents_t; 120*2d1272b8SAndroid Build Coastguard Worker 121*2d1272b8SAndroid Build Coastguard Worker /* func types */ 122*2d1272b8SAndroid Build Coastguard Worker 123*2d1272b8SAndroid Build Coastguard Worker /** 124*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_font_extents_func_t: 125*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 126*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 127*2d1272b8SAndroid Build Coastguard Worker * @extents: (out): The font extents retrieved 128*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 129*2d1272b8SAndroid Build Coastguard Worker * 130*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the extents for a font. 131*2d1272b8SAndroid Build Coastguard Worker * 132*2d1272b8SAndroid Build Coastguard Worker **/ 133*2d1272b8SAndroid Build Coastguard Worker typedef hb_bool_t (*hb_font_get_font_extents_func_t) (hb_font_t *font, void *font_data, 134*2d1272b8SAndroid Build Coastguard Worker hb_font_extents_t *extents, 135*2d1272b8SAndroid Build Coastguard Worker void *user_data); 136*2d1272b8SAndroid Build Coastguard Worker 137*2d1272b8SAndroid Build Coastguard Worker /** 138*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_font_h_extents_func_t: 139*2d1272b8SAndroid Build Coastguard Worker * 140*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 141*2d1272b8SAndroid Build Coastguard Worker * 142*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the extents for a font, for horizontal-direction 143*2d1272b8SAndroid Build Coastguard Worker * text segments. Extents must be returned in an #hb_glyph_extents output 144*2d1272b8SAndroid Build Coastguard Worker * parameter. 145*2d1272b8SAndroid Build Coastguard Worker * 146*2d1272b8SAndroid Build Coastguard Worker **/ 147*2d1272b8SAndroid Build Coastguard Worker typedef hb_font_get_font_extents_func_t hb_font_get_font_h_extents_func_t; 148*2d1272b8SAndroid Build Coastguard Worker 149*2d1272b8SAndroid Build Coastguard Worker /** 150*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_font_v_extents_func_t: 151*2d1272b8SAndroid Build Coastguard Worker * 152*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 153*2d1272b8SAndroid Build Coastguard Worker * 154*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the extents for a font, for vertical-direction 155*2d1272b8SAndroid Build Coastguard Worker * text segments. Extents must be returned in an #hb_glyph_extents output 156*2d1272b8SAndroid Build Coastguard Worker * parameter. 157*2d1272b8SAndroid Build Coastguard Worker * 158*2d1272b8SAndroid Build Coastguard Worker **/ 159*2d1272b8SAndroid Build Coastguard Worker typedef hb_font_get_font_extents_func_t hb_font_get_font_v_extents_func_t; 160*2d1272b8SAndroid Build Coastguard Worker 161*2d1272b8SAndroid Build Coastguard Worker 162*2d1272b8SAndroid Build Coastguard Worker /** 163*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_nominal_glyph_func_t: 164*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 165*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 166*2d1272b8SAndroid Build Coastguard Worker * @unicode: The Unicode code point to query 167*2d1272b8SAndroid Build Coastguard Worker * @glyph: (out): The glyph ID retrieved 168*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 169*2d1272b8SAndroid Build Coastguard Worker * 170*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 171*2d1272b8SAndroid Build Coastguard Worker * 172*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the nominal glyph ID for a specified Unicode code 173*2d1272b8SAndroid Build Coastguard Worker * point. Glyph IDs must be returned in a #hb_codepoint_t output parameter. 174*2d1272b8SAndroid Build Coastguard Worker * 175*2d1272b8SAndroid Build Coastguard Worker * Return value: `true` if data found, `false` otherwise 176*2d1272b8SAndroid Build Coastguard Worker * 177*2d1272b8SAndroid Build Coastguard Worker **/ 178*2d1272b8SAndroid Build Coastguard Worker typedef hb_bool_t (*hb_font_get_nominal_glyph_func_t) (hb_font_t *font, void *font_data, 179*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t unicode, 180*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t *glyph, 181*2d1272b8SAndroid Build Coastguard Worker void *user_data); 182*2d1272b8SAndroid Build Coastguard Worker 183*2d1272b8SAndroid Build Coastguard Worker /** 184*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_variation_glyph_func_t: 185*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 186*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 187*2d1272b8SAndroid Build Coastguard Worker * @unicode: The Unicode code point to query 188*2d1272b8SAndroid Build Coastguard Worker * @variation_selector: The variation-selector code point to query 189*2d1272b8SAndroid Build Coastguard Worker * @glyph: (out): The glyph ID retrieved 190*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 191*2d1272b8SAndroid Build Coastguard Worker * 192*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 193*2d1272b8SAndroid Build Coastguard Worker * 194*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the glyph ID for a specified Unicode code point 195*2d1272b8SAndroid Build Coastguard Worker * followed by a specified Variation Selector code point. Glyph IDs must be 196*2d1272b8SAndroid Build Coastguard Worker * returned in a #hb_codepoint_t output parameter. 197*2d1272b8SAndroid Build Coastguard Worker * 198*2d1272b8SAndroid Build Coastguard Worker * Return value: `true` if data found, `false` otherwise 199*2d1272b8SAndroid Build Coastguard Worker * 200*2d1272b8SAndroid Build Coastguard Worker **/ 201*2d1272b8SAndroid Build Coastguard Worker typedef hb_bool_t (*hb_font_get_variation_glyph_func_t) (hb_font_t *font, void *font_data, 202*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t unicode, hb_codepoint_t variation_selector, 203*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t *glyph, 204*2d1272b8SAndroid Build Coastguard Worker void *user_data); 205*2d1272b8SAndroid Build Coastguard Worker 206*2d1272b8SAndroid Build Coastguard Worker 207*2d1272b8SAndroid Build Coastguard Worker /** 208*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_nominal_glyphs_func_t: 209*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 210*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 211*2d1272b8SAndroid Build Coastguard Worker * @count: number of code points to query 212*2d1272b8SAndroid Build Coastguard Worker * @first_unicode: The first Unicode code point to query 213*2d1272b8SAndroid Build Coastguard Worker * @unicode_stride: The stride between successive code points 214*2d1272b8SAndroid Build Coastguard Worker * @first_glyph: (out): The first glyph ID retrieved 215*2d1272b8SAndroid Build Coastguard Worker * @glyph_stride: The stride between successive glyph IDs 216*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 217*2d1272b8SAndroid Build Coastguard Worker * 218*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 219*2d1272b8SAndroid Build Coastguard Worker * 220*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the nominal glyph IDs for a sequence of 221*2d1272b8SAndroid Build Coastguard Worker * Unicode code points. Glyph IDs must be returned in a #hb_codepoint_t 222*2d1272b8SAndroid Build Coastguard Worker * output parameter. 223*2d1272b8SAndroid Build Coastguard Worker * 224*2d1272b8SAndroid Build Coastguard Worker * Return value: the number of code points processed 225*2d1272b8SAndroid Build Coastguard Worker * 226*2d1272b8SAndroid Build Coastguard Worker **/ 227*2d1272b8SAndroid Build Coastguard Worker typedef unsigned int (*hb_font_get_nominal_glyphs_func_t) (hb_font_t *font, void *font_data, 228*2d1272b8SAndroid Build Coastguard Worker unsigned int count, 229*2d1272b8SAndroid Build Coastguard Worker const hb_codepoint_t *first_unicode, 230*2d1272b8SAndroid Build Coastguard Worker unsigned int unicode_stride, 231*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t *first_glyph, 232*2d1272b8SAndroid Build Coastguard Worker unsigned int glyph_stride, 233*2d1272b8SAndroid Build Coastguard Worker void *user_data); 234*2d1272b8SAndroid Build Coastguard Worker 235*2d1272b8SAndroid Build Coastguard Worker /** 236*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_advance_func_t: 237*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 238*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 239*2d1272b8SAndroid Build Coastguard Worker * @glyph: The glyph ID to query 240*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 241*2d1272b8SAndroid Build Coastguard Worker * 242*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 243*2d1272b8SAndroid Build Coastguard Worker * 244*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the advance for a specified glyph. The 245*2d1272b8SAndroid Build Coastguard Worker * method must return an #hb_position_t. 246*2d1272b8SAndroid Build Coastguard Worker * 247*2d1272b8SAndroid Build Coastguard Worker * Return value: The advance of @glyph within @font 248*2d1272b8SAndroid Build Coastguard Worker * 249*2d1272b8SAndroid Build Coastguard Worker **/ 250*2d1272b8SAndroid Build Coastguard Worker typedef hb_position_t (*hb_font_get_glyph_advance_func_t) (hb_font_t *font, void *font_data, 251*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 252*2d1272b8SAndroid Build Coastguard Worker void *user_data); 253*2d1272b8SAndroid Build Coastguard Worker 254*2d1272b8SAndroid Build Coastguard Worker /** 255*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_h_advance_func_t: 256*2d1272b8SAndroid Build Coastguard Worker * 257*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 258*2d1272b8SAndroid Build Coastguard Worker * 259*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the advance for a specified glyph, in 260*2d1272b8SAndroid Build Coastguard Worker * horizontal-direction text segments. Advances must be returned in 261*2d1272b8SAndroid Build Coastguard Worker * an #hb_position_t output parameter. 262*2d1272b8SAndroid Build Coastguard Worker * 263*2d1272b8SAndroid Build Coastguard Worker **/ 264*2d1272b8SAndroid Build Coastguard Worker typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_h_advance_func_t; 265*2d1272b8SAndroid Build Coastguard Worker 266*2d1272b8SAndroid Build Coastguard Worker /** 267*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_v_advance_func_t: 268*2d1272b8SAndroid Build Coastguard Worker * 269*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 270*2d1272b8SAndroid Build Coastguard Worker * 271*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the advance for a specified glyph, in 272*2d1272b8SAndroid Build Coastguard Worker * vertical-direction text segments. Advances must be returned in 273*2d1272b8SAndroid Build Coastguard Worker * an #hb_position_t output parameter. 274*2d1272b8SAndroid Build Coastguard Worker * 275*2d1272b8SAndroid Build Coastguard Worker **/ 276*2d1272b8SAndroid Build Coastguard Worker typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_v_advance_func_t; 277*2d1272b8SAndroid Build Coastguard Worker 278*2d1272b8SAndroid Build Coastguard Worker /** 279*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_advances_func_t: 280*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 281*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 282*2d1272b8SAndroid Build Coastguard Worker * @count: The number of glyph IDs in the sequence queried 283*2d1272b8SAndroid Build Coastguard Worker * @first_glyph: The first glyph ID to query 284*2d1272b8SAndroid Build Coastguard Worker * @glyph_stride: The stride between successive glyph IDs 285*2d1272b8SAndroid Build Coastguard Worker * @first_advance: (out): The first advance retrieved 286*2d1272b8SAndroid Build Coastguard Worker * @advance_stride: The stride between successive advances 287*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 288*2d1272b8SAndroid Build Coastguard Worker * 289*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 290*2d1272b8SAndroid Build Coastguard Worker * 291*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the advances for a sequence of glyphs. 292*2d1272b8SAndroid Build Coastguard Worker * 293*2d1272b8SAndroid Build Coastguard Worker **/ 294*2d1272b8SAndroid Build Coastguard Worker typedef void (*hb_font_get_glyph_advances_func_t) (hb_font_t* font, void* font_data, 295*2d1272b8SAndroid Build Coastguard Worker unsigned int count, 296*2d1272b8SAndroid Build Coastguard Worker const hb_codepoint_t *first_glyph, 297*2d1272b8SAndroid Build Coastguard Worker unsigned glyph_stride, 298*2d1272b8SAndroid Build Coastguard Worker hb_position_t *first_advance, 299*2d1272b8SAndroid Build Coastguard Worker unsigned advance_stride, 300*2d1272b8SAndroid Build Coastguard Worker void *user_data); 301*2d1272b8SAndroid Build Coastguard Worker 302*2d1272b8SAndroid Build Coastguard Worker /** 303*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_h_advances_func_t: 304*2d1272b8SAndroid Build Coastguard Worker * 305*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 306*2d1272b8SAndroid Build Coastguard Worker * 307*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the advances for a sequence of glyphs, in 308*2d1272b8SAndroid Build Coastguard Worker * horizontal-direction text segments. 309*2d1272b8SAndroid Build Coastguard Worker * 310*2d1272b8SAndroid Build Coastguard Worker **/ 311*2d1272b8SAndroid Build Coastguard Worker typedef hb_font_get_glyph_advances_func_t hb_font_get_glyph_h_advances_func_t; 312*2d1272b8SAndroid Build Coastguard Worker 313*2d1272b8SAndroid Build Coastguard Worker /** 314*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_v_advances_func_t: 315*2d1272b8SAndroid Build Coastguard Worker * 316*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 317*2d1272b8SAndroid Build Coastguard Worker * 318*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the advances for a sequence of glyphs, in 319*2d1272b8SAndroid Build Coastguard Worker * vertical-direction text segments. 320*2d1272b8SAndroid Build Coastguard Worker * 321*2d1272b8SAndroid Build Coastguard Worker **/ 322*2d1272b8SAndroid Build Coastguard Worker typedef hb_font_get_glyph_advances_func_t hb_font_get_glyph_v_advances_func_t; 323*2d1272b8SAndroid Build Coastguard Worker 324*2d1272b8SAndroid Build Coastguard Worker /** 325*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_origin_func_t: 326*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 327*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 328*2d1272b8SAndroid Build Coastguard Worker * @glyph: The glyph ID to query 329*2d1272b8SAndroid Build Coastguard Worker * @x: (out): The X coordinate of the origin 330*2d1272b8SAndroid Build Coastguard Worker * @y: (out): The Y coordinate of the origin 331*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 332*2d1272b8SAndroid Build Coastguard Worker * 333*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 334*2d1272b8SAndroid Build Coastguard Worker * 335*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the (X,Y) coordinates (in font units) of the 336*2d1272b8SAndroid Build Coastguard Worker * origin for a glyph. Each coordinate must be returned in an #hb_position_t 337*2d1272b8SAndroid Build Coastguard Worker * output parameter. 338*2d1272b8SAndroid Build Coastguard Worker * 339*2d1272b8SAndroid Build Coastguard Worker * Return value: `true` if data found, `false` otherwise 340*2d1272b8SAndroid Build Coastguard Worker * 341*2d1272b8SAndroid Build Coastguard Worker **/ 342*2d1272b8SAndroid Build Coastguard Worker typedef hb_bool_t (*hb_font_get_glyph_origin_func_t) (hb_font_t *font, void *font_data, 343*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 344*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y, 345*2d1272b8SAndroid Build Coastguard Worker void *user_data); 346*2d1272b8SAndroid Build Coastguard Worker 347*2d1272b8SAndroid Build Coastguard Worker /** 348*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_h_origin_func_t: 349*2d1272b8SAndroid Build Coastguard Worker * 350*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 351*2d1272b8SAndroid Build Coastguard Worker * 352*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the (X,Y) coordinates (in font units) of the 353*2d1272b8SAndroid Build Coastguard Worker * origin for a glyph, for horizontal-direction text segments. Each 354*2d1272b8SAndroid Build Coastguard Worker * coordinate must be returned in an #hb_position_t output parameter. 355*2d1272b8SAndroid Build Coastguard Worker * 356*2d1272b8SAndroid Build Coastguard Worker **/ 357*2d1272b8SAndroid Build Coastguard Worker typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_h_origin_func_t; 358*2d1272b8SAndroid Build Coastguard Worker 359*2d1272b8SAndroid Build Coastguard Worker /** 360*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_v_origin_func_t: 361*2d1272b8SAndroid Build Coastguard Worker * 362*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 363*2d1272b8SAndroid Build Coastguard Worker * 364*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the (X,Y) coordinates (in font units) of the 365*2d1272b8SAndroid Build Coastguard Worker * origin for a glyph, for vertical-direction text segments. Each coordinate 366*2d1272b8SAndroid Build Coastguard Worker * must be returned in an #hb_position_t output parameter. 367*2d1272b8SAndroid Build Coastguard Worker * 368*2d1272b8SAndroid Build Coastguard Worker **/ 369*2d1272b8SAndroid Build Coastguard Worker typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_v_origin_func_t; 370*2d1272b8SAndroid Build Coastguard Worker 371*2d1272b8SAndroid Build Coastguard Worker /** 372*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_kerning_func_t: 373*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 374*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 375*2d1272b8SAndroid Build Coastguard Worker * @first_glyph: The glyph ID of the first glyph in the glyph pair 376*2d1272b8SAndroid Build Coastguard Worker * @second_glyph: The glyph ID of the second glyph in the glyph pair 377*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 378*2d1272b8SAndroid Build Coastguard Worker * 379*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the kerning-adjustment value for a glyph-pair in 380*2d1272b8SAndroid Build Coastguard Worker * the specified font, for horizontal text segments. 381*2d1272b8SAndroid Build Coastguard Worker * 382*2d1272b8SAndroid Build Coastguard Worker **/ 383*2d1272b8SAndroid Build Coastguard Worker typedef hb_position_t (*hb_font_get_glyph_kerning_func_t) (hb_font_t *font, void *font_data, 384*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, 385*2d1272b8SAndroid Build Coastguard Worker void *user_data); 386*2d1272b8SAndroid Build Coastguard Worker /** 387*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_h_kerning_func_t: 388*2d1272b8SAndroid Build Coastguard Worker * 389*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 390*2d1272b8SAndroid Build Coastguard Worker * 391*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the kerning-adjustment value for a glyph-pair in 392*2d1272b8SAndroid Build Coastguard Worker * the specified font, for horizontal text segments. 393*2d1272b8SAndroid Build Coastguard Worker * 394*2d1272b8SAndroid Build Coastguard Worker **/ 395*2d1272b8SAndroid Build Coastguard Worker typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_h_kerning_func_t; 396*2d1272b8SAndroid Build Coastguard Worker 397*2d1272b8SAndroid Build Coastguard Worker 398*2d1272b8SAndroid Build Coastguard Worker /** 399*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_extents_func_t: 400*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 401*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 402*2d1272b8SAndroid Build Coastguard Worker * @glyph: The glyph ID to query 403*2d1272b8SAndroid Build Coastguard Worker * @extents: (out): The #hb_glyph_extents_t retrieved 404*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 405*2d1272b8SAndroid Build Coastguard Worker * 406*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 407*2d1272b8SAndroid Build Coastguard Worker * 408*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the extents for a specified glyph. Extents must be 409*2d1272b8SAndroid Build Coastguard Worker * returned in an #hb_glyph_extents output parameter. 410*2d1272b8SAndroid Build Coastguard Worker * 411*2d1272b8SAndroid Build Coastguard Worker * Return value: `true` if data found, `false` otherwise 412*2d1272b8SAndroid Build Coastguard Worker * 413*2d1272b8SAndroid Build Coastguard Worker **/ 414*2d1272b8SAndroid Build Coastguard Worker typedef hb_bool_t (*hb_font_get_glyph_extents_func_t) (hb_font_t *font, void *font_data, 415*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 416*2d1272b8SAndroid Build Coastguard Worker hb_glyph_extents_t *extents, 417*2d1272b8SAndroid Build Coastguard Worker void *user_data); 418*2d1272b8SAndroid Build Coastguard Worker 419*2d1272b8SAndroid Build Coastguard Worker /** 420*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_contour_point_func_t: 421*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 422*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 423*2d1272b8SAndroid Build Coastguard Worker * @glyph: The glyph ID to query 424*2d1272b8SAndroid Build Coastguard Worker * @point_index: The contour-point index to query 425*2d1272b8SAndroid Build Coastguard Worker * @x: (out): The X value retrieved for the contour point 426*2d1272b8SAndroid Build Coastguard Worker * @y: (out): The Y value retrieved for the contour point 427*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 428*2d1272b8SAndroid Build Coastguard Worker * 429*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 430*2d1272b8SAndroid Build Coastguard Worker * 431*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the (X,Y) coordinates (in font units) for a 432*2d1272b8SAndroid Build Coastguard Worker * specified contour point in a glyph. Each coordinate must be returned as 433*2d1272b8SAndroid Build Coastguard Worker * an #hb_position_t output parameter. 434*2d1272b8SAndroid Build Coastguard Worker * 435*2d1272b8SAndroid Build Coastguard Worker * Return value: `true` if data found, `false` otherwise 436*2d1272b8SAndroid Build Coastguard Worker * 437*2d1272b8SAndroid Build Coastguard Worker **/ 438*2d1272b8SAndroid Build Coastguard Worker typedef hb_bool_t (*hb_font_get_glyph_contour_point_func_t) (hb_font_t *font, void *font_data, 439*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, unsigned int point_index, 440*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y, 441*2d1272b8SAndroid Build Coastguard Worker void *user_data); 442*2d1272b8SAndroid Build Coastguard Worker 443*2d1272b8SAndroid Build Coastguard Worker 444*2d1272b8SAndroid Build Coastguard Worker /** 445*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_name_func_t: 446*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 447*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 448*2d1272b8SAndroid Build Coastguard Worker * @glyph: The glyph ID to query 449*2d1272b8SAndroid Build Coastguard Worker * @name: (out) (array length=size): Name string retrieved for the glyph ID 450*2d1272b8SAndroid Build Coastguard Worker * @size: Length of the glyph-name string retrieved 451*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 452*2d1272b8SAndroid Build Coastguard Worker * 453*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 454*2d1272b8SAndroid Build Coastguard Worker * 455*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the glyph name that corresponds to a 456*2d1272b8SAndroid Build Coastguard Worker * glyph ID. The name should be returned in a string output parameter. 457*2d1272b8SAndroid Build Coastguard Worker * 458*2d1272b8SAndroid Build Coastguard Worker * Return value: `true` if data found, `false` otherwise 459*2d1272b8SAndroid Build Coastguard Worker * 460*2d1272b8SAndroid Build Coastguard Worker **/ 461*2d1272b8SAndroid Build Coastguard Worker typedef hb_bool_t (*hb_font_get_glyph_name_func_t) (hb_font_t *font, void *font_data, 462*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 463*2d1272b8SAndroid Build Coastguard Worker char *name, unsigned int size, 464*2d1272b8SAndroid Build Coastguard Worker void *user_data); 465*2d1272b8SAndroid Build Coastguard Worker 466*2d1272b8SAndroid Build Coastguard Worker /** 467*2d1272b8SAndroid Build Coastguard Worker * hb_font_get_glyph_from_name_func_t: 468*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 469*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 470*2d1272b8SAndroid Build Coastguard Worker * @name: (array length=len): The name string to query 471*2d1272b8SAndroid Build Coastguard Worker * @len: The length of the name queried 472*2d1272b8SAndroid Build Coastguard Worker * @glyph: (out): The glyph ID retrieved 473*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 474*2d1272b8SAndroid Build Coastguard Worker * 475*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 476*2d1272b8SAndroid Build Coastguard Worker * 477*2d1272b8SAndroid Build Coastguard Worker * This method should retrieve the glyph ID that corresponds to a glyph-name 478*2d1272b8SAndroid Build Coastguard Worker * string. 479*2d1272b8SAndroid Build Coastguard Worker * 480*2d1272b8SAndroid Build Coastguard Worker * Return value: `true` if data found, `false` otherwise 481*2d1272b8SAndroid Build Coastguard Worker * 482*2d1272b8SAndroid Build Coastguard Worker **/ 483*2d1272b8SAndroid Build Coastguard Worker typedef hb_bool_t (*hb_font_get_glyph_from_name_func_t) (hb_font_t *font, void *font_data, 484*2d1272b8SAndroid Build Coastguard Worker const char *name, int len, /* -1 means nul-terminated */ 485*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t *glyph, 486*2d1272b8SAndroid Build Coastguard Worker void *user_data); 487*2d1272b8SAndroid Build Coastguard Worker 488*2d1272b8SAndroid Build Coastguard Worker /** 489*2d1272b8SAndroid Build Coastguard Worker * hb_font_draw_glyph_func_t: 490*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 491*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 492*2d1272b8SAndroid Build Coastguard Worker * @glyph: The glyph ID to query 493*2d1272b8SAndroid Build Coastguard Worker * @draw_funcs: The draw functions to send the shape data to 494*2d1272b8SAndroid Build Coastguard Worker * @draw_data: The data accompanying the draw functions 495*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 496*2d1272b8SAndroid Build Coastguard Worker * 497*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 498*2d1272b8SAndroid Build Coastguard Worker * 499*2d1272b8SAndroid Build Coastguard Worker * Since: 7.0.0 500*2d1272b8SAndroid Build Coastguard Worker * 501*2d1272b8SAndroid Build Coastguard Worker **/ 502*2d1272b8SAndroid Build Coastguard Worker typedef void (*hb_font_draw_glyph_func_t) (hb_font_t *font, void *font_data, 503*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 504*2d1272b8SAndroid Build Coastguard Worker hb_draw_funcs_t *draw_funcs, void *draw_data, 505*2d1272b8SAndroid Build Coastguard Worker void *user_data); 506*2d1272b8SAndroid Build Coastguard Worker 507*2d1272b8SAndroid Build Coastguard Worker /** 508*2d1272b8SAndroid Build Coastguard Worker * hb_font_paint_glyph_func_t: 509*2d1272b8SAndroid Build Coastguard Worker * @font: #hb_font_t to work upon 510*2d1272b8SAndroid Build Coastguard Worker * @font_data: @font user data pointer 511*2d1272b8SAndroid Build Coastguard Worker * @glyph: The glyph ID to query 512*2d1272b8SAndroid Build Coastguard Worker * @paint_funcs: The paint functions to use 513*2d1272b8SAndroid Build Coastguard Worker * @paint_data: The data accompanying the paint functions 514*2d1272b8SAndroid Build Coastguard Worker * @palette_index: The color palette to use 515*2d1272b8SAndroid Build Coastguard Worker * @foreground: The foreground color 516*2d1272b8SAndroid Build Coastguard Worker * @user_data: User data pointer passed by the caller 517*2d1272b8SAndroid Build Coastguard Worker * 518*2d1272b8SAndroid Build Coastguard Worker * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. 519*2d1272b8SAndroid Build Coastguard Worker * 520*2d1272b8SAndroid Build Coastguard Worker * Since: 7.0.0 521*2d1272b8SAndroid Build Coastguard Worker */ 522*2d1272b8SAndroid Build Coastguard Worker typedef void (*hb_font_paint_glyph_func_t) (hb_font_t *font, void *font_data, 523*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 524*2d1272b8SAndroid Build Coastguard Worker hb_paint_funcs_t *paint_funcs, void *paint_data, 525*2d1272b8SAndroid Build Coastguard Worker unsigned int palette_index, 526*2d1272b8SAndroid Build Coastguard Worker hb_color_t foreground, 527*2d1272b8SAndroid Build Coastguard Worker void *user_data); 528*2d1272b8SAndroid Build Coastguard Worker 529*2d1272b8SAndroid Build Coastguard Worker /* func setters */ 530*2d1272b8SAndroid Build Coastguard Worker 531*2d1272b8SAndroid Build Coastguard Worker /** 532*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_font_h_extents_func: 533*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 534*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 535*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 536*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 537*2d1272b8SAndroid Build Coastguard Worker * 538*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_font_h_extents_func_t. 539*2d1272b8SAndroid Build Coastguard Worker * 540*2d1272b8SAndroid Build Coastguard Worker * Since: 1.1.2 541*2d1272b8SAndroid Build Coastguard Worker **/ 542*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 543*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_font_h_extents_func (hb_font_funcs_t *ffuncs, 544*2d1272b8SAndroid Build Coastguard Worker hb_font_get_font_h_extents_func_t func, 545*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 546*2d1272b8SAndroid Build Coastguard Worker 547*2d1272b8SAndroid Build Coastguard Worker /** 548*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_font_v_extents_func: 549*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 550*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 551*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 552*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 553*2d1272b8SAndroid Build Coastguard Worker * 554*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_font_v_extents_func_t. 555*2d1272b8SAndroid Build Coastguard Worker * 556*2d1272b8SAndroid Build Coastguard Worker * Since: 1.1.2 557*2d1272b8SAndroid Build Coastguard Worker **/ 558*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 559*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs, 560*2d1272b8SAndroid Build Coastguard Worker hb_font_get_font_v_extents_func_t func, 561*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 562*2d1272b8SAndroid Build Coastguard Worker 563*2d1272b8SAndroid Build Coastguard Worker /** 564*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_nominal_glyph_func: 565*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 566*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 567*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 568*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 569*2d1272b8SAndroid Build Coastguard Worker * 570*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_nominal_glyph_func_t. 571*2d1272b8SAndroid Build Coastguard Worker * 572*2d1272b8SAndroid Build Coastguard Worker * Since: 1.2.3 573*2d1272b8SAndroid Build Coastguard Worker **/ 574*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 575*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_nominal_glyph_func (hb_font_funcs_t *ffuncs, 576*2d1272b8SAndroid Build Coastguard Worker hb_font_get_nominal_glyph_func_t func, 577*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 578*2d1272b8SAndroid Build Coastguard Worker 579*2d1272b8SAndroid Build Coastguard Worker /** 580*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_nominal_glyphs_func: 581*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 582*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 583*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 584*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 585*2d1272b8SAndroid Build Coastguard Worker * 586*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_nominal_glyphs_func_t. 587*2d1272b8SAndroid Build Coastguard Worker * 588*2d1272b8SAndroid Build Coastguard Worker * Since: 2.0.0 589*2d1272b8SAndroid Build Coastguard Worker **/ 590*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 591*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs, 592*2d1272b8SAndroid Build Coastguard Worker hb_font_get_nominal_glyphs_func_t func, 593*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 594*2d1272b8SAndroid Build Coastguard Worker 595*2d1272b8SAndroid Build Coastguard Worker /** 596*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_variation_glyph_func: 597*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 598*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 599*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 600*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 601*2d1272b8SAndroid Build Coastguard Worker * 602*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_variation_glyph_func_t. 603*2d1272b8SAndroid Build Coastguard Worker * 604*2d1272b8SAndroid Build Coastguard Worker * Since: 1.2.3 605*2d1272b8SAndroid Build Coastguard Worker **/ 606*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 607*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_variation_glyph_func (hb_font_funcs_t *ffuncs, 608*2d1272b8SAndroid Build Coastguard Worker hb_font_get_variation_glyph_func_t func, 609*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 610*2d1272b8SAndroid Build Coastguard Worker 611*2d1272b8SAndroid Build Coastguard Worker /** 612*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_h_advance_func: 613*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 614*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 615*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 616*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 617*2d1272b8SAndroid Build Coastguard Worker * 618*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_h_advance_func_t. 619*2d1272b8SAndroid Build Coastguard Worker * 620*2d1272b8SAndroid Build Coastguard Worker * Since: 0.9.2 621*2d1272b8SAndroid Build Coastguard Worker **/ 622*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 623*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_h_advance_func (hb_font_funcs_t *ffuncs, 624*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_h_advance_func_t func, 625*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 626*2d1272b8SAndroid Build Coastguard Worker 627*2d1272b8SAndroid Build Coastguard Worker /** 628*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_v_advance_func: 629*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 630*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 631*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 632*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 633*2d1272b8SAndroid Build Coastguard Worker * 634*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_v_advance_func_t. 635*2d1272b8SAndroid Build Coastguard Worker * 636*2d1272b8SAndroid Build Coastguard Worker * Since: 0.9.2 637*2d1272b8SAndroid Build Coastguard Worker **/ 638*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 639*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_v_advance_func (hb_font_funcs_t *ffuncs, 640*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_v_advance_func_t func, 641*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 642*2d1272b8SAndroid Build Coastguard Worker 643*2d1272b8SAndroid Build Coastguard Worker /** 644*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_h_advances_func: 645*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 646*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 647*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 648*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 649*2d1272b8SAndroid Build Coastguard Worker * 650*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_h_advances_func_t. 651*2d1272b8SAndroid Build Coastguard Worker * 652*2d1272b8SAndroid Build Coastguard Worker * Since: 1.8.6 653*2d1272b8SAndroid Build Coastguard Worker **/ 654*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 655*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_h_advances_func (hb_font_funcs_t *ffuncs, 656*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_h_advances_func_t func, 657*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 658*2d1272b8SAndroid Build Coastguard Worker 659*2d1272b8SAndroid Build Coastguard Worker /** 660*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_v_advances_func: 661*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 662*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 663*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 664*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 665*2d1272b8SAndroid Build Coastguard Worker * 666*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_v_advances_func_t. 667*2d1272b8SAndroid Build Coastguard Worker * 668*2d1272b8SAndroid Build Coastguard Worker * Since: 1.8.6 669*2d1272b8SAndroid Build Coastguard Worker **/ 670*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 671*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_v_advances_func (hb_font_funcs_t *ffuncs, 672*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_v_advances_func_t func, 673*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 674*2d1272b8SAndroid Build Coastguard Worker 675*2d1272b8SAndroid Build Coastguard Worker /** 676*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_h_origin_func: 677*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 678*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 679*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 680*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 681*2d1272b8SAndroid Build Coastguard Worker * 682*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_h_origin_func_t. 683*2d1272b8SAndroid Build Coastguard Worker * 684*2d1272b8SAndroid Build Coastguard Worker * Since: 0.9.2 685*2d1272b8SAndroid Build Coastguard Worker **/ 686*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 687*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_h_origin_func (hb_font_funcs_t *ffuncs, 688*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_h_origin_func_t func, 689*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 690*2d1272b8SAndroid Build Coastguard Worker 691*2d1272b8SAndroid Build Coastguard Worker /** 692*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_v_origin_func: 693*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 694*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 695*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 696*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 697*2d1272b8SAndroid Build Coastguard Worker * 698*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_v_origin_func_t. 699*2d1272b8SAndroid Build Coastguard Worker * 700*2d1272b8SAndroid Build Coastguard Worker * Since: 0.9.2 701*2d1272b8SAndroid Build Coastguard Worker **/ 702*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 703*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_v_origin_func (hb_font_funcs_t *ffuncs, 704*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_v_origin_func_t func, 705*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 706*2d1272b8SAndroid Build Coastguard Worker 707*2d1272b8SAndroid Build Coastguard Worker /** 708*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_h_kerning_func: 709*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 710*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 711*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 712*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 713*2d1272b8SAndroid Build Coastguard Worker * 714*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_h_kerning_func_t. 715*2d1272b8SAndroid Build Coastguard Worker * 716*2d1272b8SAndroid Build Coastguard Worker * Since: 0.9.2 717*2d1272b8SAndroid Build Coastguard Worker **/ 718*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 719*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs, 720*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_h_kerning_func_t func, 721*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 722*2d1272b8SAndroid Build Coastguard Worker 723*2d1272b8SAndroid Build Coastguard Worker /** 724*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_extents_func: 725*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 726*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 727*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 728*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 729*2d1272b8SAndroid Build Coastguard Worker * 730*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_extents_func_t. 731*2d1272b8SAndroid Build Coastguard Worker * 732*2d1272b8SAndroid Build Coastguard Worker * Since: 0.9.2 733*2d1272b8SAndroid Build Coastguard Worker **/ 734*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 735*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_extents_func (hb_font_funcs_t *ffuncs, 736*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_extents_func_t func, 737*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 738*2d1272b8SAndroid Build Coastguard Worker 739*2d1272b8SAndroid Build Coastguard Worker /** 740*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_contour_point_func: 741*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 742*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 743*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 744*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 745*2d1272b8SAndroid Build Coastguard Worker * 746*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_contour_point_func_t. 747*2d1272b8SAndroid Build Coastguard Worker * 748*2d1272b8SAndroid Build Coastguard Worker * Since: 0.9.2 749*2d1272b8SAndroid Build Coastguard Worker **/ 750*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 751*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_contour_point_func (hb_font_funcs_t *ffuncs, 752*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_contour_point_func_t func, 753*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 754*2d1272b8SAndroid Build Coastguard Worker 755*2d1272b8SAndroid Build Coastguard Worker /** 756*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_name_func: 757*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 758*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 759*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 760*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 761*2d1272b8SAndroid Build Coastguard Worker * 762*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_name_func_t. 763*2d1272b8SAndroid Build Coastguard Worker * 764*2d1272b8SAndroid Build Coastguard Worker * Since: 0.9.2 765*2d1272b8SAndroid Build Coastguard Worker **/ 766*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 767*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_name_func (hb_font_funcs_t *ffuncs, 768*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_name_func_t func, 769*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 770*2d1272b8SAndroid Build Coastguard Worker 771*2d1272b8SAndroid Build Coastguard Worker /** 772*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_glyph_from_name_func: 773*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 774*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 775*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 776*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 777*2d1272b8SAndroid Build Coastguard Worker * 778*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_get_glyph_from_name_func_t. 779*2d1272b8SAndroid Build Coastguard Worker * 780*2d1272b8SAndroid Build Coastguard Worker * Since: 0.9.2 781*2d1272b8SAndroid Build Coastguard Worker **/ 782*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 783*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_glyph_from_name_func (hb_font_funcs_t *ffuncs, 784*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_from_name_func_t func, 785*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 786*2d1272b8SAndroid Build Coastguard Worker 787*2d1272b8SAndroid Build Coastguard Worker /** 788*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_draw_glyph_func: 789*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 790*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 791*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 792*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is not needed anymore 793*2d1272b8SAndroid Build Coastguard Worker * 794*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_draw_glyph_func_t. 795*2d1272b8SAndroid Build Coastguard Worker * 796*2d1272b8SAndroid Build Coastguard Worker * Since: 7.0.0 797*2d1272b8SAndroid Build Coastguard Worker **/ 798*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 799*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_draw_glyph_func (hb_font_funcs_t *ffuncs, 800*2d1272b8SAndroid Build Coastguard Worker hb_font_draw_glyph_func_t func, 801*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 802*2d1272b8SAndroid Build Coastguard Worker 803*2d1272b8SAndroid Build Coastguard Worker /** 804*2d1272b8SAndroid Build Coastguard Worker * hb_font_funcs_set_paint_glyph_func: 805*2d1272b8SAndroid Build Coastguard Worker * @ffuncs: A font-function structure 806*2d1272b8SAndroid Build Coastguard Worker * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign 807*2d1272b8SAndroid Build Coastguard Worker * @user_data: Data to pass to @func 808*2d1272b8SAndroid Build Coastguard Worker * @destroy: (nullable): The function to call when @user_data is no longer needed 809*2d1272b8SAndroid Build Coastguard Worker * 810*2d1272b8SAndroid Build Coastguard Worker * Sets the implementation function for #hb_font_paint_glyph_func_t. 811*2d1272b8SAndroid Build Coastguard Worker * 812*2d1272b8SAndroid Build Coastguard Worker * Since: 7.0.0 813*2d1272b8SAndroid Build Coastguard Worker */ 814*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 815*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_set_paint_glyph_func (hb_font_funcs_t *ffuncs, 816*2d1272b8SAndroid Build Coastguard Worker hb_font_paint_glyph_func_t func, 817*2d1272b8SAndroid Build Coastguard Worker void *user_data, hb_destroy_func_t destroy); 818*2d1272b8SAndroid Build Coastguard Worker 819*2d1272b8SAndroid Build Coastguard Worker /* func dispatch */ 820*2d1272b8SAndroid Build Coastguard Worker 821*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 822*2d1272b8SAndroid Build Coastguard Worker hb_font_get_h_extents (hb_font_t *font, 823*2d1272b8SAndroid Build Coastguard Worker hb_font_extents_t *extents); 824*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 825*2d1272b8SAndroid Build Coastguard Worker hb_font_get_v_extents (hb_font_t *font, 826*2d1272b8SAndroid Build Coastguard Worker hb_font_extents_t *extents); 827*2d1272b8SAndroid Build Coastguard Worker 828*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 829*2d1272b8SAndroid Build Coastguard Worker hb_font_get_nominal_glyph (hb_font_t *font, 830*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t unicode, 831*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t *glyph); 832*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 833*2d1272b8SAndroid Build Coastguard Worker hb_font_get_variation_glyph (hb_font_t *font, 834*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t unicode, hb_codepoint_t variation_selector, 835*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t *glyph); 836*2d1272b8SAndroid Build Coastguard Worker 837*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN unsigned int 838*2d1272b8SAndroid Build Coastguard Worker hb_font_get_nominal_glyphs (hb_font_t *font, 839*2d1272b8SAndroid Build Coastguard Worker unsigned int count, 840*2d1272b8SAndroid Build Coastguard Worker const hb_codepoint_t *first_unicode, 841*2d1272b8SAndroid Build Coastguard Worker unsigned int unicode_stride, 842*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t *first_glyph, 843*2d1272b8SAndroid Build Coastguard Worker unsigned int glyph_stride); 844*2d1272b8SAndroid Build Coastguard Worker 845*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_position_t 846*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_h_advance (hb_font_t *font, 847*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph); 848*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_position_t 849*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_v_advance (hb_font_t *font, 850*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph); 851*2d1272b8SAndroid Build Coastguard Worker 852*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 853*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_h_advances (hb_font_t* font, 854*2d1272b8SAndroid Build Coastguard Worker unsigned int count, 855*2d1272b8SAndroid Build Coastguard Worker const hb_codepoint_t *first_glyph, 856*2d1272b8SAndroid Build Coastguard Worker unsigned glyph_stride, 857*2d1272b8SAndroid Build Coastguard Worker hb_position_t *first_advance, 858*2d1272b8SAndroid Build Coastguard Worker unsigned advance_stride); 859*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 860*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_v_advances (hb_font_t* font, 861*2d1272b8SAndroid Build Coastguard Worker unsigned int count, 862*2d1272b8SAndroid Build Coastguard Worker const hb_codepoint_t *first_glyph, 863*2d1272b8SAndroid Build Coastguard Worker unsigned glyph_stride, 864*2d1272b8SAndroid Build Coastguard Worker hb_position_t *first_advance, 865*2d1272b8SAndroid Build Coastguard Worker unsigned advance_stride); 866*2d1272b8SAndroid Build Coastguard Worker 867*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 868*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_h_origin (hb_font_t *font, 869*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 870*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y); 871*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 872*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_v_origin (hb_font_t *font, 873*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 874*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y); 875*2d1272b8SAndroid Build Coastguard Worker 876*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_position_t 877*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_h_kerning (hb_font_t *font, 878*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t left_glyph, hb_codepoint_t right_glyph); 879*2d1272b8SAndroid Build Coastguard Worker 880*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 881*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_extents (hb_font_t *font, 882*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 883*2d1272b8SAndroid Build Coastguard Worker hb_glyph_extents_t *extents); 884*2d1272b8SAndroid Build Coastguard Worker 885*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 886*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_contour_point (hb_font_t *font, 887*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, unsigned int point_index, 888*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y); 889*2d1272b8SAndroid Build Coastguard Worker 890*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 891*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_name (hb_font_t *font, 892*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 893*2d1272b8SAndroid Build Coastguard Worker char *name, unsigned int size); 894*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 895*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_from_name (hb_font_t *font, 896*2d1272b8SAndroid Build Coastguard Worker const char *name, int len, /* -1 means nul-terminated */ 897*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t *glyph); 898*2d1272b8SAndroid Build Coastguard Worker 899*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 900*2d1272b8SAndroid Build Coastguard Worker hb_font_draw_glyph (hb_font_t *font, 901*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 902*2d1272b8SAndroid Build Coastguard Worker hb_draw_funcs_t *dfuncs, void *draw_data); 903*2d1272b8SAndroid Build Coastguard Worker 904*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 905*2d1272b8SAndroid Build Coastguard Worker hb_font_paint_glyph (hb_font_t *font, 906*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 907*2d1272b8SAndroid Build Coastguard Worker hb_paint_funcs_t *pfuncs, void *paint_data, 908*2d1272b8SAndroid Build Coastguard Worker unsigned int palette_index, 909*2d1272b8SAndroid Build Coastguard Worker hb_color_t foreground); 910*2d1272b8SAndroid Build Coastguard Worker 911*2d1272b8SAndroid Build Coastguard Worker /* high-level funcs, with fallback */ 912*2d1272b8SAndroid Build Coastguard Worker 913*2d1272b8SAndroid Build Coastguard Worker /* Calls either hb_font_get_nominal_glyph() if variation_selector is 0, 914*2d1272b8SAndroid Build Coastguard Worker * otherwise calls hb_font_get_variation_glyph(). */ 915*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 916*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph (hb_font_t *font, 917*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t unicode, hb_codepoint_t variation_selector, 918*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t *glyph); 919*2d1272b8SAndroid Build Coastguard Worker 920*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 921*2d1272b8SAndroid Build Coastguard Worker hb_font_get_extents_for_direction (hb_font_t *font, 922*2d1272b8SAndroid Build Coastguard Worker hb_direction_t direction, 923*2d1272b8SAndroid Build Coastguard Worker hb_font_extents_t *extents); 924*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 925*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_advance_for_direction (hb_font_t *font, 926*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 927*2d1272b8SAndroid Build Coastguard Worker hb_direction_t direction, 928*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y); 929*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 930*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_advances_for_direction (hb_font_t* font, 931*2d1272b8SAndroid Build Coastguard Worker hb_direction_t direction, 932*2d1272b8SAndroid Build Coastguard Worker unsigned int count, 933*2d1272b8SAndroid Build Coastguard Worker const hb_codepoint_t *first_glyph, 934*2d1272b8SAndroid Build Coastguard Worker unsigned glyph_stride, 935*2d1272b8SAndroid Build Coastguard Worker hb_position_t *first_advance, 936*2d1272b8SAndroid Build Coastguard Worker unsigned advance_stride); 937*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 938*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_origin_for_direction (hb_font_t *font, 939*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 940*2d1272b8SAndroid Build Coastguard Worker hb_direction_t direction, 941*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y); 942*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 943*2d1272b8SAndroid Build Coastguard Worker hb_font_add_glyph_origin_for_direction (hb_font_t *font, 944*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 945*2d1272b8SAndroid Build Coastguard Worker hb_direction_t direction, 946*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y); 947*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 948*2d1272b8SAndroid Build Coastguard Worker hb_font_subtract_glyph_origin_for_direction (hb_font_t *font, 949*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 950*2d1272b8SAndroid Build Coastguard Worker hb_direction_t direction, 951*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y); 952*2d1272b8SAndroid Build Coastguard Worker 953*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 954*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_kerning_for_direction (hb_font_t *font, 955*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, 956*2d1272b8SAndroid Build Coastguard Worker hb_direction_t direction, 957*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y); 958*2d1272b8SAndroid Build Coastguard Worker 959*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 960*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_extents_for_origin (hb_font_t *font, 961*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 962*2d1272b8SAndroid Build Coastguard Worker hb_direction_t direction, 963*2d1272b8SAndroid Build Coastguard Worker hb_glyph_extents_t *extents); 964*2d1272b8SAndroid Build Coastguard Worker 965*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 966*2d1272b8SAndroid Build Coastguard Worker hb_font_get_glyph_contour_point_for_origin (hb_font_t *font, 967*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, unsigned int point_index, 968*2d1272b8SAndroid Build Coastguard Worker hb_direction_t direction, 969*2d1272b8SAndroid Build Coastguard Worker hb_position_t *x, hb_position_t *y); 970*2d1272b8SAndroid Build Coastguard Worker 971*2d1272b8SAndroid Build Coastguard Worker /* Generates gidDDD if glyph has no name. */ 972*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 973*2d1272b8SAndroid Build Coastguard Worker hb_font_glyph_to_string (hb_font_t *font, 974*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t glyph, 975*2d1272b8SAndroid Build Coastguard Worker char *s, unsigned int size); 976*2d1272b8SAndroid Build Coastguard Worker /* Parses gidDDD and uniUUUU strings automatically. */ 977*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 978*2d1272b8SAndroid Build Coastguard Worker hb_font_glyph_from_string (hb_font_t *font, 979*2d1272b8SAndroid Build Coastguard Worker const char *s, int len, /* -1 means nul-terminated */ 980*2d1272b8SAndroid Build Coastguard Worker hb_codepoint_t *glyph); 981*2d1272b8SAndroid Build Coastguard Worker 982*2d1272b8SAndroid Build Coastguard Worker 983*2d1272b8SAndroid Build Coastguard Worker /* 984*2d1272b8SAndroid Build Coastguard Worker * hb_font_t 985*2d1272b8SAndroid Build Coastguard Worker */ 986*2d1272b8SAndroid Build Coastguard Worker 987*2d1272b8SAndroid Build Coastguard Worker /* Fonts are very light-weight objects */ 988*2d1272b8SAndroid Build Coastguard Worker 989*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_font_t * 990*2d1272b8SAndroid Build Coastguard Worker hb_font_create (hb_face_t *face); 991*2d1272b8SAndroid Build Coastguard Worker 992*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_font_t * 993*2d1272b8SAndroid Build Coastguard Worker hb_font_create_sub_font (hb_font_t *parent); 994*2d1272b8SAndroid Build Coastguard Worker 995*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_font_t * 996*2d1272b8SAndroid Build Coastguard Worker hb_font_get_empty (void); 997*2d1272b8SAndroid Build Coastguard Worker 998*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_font_t * 999*2d1272b8SAndroid Build Coastguard Worker hb_font_reference (hb_font_t *font); 1000*2d1272b8SAndroid Build Coastguard Worker 1001*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1002*2d1272b8SAndroid Build Coastguard Worker hb_font_destroy (hb_font_t *font); 1003*2d1272b8SAndroid Build Coastguard Worker 1004*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 1005*2d1272b8SAndroid Build Coastguard Worker hb_font_set_user_data (hb_font_t *font, 1006*2d1272b8SAndroid Build Coastguard Worker hb_user_data_key_t *key, 1007*2d1272b8SAndroid Build Coastguard Worker void * data, 1008*2d1272b8SAndroid Build Coastguard Worker hb_destroy_func_t destroy, 1009*2d1272b8SAndroid Build Coastguard Worker hb_bool_t replace); 1010*2d1272b8SAndroid Build Coastguard Worker 1011*2d1272b8SAndroid Build Coastguard Worker 1012*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void * 1013*2d1272b8SAndroid Build Coastguard Worker hb_font_get_user_data (const hb_font_t *font, 1014*2d1272b8SAndroid Build Coastguard Worker hb_user_data_key_t *key); 1015*2d1272b8SAndroid Build Coastguard Worker 1016*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1017*2d1272b8SAndroid Build Coastguard Worker hb_font_make_immutable (hb_font_t *font); 1018*2d1272b8SAndroid Build Coastguard Worker 1019*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_bool_t 1020*2d1272b8SAndroid Build Coastguard Worker hb_font_is_immutable (hb_font_t *font); 1021*2d1272b8SAndroid Build Coastguard Worker 1022*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN unsigned int 1023*2d1272b8SAndroid Build Coastguard Worker hb_font_get_serial (hb_font_t *font); 1024*2d1272b8SAndroid Build Coastguard Worker 1025*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1026*2d1272b8SAndroid Build Coastguard Worker hb_font_changed (hb_font_t *font); 1027*2d1272b8SAndroid Build Coastguard Worker 1028*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1029*2d1272b8SAndroid Build Coastguard Worker hb_font_set_parent (hb_font_t *font, 1030*2d1272b8SAndroid Build Coastguard Worker hb_font_t *parent); 1031*2d1272b8SAndroid Build Coastguard Worker 1032*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_font_t * 1033*2d1272b8SAndroid Build Coastguard Worker hb_font_get_parent (hb_font_t *font); 1034*2d1272b8SAndroid Build Coastguard Worker 1035*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1036*2d1272b8SAndroid Build Coastguard Worker hb_font_set_face (hb_font_t *font, 1037*2d1272b8SAndroid Build Coastguard Worker hb_face_t *face); 1038*2d1272b8SAndroid Build Coastguard Worker 1039*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN hb_face_t * 1040*2d1272b8SAndroid Build Coastguard Worker hb_font_get_face (hb_font_t *font); 1041*2d1272b8SAndroid Build Coastguard Worker 1042*2d1272b8SAndroid Build Coastguard Worker 1043*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1044*2d1272b8SAndroid Build Coastguard Worker hb_font_set_funcs (hb_font_t *font, 1045*2d1272b8SAndroid Build Coastguard Worker hb_font_funcs_t *klass, 1046*2d1272b8SAndroid Build Coastguard Worker void *font_data, 1047*2d1272b8SAndroid Build Coastguard Worker hb_destroy_func_t destroy); 1048*2d1272b8SAndroid Build Coastguard Worker 1049*2d1272b8SAndroid Build Coastguard Worker /* Be *very* careful with this function! */ 1050*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1051*2d1272b8SAndroid Build Coastguard Worker hb_font_set_funcs_data (hb_font_t *font, 1052*2d1272b8SAndroid Build Coastguard Worker void *font_data, 1053*2d1272b8SAndroid Build Coastguard Worker hb_destroy_func_t destroy); 1054*2d1272b8SAndroid Build Coastguard Worker 1055*2d1272b8SAndroid Build Coastguard Worker 1056*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1057*2d1272b8SAndroid Build Coastguard Worker hb_font_set_scale (hb_font_t *font, 1058*2d1272b8SAndroid Build Coastguard Worker int x_scale, 1059*2d1272b8SAndroid Build Coastguard Worker int y_scale); 1060*2d1272b8SAndroid Build Coastguard Worker 1061*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1062*2d1272b8SAndroid Build Coastguard Worker hb_font_get_scale (hb_font_t *font, 1063*2d1272b8SAndroid Build Coastguard Worker int *x_scale, 1064*2d1272b8SAndroid Build Coastguard Worker int *y_scale); 1065*2d1272b8SAndroid Build Coastguard Worker 1066*2d1272b8SAndroid Build Coastguard Worker /* 1067*2d1272b8SAndroid Build Coastguard Worker * A zero value means "no hinting in that direction" 1068*2d1272b8SAndroid Build Coastguard Worker */ 1069*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1070*2d1272b8SAndroid Build Coastguard Worker hb_font_set_ppem (hb_font_t *font, 1071*2d1272b8SAndroid Build Coastguard Worker unsigned int x_ppem, 1072*2d1272b8SAndroid Build Coastguard Worker unsigned int y_ppem); 1073*2d1272b8SAndroid Build Coastguard Worker 1074*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1075*2d1272b8SAndroid Build Coastguard Worker hb_font_get_ppem (hb_font_t *font, 1076*2d1272b8SAndroid Build Coastguard Worker unsigned int *x_ppem, 1077*2d1272b8SAndroid Build Coastguard Worker unsigned int *y_ppem); 1078*2d1272b8SAndroid Build Coastguard Worker 1079*2d1272b8SAndroid Build Coastguard Worker /* 1080*2d1272b8SAndroid Build Coastguard Worker * Point size per EM. Used for optical-sizing in CoreText. 1081*2d1272b8SAndroid Build Coastguard Worker * A value of zero means "not set". 1082*2d1272b8SAndroid Build Coastguard Worker */ 1083*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1084*2d1272b8SAndroid Build Coastguard Worker hb_font_set_ptem (hb_font_t *font, float ptem); 1085*2d1272b8SAndroid Build Coastguard Worker 1086*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN float 1087*2d1272b8SAndroid Build Coastguard Worker hb_font_get_ptem (hb_font_t *font); 1088*2d1272b8SAndroid Build Coastguard Worker 1089*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1090*2d1272b8SAndroid Build Coastguard Worker hb_font_set_synthetic_bold (hb_font_t *font, 1091*2d1272b8SAndroid Build Coastguard Worker float x_embolden, float y_embolden, 1092*2d1272b8SAndroid Build Coastguard Worker hb_bool_t in_place); 1093*2d1272b8SAndroid Build Coastguard Worker 1094*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1095*2d1272b8SAndroid Build Coastguard Worker hb_font_get_synthetic_bold (hb_font_t *font, 1096*2d1272b8SAndroid Build Coastguard Worker float *x_embolden, float *y_embolden, 1097*2d1272b8SAndroid Build Coastguard Worker hb_bool_t *in_place); 1098*2d1272b8SAndroid Build Coastguard Worker 1099*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1100*2d1272b8SAndroid Build Coastguard Worker hb_font_set_synthetic_slant (hb_font_t *font, float slant); 1101*2d1272b8SAndroid Build Coastguard Worker 1102*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN float 1103*2d1272b8SAndroid Build Coastguard Worker hb_font_get_synthetic_slant (hb_font_t *font); 1104*2d1272b8SAndroid Build Coastguard Worker 1105*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1106*2d1272b8SAndroid Build Coastguard Worker hb_font_set_variations (hb_font_t *font, 1107*2d1272b8SAndroid Build Coastguard Worker const hb_variation_t *variations, 1108*2d1272b8SAndroid Build Coastguard Worker unsigned int variations_length); 1109*2d1272b8SAndroid Build Coastguard Worker 1110*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1111*2d1272b8SAndroid Build Coastguard Worker hb_font_set_variation (hb_font_t *font, 1112*2d1272b8SAndroid Build Coastguard Worker hb_tag_t tag, 1113*2d1272b8SAndroid Build Coastguard Worker float value); 1114*2d1272b8SAndroid Build Coastguard Worker 1115*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1116*2d1272b8SAndroid Build Coastguard Worker hb_font_set_var_coords_design (hb_font_t *font, 1117*2d1272b8SAndroid Build Coastguard Worker const float *coords, 1118*2d1272b8SAndroid Build Coastguard Worker unsigned int coords_length); 1119*2d1272b8SAndroid Build Coastguard Worker 1120*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN const float * 1121*2d1272b8SAndroid Build Coastguard Worker hb_font_get_var_coords_design (hb_font_t *font, 1122*2d1272b8SAndroid Build Coastguard Worker unsigned int *length); 1123*2d1272b8SAndroid Build Coastguard Worker 1124*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1125*2d1272b8SAndroid Build Coastguard Worker hb_font_set_var_coords_normalized (hb_font_t *font, 1126*2d1272b8SAndroid Build Coastguard Worker const int *coords, /* 2.14 normalized */ 1127*2d1272b8SAndroid Build Coastguard Worker unsigned int coords_length); 1128*2d1272b8SAndroid Build Coastguard Worker 1129*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN const int * 1130*2d1272b8SAndroid Build Coastguard Worker hb_font_get_var_coords_normalized (hb_font_t *font, 1131*2d1272b8SAndroid Build Coastguard Worker unsigned int *length); 1132*2d1272b8SAndroid Build Coastguard Worker 1133*2d1272b8SAndroid Build Coastguard Worker /** 1134*2d1272b8SAndroid Build Coastguard Worker * HB_FONT_NO_VAR_NAMED_INSTANCE: 1135*2d1272b8SAndroid Build Coastguard Worker * 1136*2d1272b8SAndroid Build Coastguard Worker * Constant signifying that a font does not have any 1137*2d1272b8SAndroid Build Coastguard Worker * named-instance index set. This is the default of 1138*2d1272b8SAndroid Build Coastguard Worker * a font. 1139*2d1272b8SAndroid Build Coastguard Worker * 1140*2d1272b8SAndroid Build Coastguard Worker * Since: 7.0.0 1141*2d1272b8SAndroid Build Coastguard Worker */ 1142*2d1272b8SAndroid Build Coastguard Worker #define HB_FONT_NO_VAR_NAMED_INSTANCE 0xFFFFFFFF 1143*2d1272b8SAndroid Build Coastguard Worker 1144*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN void 1145*2d1272b8SAndroid Build Coastguard Worker hb_font_set_var_named_instance (hb_font_t *font, 1146*2d1272b8SAndroid Build Coastguard Worker unsigned int instance_index); 1147*2d1272b8SAndroid Build Coastguard Worker 1148*2d1272b8SAndroid Build Coastguard Worker HB_EXTERN unsigned int 1149*2d1272b8SAndroid Build Coastguard Worker hb_font_get_var_named_instance (hb_font_t *font); 1150*2d1272b8SAndroid Build Coastguard Worker 1151*2d1272b8SAndroid Build Coastguard Worker HB_END_DECLS 1152*2d1272b8SAndroid Build Coastguard Worker 1153*2d1272b8SAndroid Build Coastguard Worker #endif /* HB_FONT_H */ 1154