harfbuzz/TODO

105 lines
2.2 KiB
Plaintext

General fixes:
=============
- Warn at compile time (and runtime with HB_DEBUG?) if no Unicode funcs
found / set.
- In hb_shape(), assert if direction is INVALID.
- Fix TT 'kern' on/off and GPOS interaction (move kerning before GPOS).
- Do proper rounding when scaling from font space? May be a non-issue.
- Misc features:
* init/medi/fina/isol for non-cursive scripts
* vkna,hkna etc for kana, etc
- Move non-native direction and normalization handling to the generic non-OT
layer, such that uniscribe and other backends can use.
- Uniscribe backend needs to enforce one direction only, otherwise cluster
values can confuse the user.
- GSUB ligation should call merge_clusters(). Also other places.
- Convert NBSP into space glyph.
- Synthetic GDEF.
API issues to fix before 1.0:
============================
- Add pkg-config files for glue codes (harfbuzz-glib, etc)
- Figure out how many .so objects, how to link, etc
- 'const' for getter APIs? (use mutable internally)
- blob_from_file?
API additions
=============
- Buffer (de)serialize API ala hb-shape?
- Move feature parsing from util into the library
- Add hb-cairo glue
- Add sanitize API (and a cached version, that saves result on blob user-data)
- Add glib GBoxedType stuff and introspection
- Add Uniscribe face / font get API
- BCP 47 language handling / API (language_matches?)
- Add hb_face_get_glyph_count()?
- Add hb_font_create_linear()?
- Add hb_shape_plan()/hb_shape_planned()
- Add query API for aalt-like features?
- SFNT api? get_num_faces? get_table_tags? (there's something in stash)
- Add segmentation API
- Add hb-fribidi glue?
hb-view / hb-shape enhancements:
===============================
- Add --width, --height, --auto-size, --align, etc?
- Add XML and JSON formats to hb-shape
- --features="init=medi=isol=fina=0"
Tests to write:
==============
- ot-layout enumeration API (needs font)
- Finish test-shape.c, grep for TODO
- Finish test-unicode.c, grep for TODO
- GObject, FreeType, etc
- hb_set_t
- hb_cache_t and relatives
Optimizations:
=============
- Avoid allocating blob objects internally for for_data() faces?
- Add caching layer to hb-ft?
- Cache feature-less shape plans internally on the face.