pygame.error: Unable to make GL context current

Хотел сделать загрузочный экран на Pygame с помощью threading, получилось что-то типо того:

screen = pygame.display.set_mode((1024, 576), pygame.RESIZABLE)
pygame.display.set_caption("ShootBox - Loading...")
pygame.mouse.set_visible(False)
textRenderer = pygame.font.Font(None, 24)
loadingText = textRenderer.render("Loading", False, (255, 255, 255))
loadingText_rect = loadingText.get_rect()
loadingText_rect.center = screen.get_rect().center

def loadingScreenDisplay():
    while isLoading:
    screen.fill((11, 9, 24))
    screen.blit(loadingText, loadingText_rect)

    pygame.display.update()

loadingDisplayThread = threading.Thread(target=loadingScreenDisplay)

loadingDisplayThread.start()

и затем происходит загрузка игры

Но после запуска в окне текста Loading нету, а в консоль выводится такая ошибка:

pygame.error: Unable to make GL context current

Ответы (1 шт):

Автор решения: CrazyElf

Не очень понятно, зачем тут вообще отдельный поток. Но в целом, скорее всего, как и в других графических библиотеках, с графическим интерфейсом может общаться только основной поток программы. Дополнительные потоки можно использовать для каких-то вычислений, обработки данных и т.д., но не для отрисовки интерфейса. Отрисовка вся должна быть в основном потоке. И не забывайте делать порождённому потоку join. Не всегда это нужно, но лучше иметь такую привычку.

→ Ссылка