src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-input.cc
changeset 54232 7c11a7cc7c1d
equal deleted inserted replaced
54231:e4813eded7cb 54232:7c11a7cc7c1d
       
     1 /*
       
     2  * Copyright © 2018  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  * Google Author(s): Garret Rieger, Rod Sheeter, Behdad Esfahbod
       
    25  */
       
    26 
       
    27 #include "hb-subset.hh"
       
    28 #include "hb-set.hh"
       
    29 
       
    30 /**
       
    31  * hb_subset_input_create_or_fail:
       
    32  *
       
    33  * Return value: New subset input.
       
    34  *
       
    35  * Since: 1.8.0
       
    36  **/
       
    37 hb_subset_input_t *
       
    38 hb_subset_input_create_or_fail ()
       
    39 {
       
    40   hb_subset_input_t *input = hb_object_create<hb_subset_input_t>();
       
    41 
       
    42   if (unlikely (!input))
       
    43     return nullptr;
       
    44 
       
    45   input->unicodes = hb_set_create ();
       
    46   input->glyphs = hb_set_create ();
       
    47   input->drop_layout = true;
       
    48 
       
    49   return input;
       
    50 }
       
    51 
       
    52 /**
       
    53  * hb_subset_input_reference: (skip)
       
    54  * @subset_input: a subset_input.
       
    55  *
       
    56  *
       
    57  *
       
    58  * Return value:
       
    59  *
       
    60  * Since: 1.8.0
       
    61  **/
       
    62 hb_subset_input_t *
       
    63 hb_subset_input_reference (hb_subset_input_t *subset_input)
       
    64 {
       
    65   return hb_object_reference (subset_input);
       
    66 }
       
    67 
       
    68 /**
       
    69  * hb_subset_input_destroy:
       
    70  * @subset_input: a subset_input.
       
    71  *
       
    72  * Since: 1.8.0
       
    73  **/
       
    74 void
       
    75 hb_subset_input_destroy (hb_subset_input_t *subset_input)
       
    76 {
       
    77   if (!hb_object_destroy (subset_input)) return;
       
    78 
       
    79   hb_set_destroy (subset_input->unicodes);
       
    80   hb_set_destroy (subset_input->glyphs);
       
    81 
       
    82   free (subset_input);
       
    83 }
       
    84 
       
    85 /**
       
    86  * hb_subset_input_unicode_set:
       
    87  * @subset_input: a subset_input.
       
    88  *
       
    89  * Since: 1.8.0
       
    90  **/
       
    91 HB_EXTERN hb_set_t *
       
    92 hb_subset_input_unicode_set (hb_subset_input_t *subset_input)
       
    93 {
       
    94   return subset_input->unicodes;
       
    95 }
       
    96 
       
    97 /**
       
    98  * hb_subset_input_glyph_set:
       
    99  * @subset_input: a subset_input.
       
   100  *
       
   101  * Since: 1.8.0
       
   102  **/
       
   103 HB_EXTERN hb_set_t *
       
   104 hb_subset_input_glyph_set (hb_subset_input_t *subset_input)
       
   105 {
       
   106   return subset_input->glyphs;
       
   107 }
       
   108 
       
   109 HB_EXTERN void
       
   110 hb_subset_input_set_drop_hints (hb_subset_input_t *subset_input,
       
   111                                 hb_bool_t drop_hints)
       
   112 {
       
   113   subset_input->drop_hints = drop_hints;
       
   114 }
       
   115 
       
   116 HB_EXTERN hb_bool_t
       
   117 hb_subset_input_get_drop_hints (hb_subset_input_t *subset_input)
       
   118 {
       
   119   return subset_input->drop_hints;
       
   120 }
       
   121 
       
   122 HB_EXTERN void
       
   123 hb_subset_input_set_drop_layout (hb_subset_input_t *subset_input,
       
   124                                  hb_bool_t drop_layout)
       
   125 {
       
   126   subset_input->drop_layout = drop_layout;
       
   127 }
       
   128 
       
   129 HB_EXTERN hb_bool_t
       
   130 hb_subset_input_get_drop_layout (hb_subset_input_t *subset_input)
       
   131 {
       
   132   return subset_input->drop_layout;
       
   133 }
       
   134 
       
   135 HB_EXTERN void
       
   136 hb_subset_input_set_desubroutinize (hb_subset_input_t *subset_input,
       
   137         hb_bool_t desubroutinize)
       
   138 {
       
   139   subset_input->desubroutinize = desubroutinize;
       
   140 }
       
   141 
       
   142 HB_EXTERN hb_bool_t
       
   143 hb_subset_input_get_desubroutinize (hb_subset_input_t *subset_input)
       
   144 {
       
   145   return subset_input->desubroutinize;
       
   146 }