General fixes: ============= - Instead of forming clusters immediately, only do it if we are reversing the text. We'd need a separate bit to indicate cluster start then. - Right now, BTW, for non-native direction runs, we get the cluster wrong... Should do min(input-glyphs.cluster) - Fix TT 'kern' on/off and GPOS interaction (move kerning before GPOS) - Do proper rounding when scaling from font space? - Adjust default features for vertical text: * vrt2 preferred over vert; but if user selects vert, turn vrt2 off? * vkrn (enables vpal? vpal anyone???); * valt: "This feature is mutually exclusive with all other glyph-height features (e.g. vhal and vpal), which should be turned off when it's applied. It deactivates the kern." API issues to fix before 1.0: ============================ - Figure out how many .so objects, how to link, etc - Add hb-cairo glue - Add sanitize API (and a cached version, that saves result on blob user-data) - hb_shape() currently does a bit more than hb_ot_shape(). Shouldn't. - Add glib GBoxedType stuff and introspection API to add (maybe after 1.0): ============================ - BCP 47 language handling / API (language_matches?) - Add hb_face_get_glyph_count()? - Add hb_font_create_linear()? - Add hb_shape_plan()/hb_shape_execute() - Add query API for aalt-like features? - SFNT api? get_num_faces? get_table_tags? (there's something in stash) - Full matrix instead of scale? - Add segmentation API - Add hb-fribidi? hb-view enhancements: ==================== - Add --format - Add --width, --height, --auto-size, --align, etc? - Port to GOption, --help - Add XML and JSON formats Tests to write: ============== - ot-layout enumeration API (needs font) - Finish test-shape.c Optimizations: ============= - Avoid allocating blob objects internally for for_data() faces? - Add caching layer to hb-ft