Home | History | Annotate | Download | only in src
      1 /*
      2  * Copyright  2010,2012  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): Behdad Esfahbod
     25  */
     26 
     27 #include "hb-ot-shape-complex-private.hh"
     28 
     29 
     30 static const hb_tag_t tibetan_features[] =
     31 {
     32   HB_TAG('a','b','v','s'),
     33   HB_TAG('b','l','w','s'),
     34   HB_TAG('a','b','v','m'),
     35   HB_TAG('b','l','w','m'),
     36   HB_TAG_NONE
     37 };
     38 
     39 static void
     40 collect_features_tibetan (hb_ot_shape_planner_t *plan)
     41 {
     42   for (const hb_tag_t *script_features = tibetan_features; script_features && *script_features; script_features++)
     43     plan->map.add_global_bool_feature (*script_features);
     44 }
     45 
     46 
     47 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_tibetan =
     48 {
     49   collect_features_tibetan,
     50   nullptr, /* override_features */
     51   nullptr, /* data_create */
     52   nullptr, /* data_destroy */
     53   nullptr, /* preprocess_text */
     54   nullptr, /* postprocess_glyphs */
     55   HB_OT_SHAPE_NORMALIZATION_MODE_DEFAULT,
     56   nullptr, /* decompose */
     57   nullptr, /* compose */
     58   nullptr, /* setup_masks */
     59   nullptr, /* disable_otl */
     60   nullptr, /* reorder_marks */
     61   HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE,
     62   true, /* fallback_position */
     63 };
     64