Pango 2.0 considerations
This came up in the context of !484 (closed)
There's a number of things that should happen for a next-gen Pango. This isssue is the place to track them:
-
Make PangoFontFace and PangoFont thin-ish wrappers around hb_face_t and hb_font_t: !484 (closed) -
Purge all traces of PangoEngine and PangoModule !586 (closed) -
Drop remnants of rc file handling (eg in pango-view) !586 (closed) -
Make most object and class structs private -
Undo char_offset hackery in PangoItem !586 (closed) -
Expand class structs to get rid of class privates
-
-
Drop deprecated apis !586 (closed) -
Clean up apis with too many variants: -
pango_itemize/with_base_dir/with_font/post_process -
pango_break/default_break/tailor_break/attr_break !586 (closed) -
pango_shape/shape_full/shape_with_flags/shape_item !586 (closed)
-
-
Drop unneeded/unused apis -
PangoCoverage isn't needed with pango_font_has_char and pango_font_face_has_char -
Evaluate if we can rely on harfbuzz for metrics and drop PangoFontMetrics -
pango_reorder_items
-
-
Clean up api mistakes -
Make PANGO_SCALE an internal thing and avoid it spilling out into markup and attributes so much. Consider floats -
Add alpha to PangoColor, drop alpha attributes, clean up renderer alpha handling !585 (closed)
-
-
Drop pango-ot !586 (closed) -
Ship just a single .so (linking against cairo, freetype, fontconfig, etc, depending on platform) -
Separate out the guts of PangoLayout as a 'line breaker' object: !579 (closed) -
Redo PangoAttributes in a more binding-friendly and extensible way, #119 (closed) is an old issue about it: !585 (closed) -
We should also look through the existing attributes and figure out if some can be dropped -
Unify underline/overline/strikethrough into text-decoration, a la css !585 (closed) -
Add information about affects and about merge behavior to attribute klasses
-
-
Add a PangoHbFontMap implementation for Windows !600 (closed) -
Drop other fontmap implementations -
Rename classes -
PangoHbFace -> PangoFontFace, PangoHbFont -> PangoFont, PangoHbFontMap -> PangoFontMap -
PangoSimpleLayout -> PangoLayout, PangoLineIter -> PangoLayoutIter (maybe)
-
-
Review PangoRenderer api -
Shape rendering is pretty half-baked, and barely used. Candidate for dropping -
Investigate user fonts as replacement
-
-
Introduce user fonts: !584 (closed)
Edited by Matthias Clasen