のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

shaper list

44  /* hb_face_t */
47  const hb_face_t _hb_face_nil = {
48    HB_OBJECT_HEADER_STATIC,
50    true, /* immutable */
52    NULL, /* reference_table_func */
53    NULL, /* user_data */
54    NULL, /* destroy */
56    0,    /* index */
57    1000, /* upem */
58    0,    /* num_glyphs */
60    {
61         #define HB_SHAPER_IMPLEMENT(shaper) HB_SHAPER_DATA_INVALID,
62        #include "hb-shaper-list.hh"
63        #undef HB_SHAPER_IMPLEMENT
64    },
65
66     NULL, /* shape_plans */
67 };
31/* v--- Add new shapers in the right place here. */
42 #ifdef HAVE_OT
43 HB_SHAPER_IMPLEMENT (ot) /* <--- This is our main OpenType shaper. */
44 #endif
53 #ifdef HAVE_FALLBACK
54 HB_SHAPER_IMPLEMENT (fallback) /* <--- This should be last. */
55 #endif
56 #define HB_SHAPER_IMPLEMENT(shaper) HB_SHAPER_DATA_PROTOTYPE(shaper, shape_plan);

shape_plan_t

35 struct hb_shape_plan_t
36 {
37     hb_object_header_t              header;
38     ASSERT_POD ();
40     hb_bool_t                               default_shaper_list;
41     hb_face_t                               *face_unsafe; /* We don't carry a reference to face. */
42     hb_segment_properties_t     props;
44     hb_shape_func_t                  *shaper_func;
45     const char                            *shaper_name;
46
47     hb_feature_t                         *user_features;
48     unsigned int                         num_user_features;
50     struct hb_shaper_data_t     shaper_data;
51 };