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. Не всегда это нужно, но лучше иметь такую привычку.