src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-var.h
changeset 48274 51772bf1fb0c
child 54232 7c11a7cc7c1d
equal deleted inserted replaced
48273:e2065f7505eb 48274:51772bf1fb0c
       
     1 /*
       
     2  * Copyright © 2017  Google, Inc.
       
     3  *
       
     4  *  This is part of HarfBuzz, a text shaping library.
       
     5  *
       
     6  * Permission is hereby granted, without written agreement and without
       
     7  * license or royalty fees, to use, copy, modify, and distribute this
       
     8  * software and its documentation for any purpose, provided that the
       
     9  * above copyright notice and the following two paragraphs appear in
       
    10  * all copies of this software.
       
    11  *
       
    12  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
       
    13  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
       
    14  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
       
    15  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
       
    16  * DAMAGE.
       
    17  *
       
    18  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
       
    19  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
       
    20  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
       
    21  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
       
    22  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
       
    23  *
       
    24  * Red Hat Author(s): Behdad Esfahbod
       
    25  */
       
    26 
       
    27 #ifndef HB_OT_H_IN
       
    28 #error "Include <hb-ot.h> instead."
       
    29 #endif
       
    30 
       
    31 #ifndef HB_OT_VAR_H
       
    32 #define HB_OT_VAR_H
       
    33 
       
    34 #include "hb.h"
       
    35 
       
    36 HB_BEGIN_DECLS
       
    37 
       
    38 
       
    39 #define HB_OT_TAG_VAR_AXIS_ITALIC       HB_TAG('i','t','a','l')
       
    40 #define HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE HB_TAG('o','p','s','z')
       
    41 #define HB_OT_TAG_VAR_AXIS_SLANT        HB_TAG('s','l','n','t')
       
    42 #define HB_OT_TAG_VAR_AXIS_WIDTH        HB_TAG('w','d','t','h')
       
    43 #define HB_OT_TAG_VAR_AXIS_WEIGHT       HB_TAG('w','g','h','t')
       
    44 
       
    45 
       
    46 /*
       
    47  * fvar / avar
       
    48  */
       
    49 
       
    50 /**
       
    51  * hb_ot_var_axis_t:
       
    52  *
       
    53  * Since: 1.4.2
       
    54  */
       
    55 typedef struct hb_ot_var_axis_t {
       
    56   hb_tag_t tag;
       
    57   unsigned int name_id;
       
    58   float min_value;
       
    59   float default_value;
       
    60   float max_value;
       
    61 } hb_ot_var_axis_t;
       
    62 
       
    63 HB_EXTERN hb_bool_t
       
    64 hb_ot_var_has_data (hb_face_t *face);
       
    65 
       
    66 /**
       
    67  * HB_OT_VAR_NO_AXIS_INDEX:
       
    68  *
       
    69  * Since: 1.4.2
       
    70  */
       
    71 #define HB_OT_VAR_NO_AXIS_INDEX         0xFFFFFFFFu
       
    72 
       
    73 HB_EXTERN unsigned int
       
    74 hb_ot_var_get_axis_count (hb_face_t *face);
       
    75 
       
    76 HB_EXTERN unsigned int
       
    77 hb_ot_var_get_axes (hb_face_t        *face,
       
    78                     unsigned int      start_offset,
       
    79                     unsigned int     *axes_count /* IN/OUT */,
       
    80                     hb_ot_var_axis_t *axes_array /* OUT */);
       
    81 
       
    82 HB_EXTERN hb_bool_t
       
    83 hb_ot_var_find_axis (hb_face_t        *face,
       
    84                      hb_tag_t          axis_tag,
       
    85                      unsigned int     *axis_index,
       
    86                      hb_ot_var_axis_t *axis_info);
       
    87 
       
    88 
       
    89 HB_EXTERN void
       
    90 hb_ot_var_normalize_variations (hb_face_t            *face,
       
    91                                 const hb_variation_t *variations, /* IN */
       
    92                                 unsigned int          variations_length,
       
    93                                 int                  *coords, /* OUT */
       
    94                                 unsigned int          coords_length);
       
    95 
       
    96 HB_EXTERN void
       
    97 hb_ot_var_normalize_coords (hb_face_t    *face,
       
    98                             unsigned int coords_length,
       
    99                             const float *design_coords, /* IN */
       
   100                             int *normalized_coords /* OUT */);
       
   101 
       
   102 
       
   103 HB_END_DECLS
       
   104 
       
   105 #endif /* HB_OT_VAR_H */