1344bf32354084528dce3060e6e01a70a7c6710d
[platform/upstream/harfbuzz.git] / TODO
1 General fixes:
2 =============
3
4 - Ligature matching and match_input() of (Chain)Context should use the
5   same logic.  Right now the Ligature logic is more involved.  Possibly
6   merge, or duplicate.
7
8 - mask propagation? (when ligation, "or" the masks).
9
10 - Warn at compile time (and runtime with HB_DEBUG?) if no Unicode / font
11   funcs found / set.
12
13 - Fix TT 'kern' on/off and GPOS interaction (move kerning before GPOS).
14
15 - Do proper rounding when scaling from font space?  May be a non-issue.
16
17 - Misc features:
18   * init/medi/fina/isol for non-cursive scripts
19   * vkna,hkna etc for kana, etc
20   * smpl,trad for ZHS / ZHT
21
22 - Add Pango backend?
23
24 - Add ICUlayout backend?
25
26 - Add ICUlayout API?
27
28
29 API issues to fix before 1.0:
30 ============================
31
32 - Add default font_funcs / Unicode funcs API and to utils.
33
34 - Add init_func to font_funcs.  Adjust ft.
35
36 - Add pkg-config files for glue codes (harfbuzz-glib, etc)
37
38 - Figure out how many .so objects, how to link, etc
39
40 - 'const' for getter APIs? (use mutable internally)
41
42 - blob_from_file?
43
44
45 API additions
46 =============
47
48 - Language to/from script.
49
50 - Buffer (de)serialize API ala hb-shape?
51
52 - Move feature parsing from util into the library
53
54 - Add hb-cairo glue
55
56 - Add sanitize API (and a cached version, that saves result on blob user-data)
57
58 - Add glib GBoxedType stuff and introspection
59
60 - Finish Uniscribe / CoreText face / font get API
61
62 - BCP 47 language handling / API (language_matches?)
63
64 - Add hb_face_get_glyph_count()?
65
66 - Add hb_font_create_linear()?
67
68 - Add hb_shape_plan()/hb_shape_planned()
69
70 - Add query API for aalt-like features?
71
72 - SFNT api? get_num_faces? get_table_tags? (there's something in stash)
73
74 - Add segmentation API
75
76 - Add hb-fribidi glue?
77
78
79 hb-view / hb-shape enhancements:
80 ===============================
81
82 - --output-format should list available formats.
83 - Add --width, --height, --auto-size, --align, etc?
84 - Add XML and JSON formats to hb-shape
85 - --features="init=medi=isol=fina=0"
86
87
88 Tests to write:
89 ==============
90
91 - ot-layout enumeration API (needs font)
92
93 - Finish test-shape.c, grep for TODO
94
95 - Finish test-unicode.c, grep for TODO
96
97 - GObject, FreeType, etc
98
99 - hb_set_t
100
101 - hb_cache_t and relatives