@@ -188,7 +188,11 @@ def draw_mathtext(self, gc, x, y, s, prop, angle):
188
188
# FreeType's y is upwards.
189
189
round (0x40 * (self .height - y + dx * sin + dy * cos ))]
190
190
)
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 )
192
196
# draw_text_image's y is downwards & the bitmap bottom side.
193
197
self ._renderer .draw_text_image (
194
198
bitmap ["buffer" ],
@@ -222,15 +226,28 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath=False, mtext=None):
222
226
if ismath :
223
227
return self .draw_mathtext (gc , x , y , s , prop , angle )
224
228
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 ,
226
230
features = mtext .get_fontfeatures () if mtext is not None else None ,
227
231
language = mtext .get_language () if mtext is not None else None )
228
232
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
234
251
235
252
def get_text_width_height_descent (self , s , prop , ismath ):
236
253
# docstring inherited
0 commit comments