diff options
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.hh')
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.hh | 55 |
1 files changed, 32 insertions, 23 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.hh index 403c3ebdf32..d9aa3ee1ab4 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.hh +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.hh @@ -1,5 +1,5 @@ /* - * Copyright © 2012 Google, Inc. + * Copyright © 2012,2018 Google, Inc. * * This is part of HarfBuzz, a text shaping library. * @@ -29,38 +29,47 @@ #include "hb.hh" #include "hb-shaper.hh" +#include "hb-ot-shape.hh" -struct hb_shape_plan_t +struct hb_shape_plan_key_t { - hb_object_header_t header; + hb_segment_properties_t props; - hb_bool_t default_shaper_list; - hb_face_t *face_unsafe; /* We don't carry a reference to face. */ - hb_segment_properties_t props; + const hb_feature_t *user_features; + unsigned int num_user_features; + + hb_ot_shape_plan_key_t ot; + + hb_shape_func_t *shaper_func; + const char *shaper_name; - hb_shape_func_t *shaper_func; - const char *shaper_name; + HB_INTERNAL inline bool init (bool copy, + hb_face_t *face, + const hb_segment_properties_t *props, + const hb_feature_t *user_features, + unsigned int num_user_features, + const int *coords, + unsigned int num_coords, + const char * const *shaper_list); - hb_feature_t *user_features; - unsigned int num_user_features; + HB_INTERNAL inline void free (void) + { + ::free ((void *) user_features); + } - int *coords; - unsigned int num_coords; + HB_INTERNAL bool user_features_match (const hb_shape_plan_key_t *other); - struct hb_shaper_data_t shaper_data; + HB_INTERNAL bool equal (const hb_shape_plan_key_t *other); }; -DECLARE_NULL_INSTANCE (hb_shape_plan_t); -#define HB_SHAPER_DATA_CREATE_FUNC_EXTRA_ARGS \ - , const hb_feature_t *user_features \ - , unsigned int num_user_features \ - , const int *coords \ - , unsigned int num_coords -#define HB_SHAPER_IMPLEMENT(shaper) HB_SHAPER_DATA_PROTOTYPE(shaper, shape_plan); -#include "hb-shaper-list.hh" -#undef HB_SHAPER_IMPLEMENT -#undef HB_SHAPER_DATA_CREATE_FUNC_EXTRA_ARGS +struct hb_shape_plan_t +{ + hb_object_header_t header; + hb_face_t *face_unsafe; /* We don't carry a reference to face. */ + hb_shape_plan_key_t key; + hb_ot_shape_plan_t ot; +}; #endif /* HB_SHAPE_PLAN_HH */ |