@@ -188,7 +188,11 @@ def draw_mathtext(self, gc, x, y, s, prop, angle):
188188 # FreeType's y is upwards.
189189 round (0x40 * (self .height - y + dx * sin + dy * cos ))]
190190 )
191- bitmap = font ._render_glyph (glyph_index , get_hinting_flag ())
191+ bitmap = font ._render_glyph (
192+ glyph_index ,
193+ # The "y" parameter is upwards (per FreeType).
194+ x + dx * c - dy * s , self .height - y + dx * s + dy * c , angle ,
195+ get_hinting_flag () | LoadFlags .COLOR )
192196 # draw_text_image's y is downwards & the bitmap bottom side.
193197 self ._renderer .draw_text_image (
194198 bitmap ["buffer" ],
@@ -222,15 +226,28 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath=False, mtext=None):
222226 if ismath :
223227 return self .draw_mathtext (gc , x , y , s , prop , angle )
224228 font = self ._prepare_font (prop )
225- font .set_text (s , angle , flags = get_hinting_flag (),
229+ font .set_text (s , angle , flags = get_hinting_flag () | LoadFlags . COLOR ,
226230 features = mtext .get_fontfeatures () if mtext is not None else None ,
227231 language = mtext .get_language () if mtext is not None else None )
228232 for bitmap in font ._render_glyphs (x , self .height - y ):
229- self ._renderer .draw_text_image (
230- bitmap ["buffer" ],
231- bitmap ["left" ],
232- int (self .height ) - bitmap ["top" ] + bitmap ["buffer" ].shape [0 ],
233- 0 , gc )
233+ # glyph_index = font.get_char_index(ord(c))
234+ # glyph = font.load_glyph(glyph_index)
235+ # bitmap = font._render_glyph(
236+ # glyph_index, x, self.height - y, angle,
237+ # get_hinting_flag() | LoadFlags.COLOR)
238+ if bitmap ["buffer" ].ndim == 3 :
239+ self ._renderer .draw_image (
240+ gc ,
241+ bitmap ["left" ],
242+ bitmap ["top" ] - bitmap ["buffer" ].shape [0 ],
243+ bitmap ["buffer" ][::- 1 , :, [2 , 1 , 0 , 3 ]])
244+ else :
245+ self ._renderer .draw_text_image (
246+ bitmap ["buffer" ],
247+ bitmap ["left" ],
248+ int (self .height ) - bitmap ["top" ] + bitmap ["buffer" ].shape [0 ],
249+ 0 , gc )
250+ # x += glyph.horiAdvance / 64
234251
235252 def get_text_width_height_descent (self , s , prop , ismath ):
236253 # docstring inherited
0 commit comments