annotate src/java.desktop/share/native/libfontmanager/harfbuzz/hb-shape-plan.h @ 13239:8c09472c3de2

8143177: Integrate harfbuzz opentype layout engine per JEP 258 Reviewed-by: srl, vadim, serb
author prr
date Mon, 23 Nov 2015 09:58:44 -0800
parents
children
rev   line source
prr@13239 1 /*
prr@13239 2 * Copyright © 2012 Google, Inc.
prr@13239 3 *
prr@13239 4 * This is part of HarfBuzz, a text shaping library.
prr@13239 5 *
prr@13239 6 * Permission is hereby granted, without written agreement and without
prr@13239 7 * license or royalty fees, to use, copy, modify, and distribute this
prr@13239 8 * software and its documentation for any purpose, provided that the
prr@13239 9 * above copyright notice and the following two paragraphs appear in
prr@13239 10 * all copies of this software.
prr@13239 11 *
prr@13239 12 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
prr@13239 13 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
prr@13239 14 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
prr@13239 15 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
prr@13239 16 * DAMAGE.
prr@13239 17 *
prr@13239 18 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
prr@13239 19 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
prr@13239 20 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
prr@13239 21 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
prr@13239 22 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
prr@13239 23 *
prr@13239 24 * Google Author(s): Behdad Esfahbod
prr@13239 25 */
prr@13239 26
prr@13239 27 #ifndef HB_H_IN
prr@13239 28 #error "Include <hb.h> instead."
prr@13239 29 #endif
prr@13239 30
prr@13239 31 #ifndef HB_SHAPE_PLAN_H
prr@13239 32 #define HB_SHAPE_PLAN_H
prr@13239 33
prr@13239 34 #include "hb-common.h"
prr@13239 35 #include "hb-font.h"
prr@13239 36
prr@13239 37 HB_BEGIN_DECLS
prr@13239 38
prr@13239 39 typedef struct hb_shape_plan_t hb_shape_plan_t;
prr@13239 40
prr@13239 41 hb_shape_plan_t *
prr@13239 42 hb_shape_plan_create (hb_face_t *face,
prr@13239 43 const hb_segment_properties_t *props,
prr@13239 44 const hb_feature_t *user_features,
prr@13239 45 unsigned int num_user_features,
prr@13239 46 const char * const *shaper_list);
prr@13239 47
prr@13239 48 hb_shape_plan_t *
prr@13239 49 hb_shape_plan_create_cached (hb_face_t *face,
prr@13239 50 const hb_segment_properties_t *props,
prr@13239 51 const hb_feature_t *user_features,
prr@13239 52 unsigned int num_user_features,
prr@13239 53 const char * const *shaper_list);
prr@13239 54
prr@13239 55 hb_shape_plan_t *
prr@13239 56 hb_shape_plan_get_empty (void);
prr@13239 57
prr@13239 58 hb_shape_plan_t *
prr@13239 59 hb_shape_plan_reference (hb_shape_plan_t *shape_plan);
prr@13239 60
prr@13239 61 void
prr@13239 62 hb_shape_plan_destroy (hb_shape_plan_t *shape_plan);
prr@13239 63
prr@13239 64 hb_bool_t
prr@13239 65 hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan,
prr@13239 66 hb_user_data_key_t *key,
prr@13239 67 void * data,
prr@13239 68 hb_destroy_func_t destroy,
prr@13239 69 hb_bool_t replace);
prr@13239 70
prr@13239 71 void *
prr@13239 72 hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan,
prr@13239 73 hb_user_data_key_t *key);
prr@13239 74
prr@13239 75
prr@13239 76 hb_bool_t
prr@13239 77 hb_shape_plan_execute (hb_shape_plan_t *shape_plan,
prr@13239 78 hb_font_t *font,
prr@13239 79 hb_buffer_t *buffer,
prr@13239 80 const hb_feature_t *features,
prr@13239 81 unsigned int num_features);
prr@13239 82
prr@13239 83 const char *
prr@13239 84 hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan);
prr@13239 85
prr@13239 86
prr@13239 87 HB_END_DECLS
prr@13239 88
prr@13239 89 #endif /* HB_SHAPE_PLAN_H */