@@ -184,7 +184,7 @@ def draw_mathtext(self, gc, x, y, s, prop, angle):
184
184
font .get_char_index (char ),
185
185
# The "y" parameter is upwards (per FreeType).
186
186
x + dx * c - dy * s , self .height - y + dx * s + dy * c , angle ,
187
- get_hinting_flag ())
187
+ get_hinting_flag () | LoadFlags . COLOR )
188
188
# draw_text_image's y is downwards & the bitmap bottom side.
189
189
self ._renderer .draw_text_image (
190
190
bitmap ["buffer" ],
@@ -218,15 +218,28 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath=False, mtext=None):
218
218
if ismath :
219
219
return self .draw_mathtext (gc , x , y , s , prop , angle )
220
220
font = self ._prepare_font (prop )
221
- font .set_text (s , 0 , flags = get_hinting_flag (),
221
+ font .set_text (s , 0 , flags = get_hinting_flag () | LoadFlags . COLOR ,
222
222
features = mtext .get_fontfeatures () if mtext is not None else None ,
223
223
language = mtext .get_language () if mtext is not None else None )
224
224
for bitmap in font ._render_glyphs (x , self .height - y ):
225
- self ._renderer .draw_text_image (
226
- bitmap ["buffer" ],
227
- bitmap ["left" ],
228
- int (self .height ) - bitmap ["top" ] + bitmap ["buffer" ].shape [0 ],
229
- 0 , gc )
225
+ # glyph_index = font.get_char_index(ord(c))
226
+ # glyph = font.load_glyph(glyph_index)
227
+ # bitmap = font._render_glyph(
228
+ # glyph_index, x, self.height - y, angle,
229
+ # get_hinting_flag() | LoadFlags.COLOR)
230
+ if bitmap ["buffer" ].ndim == 3 :
231
+ self ._renderer .draw_image (
232
+ gc ,
233
+ bitmap ["left" ],
234
+ bitmap ["top" ] - bitmap ["buffer" ].shape [0 ],
235
+ bitmap ["buffer" ][::- 1 , :, [2 , 1 , 0 , 3 ]])
236
+ else :
237
+ self ._renderer .draw_text_image (
238
+ bitmap ["buffer" ],
239
+ bitmap ["left" ],
240
+ int (self .height ) - bitmap ["top" ] + bitmap ["buffer" ].shape [0 ],
241
+ 0 , gc )
242
+ # x += glyph.horiAdvance / 64
230
243
231
244
def get_text_width_height_descent (self , s , prop , ismath ):
232
245
# docstring inherited
0 commit comments