3D Text: improvements to vertical alignment
authorDalai Felinto <dfelinto@gmail.com>
Wed, 5 Sep 2018 01:21:12 +0000 (11:21 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 5 Sep 2018 01:33:14 +0000 (11:33 +1000)
commit312af01fb4faa7d1ff0dea4d2ef936caa9af4c67
tree260a1b6625b210d319b2baf7433287051cc5ff78
parent053669e4aec11e5dbad61dd7308fe68a23f67034
3D Text: improvements to vertical alignment

They way Blender handles vertical alignment is very buggy:

- Top-Base: It works perfectly.

- Bottom: It is actually bottom-baseline,
  and it fails when line size is != 1.0 when working with text boxes.

- Top: Poorly implemented, it should use font's ascent
  (recommended distance from baseline),
  so it has room for accents,
  but it's not one line distance far from the origin (as it is now).

- Center: Poorly implemented.
  This is tricky since there is no silver bullet.

To clear this situation I created a new option (Bottom-Baseline),
and addressed the issues above.
I'm getting the ascent and descent from freetype2,
and use this for padding above/below the text.
Also for vertically centering the text.
release/scripts/startup/bl_ui/properties_data_curve.py
source/blender/blenkernel/intern/font.c
source/blender/blenlib/BLI_vfontdata.h
source/blender/blenlib/intern/freetypefont.c
source/blender/makesdna/DNA_curve_types.h
source/blender/makesrna/intern/rna_curve.c