author Chris Jones <>
Mon, 19 Nov 2012 09:58:38 -0800
changeset 113713 cf8750abee06cde395c659f8ecd8ae019d7512e3
parent 87852 392319d8c1fada29709b6d561224e874dede2b45
permissions -rw-r--r--
Bug 804852: Support for the hwc implementation of Composer2D. r=mattwoodrow,mwu,roc sr=roc This is a rollup of the following patches part 0: Add a dynamic cast to ColorLayer* part 1: Add a Composer2D interface to enable implementations to more efficiently compose layer trees part 2: Let widgets expose Composer2Ds, if they have them part 3: Expose a layers ogl "friend" API that Composer2D will consume part 4: Hook Composer2D into the LayerManagerOGL rendering pipeline part 5: Implement all the goop to let widget/gonk use a Composer2D (HwcComposer2D)

General fixes:

- Move feature parsing from util into the library

- 'const' for getter APIs? (use mutable internally)

- Fix TT 'kern' on/off and GPOS interaction (move kerning before GPOS)

- Do proper rounding when scaling from font space?

- Misc features:
  * init/medi/fina/isol for non-cursive scripts
  * vkna,hkna etc for kana, *jmo for hangul, 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 confused the user.

API issues to fix before 1.0:

- Rename all internal symbols (static ones even) to have _hb prefix?

- Add pkg-config files for glue codes (harfbuzz-glib, etc)

- 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)

- Add glib GBoxedType stuff and introspection

API to add (maybe after 1.0):

- 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_execute()

- 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?

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, grep for TODO

- Finish test-unicode.c, grep for TODO


- Avoid allocating blob objects internally for for_data() faces?

- Add caching layer to hb-ft