I have tracked down a huge slowdown on loading fonts with pygame.font.SysFont

Mac OSX 11.2.3
Python 3.9.1
Pygame 2.0.1

If I load a font like the system font using None with a call to 
pygame.font.font, it happens almost immediately.

But if I load a font by name using pygame.font.SysFont, it's taking over 7 
seconds on my Mac to load.  It doesn't seem to matter which font I try to use.  

Sample program:

import sys
import pygame
import time
 
pygame.init()
screen = pygame.display.set_mode((400, 400))
clock = pygame.time.Clock()

now = time.time()
font1 = pygame.font.Font(None, 24)
print('Loading System font took', time.time() - now)

now = time.time()
font2 = pygame.font.SysFont('Arial', 24)
print('Loading Arial font took', time.time() - now)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
     
    screen.fill((255, 255, 255))
     
    pygame.display.flip()
    clock.tick(30)


Output:
pygame 2.0.1 (SDL 2.0.14, Python 3.9.1)
Hello from the pygame community. https://www.pygame.org/contribute.html
Loading System font took 0.0006210803985595703
Loading Arial font took 7.058471202850342


(I don't have a setup to test this on Windows.)

This seems like a rather excessive amount of time as it slows down that start 
up of many of my programs.  

It seems to be related to how long it takes to get the list of fonts.  If I add 
this before the call to SysFont: 

now = time.time()
fontList = pygame.font.get_fonts()
print('Getting fonts took', time.time() - now)

I get:

Loading System font took 0.0006549358367919922
Getting fonts took 7.013390064239502
Loading Arial font took 0.0004830360412597656


Anyone else seeing this?

Can someone tell me how to send in a bug report for this?

Thanks,

Irv




Reply via email to