blob: 4a1ad1963ba7e8e1d5b15107562abeb843b2520d [file] [log] [blame]
Behdad Esfahbod04a30232010-10-13 10:57:27 -04001General fixes:
2=============
3
Behdad Esfahbod3b9b7132012-05-23 22:00:25 -04004- Warn at compile time (and runtime with HB_DEBUG?) if no Unicode / font
5 funcs found / set.
Behdad Esfahboda0d4cae2012-04-17 13:42:30 -04006
Behdad Esfahbodd01402d2012-04-12 17:38:02 -04007- In hb_shape(), assert if direction is INVALID.
8
9- Fix TT 'kern' on/off and GPOS interaction (move kerning before GPOS).
Behdad Esfahbod04a30232010-10-13 10:57:27 -040010
Behdad Esfahbod3baae242012-04-11 21:54:37 -040011- Do proper rounding when scaling from font space? May be a non-issue.
Behdad Esfahbod80dce8b2011-05-17 17:08:36 -040012
Behdad Esfahbod0eafce52011-06-01 12:44:30 -040013- Misc features:
14 * init/medi/fina/isol for non-cursive scripts
Behdad Esfahbod6d164032012-04-11 22:04:42 -040015 * vkna,hkna etc for kana, etc
Behdad Esfahbod0eafce52011-06-01 12:44:30 -040016
Behdad Esfahbod652d64a2011-09-16 16:34:39 -040017- Move non-native direction and normalization handling to the generic non-OT
18 layer, such that uniscribe and other backends can use.
19
20- Uniscribe backend needs to enforce one direction only, otherwise cluster
Behdad Esfahbodde087832012-05-17 20:15:49 -040021 values can confuse the user.
Behdad Esfahbod652d64a2011-09-16 16:34:39 -040022
Behdad Esfahbodde087832012-05-17 20:15:49 -040023- GSUB ligation should call merge_clusters(). Also other places.
Behdad Esfahbod3baae242012-04-11 21:54:37 -040024
Behdad Esfahbod8b2753c2012-05-13 00:54:07 +020025- Convert NBSP into space glyph.
26
Behdad Esfahbodde087832012-05-17 20:15:49 -040027- Synthetic GDEF.
28
Behdad Esfahbod3b9b7132012-05-23 22:00:25 -040029- Add Pango backend?
30
31- Add ICUlayout backend?
32
33- Add ICUlayout API?
34
35- Add Old HarfBuzz backend?
36
37- Add Old HarfBuzz API?
38
Behdad Esfahbodff7cbd02011-05-25 09:56:06 -040039
Behdad Esfahbod04a30232010-10-13 10:57:27 -040040API issues to fix before 1.0:
41============================
42
Behdad Esfahbod3b9b7132012-05-23 22:00:25 -040043- Add default font_funcs / Unicode funcs API and to utils.
44
45- Add init_func to font_funcs. Adjust ft.
46
Behdad Esfahbod1587c262011-05-27 16:05:01 -040047- Add pkg-config files for glue codes (harfbuzz-glib, etc)
48
Behdad Esfahbod04a30232010-10-13 10:57:27 -040049- Figure out how many .so objects, how to link, etc
50
Behdad Esfahbod3baae242012-04-11 21:54:37 -040051- 'const' for getter APIs? (use mutable internally)
52
Behdad Esfahbodde087832012-05-17 20:15:49 -040053- blob_from_file?
54
Behdad Esfahbod3baae242012-04-11 21:54:37 -040055
56API additions
57=============
58
Behdad Esfahbodd01402d2012-04-12 17:38:02 -040059- Buffer (de)serialize API ala hb-shape?
Behdad Esfahbodbce09552012-05-27 11:29:21 -040060
Behdad Esfahbod3baae242012-04-11 21:54:37 -040061- Move feature parsing from util into the library
62
Behdad Esfahbod4accc922011-04-07 15:53:26 -040063- Add hb-cairo glue
64
Behdad Esfahbodff7cbd02011-05-25 09:56:06 -040065- Add sanitize API (and a cached version, that saves result on blob user-data)
66
Behdad Esfahboda5e4e102011-05-11 22:00:56 -040067- Add glib GBoxedType stuff and introspection
Behdad Esfahbod2d7b61a2011-04-20 16:40:56 -040068
Behdad Esfahbodbf3eef52011-08-09 00:13:24 +020069- Add Uniscribe face / font get API
70
Behdad Esfahbod13680182011-05-13 20:25:38 -040071- BCP 47 language handling / API (language_matches?)
72
Behdad Esfahbod3994be32011-05-11 21:08:31 -040073- Add hb_face_get_glyph_count()?
74
Behdad Esfahbod04a30232010-10-13 10:57:27 -040075- Add hb_font_create_linear()?
76
Behdad Esfahbod3baae242012-04-11 21:54:37 -040077- Add hb_shape_plan()/hb_shape_planned()
Behdad Esfahbod04a30232010-10-13 10:57:27 -040078
Behdad Esfahbod04a30232010-10-13 10:57:27 -040079- Add query API for aalt-like features?
80
Behdad Esfahbodab428ae2011-05-06 19:30:46 -040081- SFNT api? get_num_faces? get_table_tags? (there's something in stash)
Behdad Esfahbod04a30232010-10-13 10:57:27 -040082
Behdad Esfahbod04a30232010-10-13 10:57:27 -040083- Add segmentation API
84
Behdad Esfahbod3baae242012-04-11 21:54:37 -040085- Add hb-fribidi glue?
86
Behdad Esfahbod04a30232010-10-13 10:57:27 -040087
Behdad Esfahbod0b6d2ac2012-04-10 10:52:03 -040088hb-view / hb-shape enhancements:
89===============================
Behdad Esfahbodeb5796f2011-04-27 12:14:53 -040090
Behdad Esfahbodeb5796f2011-04-27 12:14:53 -040091- Add --width, --height, --auto-size, --align, etc?
Behdad Esfahbod0b6d2ac2012-04-10 10:52:03 -040092- Add XML and JSON formats to hb-shape
Behdad Esfahbodd01402d2012-04-12 17:38:02 -040093- --features="init=medi=isol=fina=0"
Behdad Esfahbodeb5796f2011-04-27 12:14:53 -040094
95
Behdad Esfahbodee8dd832011-05-12 01:02:03 -040096Tests to write:
97==============
98
99- ot-layout enumeration API (needs font)
100
Behdad Esfahbodc4641722011-07-07 23:47:19 -0400101- Finish test-shape.c, grep for TODO
102
103- Finish test-unicode.c, grep for TODO
Behdad Esfahbod5bf56ea2011-05-25 14:43:10 -0400104
Behdad Esfahbod08569c02012-04-14 18:47:07 -0400105- GObject, FreeType, etc
106
Behdad Esfahbod0b08adb2012-04-23 22:41:09 -0400107- hb_set_t
108
Behdad Esfahbod20fdb0f2012-05-17 22:04:45 -0400109- hb_cache_t and relatives
110
Behdad Esfahbodee8dd832011-05-12 01:02:03 -0400111
Behdad Esfahbod04a30232010-10-13 10:57:27 -0400112Optimizations:
113=============
114
Behdad Esfahbod4accc922011-04-07 15:53:26 -0400115- Avoid allocating blob objects internally for for_data() faces?
Behdad Esfahbod04a30232010-10-13 10:57:27 -0400116
Behdad Esfahbod0b6d2ac2012-04-10 10:52:03 -0400117- Add caching layer to hb-ft?
Behdad Esfahbodde087832012-05-17 20:15:49 -0400118
119- Cache feature-less shape plans internally on the face.