Open PhilippImhof opened 3 years ago
This will require a refactor in how we render things, see https://gitlab.gnome.org/GNOME/pango/-/issues/533#note_1044494 and corresponding docs https://developer.gnome.org/pango/stable/pango-Glyph-Storage.html#pango-glyph-string-index-to-x
where if my understanding is correct, we shouldn't PangoLayout
which we currently do no, instead, we should first create a context from PangoCairo, pango-cairo-create-context, then use pango_itemize after that pango_shape or rather pango_shape_full, and then finally use pango_glyph_string_index_to_x for rendering a single single character with ligature on a cairo surface, while changing the colour in Cairo.
Before doing this I would like to do #30
This requires a major refactor so it can't be done now and is in the least priority because Manim's SVG parser still doesn't render Gradients from the SVG file.
Enhancement proposal
When using gradients in
MarkupText
we have Pango render the text to an SVG. We then load the SVG into aSVGMobject
and apply the gradient to the characters. This has two major drawbacks:fl
counts for two characters but might be rendered as a single glyphSVGMobject
We will have to be careful w.r.t. the
Write
animation. Currently, even with gradients every character has its own color. If the character is itself colored with a gradient, what color is to be used for the stroke?