Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 1 | General fixes: |
| 2 | ============= |
| 3 | |
Behdad Esfahbod | 3b9b713 | 2012-05-23 22:00:25 -0400 | [diff] [blame] | 4 | - Warn at compile time (and runtime with HB_DEBUG?) if no Unicode / font |
| 5 | funcs found / set. |
Behdad Esfahbod | a0d4cae | 2012-04-17 13:42:30 -0400 | [diff] [blame] | 6 | |
Behdad Esfahbod | d01402d | 2012-04-12 17:38:02 -0400 | [diff] [blame] | 7 | - In hb_shape(), assert if direction is INVALID. |
| 8 | |
| 9 | - Fix TT 'kern' on/off and GPOS interaction (move kerning before GPOS). |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 10 | |
Behdad Esfahbod | 3baae24 | 2012-04-11 21:54:37 -0400 | [diff] [blame] | 11 | - Do proper rounding when scaling from font space? May be a non-issue. |
Behdad Esfahbod | 80dce8b | 2011-05-17 17:08:36 -0400 | [diff] [blame] | 12 | |
Behdad Esfahbod | 0eafce5 | 2011-06-01 12:44:30 -0400 | [diff] [blame] | 13 | - Misc features: |
| 14 | * init/medi/fina/isol for non-cursive scripts |
Behdad Esfahbod | 6d16403 | 2012-04-11 22:04:42 -0400 | [diff] [blame] | 15 | * vkna,hkna etc for kana, etc |
Behdad Esfahbod | 0eafce5 | 2011-06-01 12:44:30 -0400 | [diff] [blame] | 16 | |
Behdad Esfahbod | 652d64a | 2011-09-16 16:34:39 -0400 | [diff] [blame] | 17 | - 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 Esfahbod | de08783 | 2012-05-17 20:15:49 -0400 | [diff] [blame] | 21 | values can confuse the user. |
Behdad Esfahbod | 652d64a | 2011-09-16 16:34:39 -0400 | [diff] [blame] | 22 | |
Behdad Esfahbod | de08783 | 2012-05-17 20:15:49 -0400 | [diff] [blame] | 23 | - GSUB ligation should call merge_clusters(). Also other places. |
Behdad Esfahbod | 3baae24 | 2012-04-11 21:54:37 -0400 | [diff] [blame] | 24 | |
Behdad Esfahbod | 8b2753c | 2012-05-13 00:54:07 +0200 | [diff] [blame] | 25 | - Convert NBSP into space glyph. |
| 26 | |
Behdad Esfahbod | de08783 | 2012-05-17 20:15:49 -0400 | [diff] [blame] | 27 | - Synthetic GDEF. |
| 28 | |
Behdad Esfahbod | 3b9b713 | 2012-05-23 22:00:25 -0400 | [diff] [blame] | 29 | - 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 Esfahbod | ff7cbd0 | 2011-05-25 09:56:06 -0400 | [diff] [blame] | 39 | |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 40 | API issues to fix before 1.0: |
| 41 | ============================ |
| 42 | |
Behdad Esfahbod | 3b9b713 | 2012-05-23 22:00:25 -0400 | [diff] [blame] | 43 | - Add default font_funcs / Unicode funcs API and to utils. |
| 44 | |
| 45 | - Add init_func to font_funcs. Adjust ft. |
| 46 | |
Behdad Esfahbod | 1587c26 | 2011-05-27 16:05:01 -0400 | [diff] [blame] | 47 | - Add pkg-config files for glue codes (harfbuzz-glib, etc) |
| 48 | |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 49 | - Figure out how many .so objects, how to link, etc |
| 50 | |
Behdad Esfahbod | 3baae24 | 2012-04-11 21:54:37 -0400 | [diff] [blame] | 51 | - 'const' for getter APIs? (use mutable internally) |
| 52 | |
Behdad Esfahbod | de08783 | 2012-05-17 20:15:49 -0400 | [diff] [blame] | 53 | - blob_from_file? |
| 54 | |
Behdad Esfahbod | 3baae24 | 2012-04-11 21:54:37 -0400 | [diff] [blame] | 55 | |
| 56 | API additions |
| 57 | ============= |
| 58 | |
Behdad Esfahbod | d01402d | 2012-04-12 17:38:02 -0400 | [diff] [blame] | 59 | - Buffer (de)serialize API ala hb-shape? |
Behdad Esfahbod | bce0955 | 2012-05-27 11:29:21 -0400 | [diff] [blame] | 60 | |
Behdad Esfahbod | 3baae24 | 2012-04-11 21:54:37 -0400 | [diff] [blame] | 61 | - Move feature parsing from util into the library |
| 62 | |
Behdad Esfahbod | 4accc92 | 2011-04-07 15:53:26 -0400 | [diff] [blame] | 63 | - Add hb-cairo glue |
| 64 | |
Behdad Esfahbod | ff7cbd0 | 2011-05-25 09:56:06 -0400 | [diff] [blame] | 65 | - Add sanitize API (and a cached version, that saves result on blob user-data) |
| 66 | |
Behdad Esfahbod | a5e4e10 | 2011-05-11 22:00:56 -0400 | [diff] [blame] | 67 | - Add glib GBoxedType stuff and introspection |
Behdad Esfahbod | 2d7b61a | 2011-04-20 16:40:56 -0400 | [diff] [blame] | 68 | |
Behdad Esfahbod | bf3eef5 | 2011-08-09 00:13:24 +0200 | [diff] [blame] | 69 | - Add Uniscribe face / font get API |
| 70 | |
Behdad Esfahbod | 1368018 | 2011-05-13 20:25:38 -0400 | [diff] [blame] | 71 | - BCP 47 language handling / API (language_matches?) |
| 72 | |
Behdad Esfahbod | 3994be3 | 2011-05-11 21:08:31 -0400 | [diff] [blame] | 73 | - Add hb_face_get_glyph_count()? |
| 74 | |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 75 | - Add hb_font_create_linear()? |
| 76 | |
Behdad Esfahbod | 3baae24 | 2012-04-11 21:54:37 -0400 | [diff] [blame] | 77 | - Add hb_shape_plan()/hb_shape_planned() |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 78 | |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 79 | - Add query API for aalt-like features? |
| 80 | |
Behdad Esfahbod | ab428ae | 2011-05-06 19:30:46 -0400 | [diff] [blame] | 81 | - SFNT api? get_num_faces? get_table_tags? (there's something in stash) |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 82 | |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 83 | - Add segmentation API |
| 84 | |
Behdad Esfahbod | 3baae24 | 2012-04-11 21:54:37 -0400 | [diff] [blame] | 85 | - Add hb-fribidi glue? |
| 86 | |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 87 | |
Behdad Esfahbod | 0b6d2ac | 2012-04-10 10:52:03 -0400 | [diff] [blame] | 88 | hb-view / hb-shape enhancements: |
| 89 | =============================== |
Behdad Esfahbod | eb5796f | 2011-04-27 12:14:53 -0400 | [diff] [blame] | 90 | |
Behdad Esfahbod | eb5796f | 2011-04-27 12:14:53 -0400 | [diff] [blame] | 91 | - Add --width, --height, --auto-size, --align, etc? |
Behdad Esfahbod | 0b6d2ac | 2012-04-10 10:52:03 -0400 | [diff] [blame] | 92 | - Add XML and JSON formats to hb-shape |
Behdad Esfahbod | d01402d | 2012-04-12 17:38:02 -0400 | [diff] [blame] | 93 | - --features="init=medi=isol=fina=0" |
Behdad Esfahbod | eb5796f | 2011-04-27 12:14:53 -0400 | [diff] [blame] | 94 | |
| 95 | |
Behdad Esfahbod | ee8dd83 | 2011-05-12 01:02:03 -0400 | [diff] [blame] | 96 | Tests to write: |
| 97 | ============== |
| 98 | |
| 99 | - ot-layout enumeration API (needs font) |
| 100 | |
Behdad Esfahbod | c464172 | 2011-07-07 23:47:19 -0400 | [diff] [blame] | 101 | - Finish test-shape.c, grep for TODO |
| 102 | |
| 103 | - Finish test-unicode.c, grep for TODO |
Behdad Esfahbod | 5bf56ea | 2011-05-25 14:43:10 -0400 | [diff] [blame] | 104 | |
Behdad Esfahbod | 08569c0 | 2012-04-14 18:47:07 -0400 | [diff] [blame] | 105 | - GObject, FreeType, etc |
| 106 | |
Behdad Esfahbod | 0b08adb | 2012-04-23 22:41:09 -0400 | [diff] [blame] | 107 | - hb_set_t |
| 108 | |
Behdad Esfahbod | 20fdb0f | 2012-05-17 22:04:45 -0400 | [diff] [blame] | 109 | - hb_cache_t and relatives |
| 110 | |
Behdad Esfahbod | ee8dd83 | 2011-05-12 01:02:03 -0400 | [diff] [blame] | 111 | |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 112 | Optimizations: |
| 113 | ============= |
| 114 | |
Behdad Esfahbod | 4accc92 | 2011-04-07 15:53:26 -0400 | [diff] [blame] | 115 | - Avoid allocating blob objects internally for for_data() faces? |
Behdad Esfahbod | 04a3023 | 2010-10-13 10:57:27 -0400 | [diff] [blame] | 116 | |
Behdad Esfahbod | 0b6d2ac | 2012-04-10 10:52:03 -0400 | [diff] [blame] | 117 | - Add caching layer to hb-ft? |
Behdad Esfahbod | de08783 | 2012-05-17 20:15:49 -0400 | [diff] [blame] | 118 | |
| 119 | - Cache feature-less shape plans internally on the face. |