Я пытаюсь начать с OpenGL, используя Python и PyGame.Как инициализировать контекст OpenGL с помощью PyGame вместо GLUT
Я собираюсь использовать PyGame вместо GLUT, чтобы сделать все инициализацию, открывающиеся окна, обработка входных и т.д.
Однако мои шейдеры не в состоянии компиляции, если я не точно указать версию OpenGL и профиль.
Они сделать компилировать с инициализации GLUT из книги:
glutInit()
glutInitDisplayMode(GLUT_RGBA)
glutInitWindowSize(400, 400)
# this is what I need
glutInitContextVersion(3, 3)
glutInitContextProfile(GLUT_CORE_PROFILE)
glutCreateWindow("main")
Но, с простой инициализации PyGame так:
pygame.init()
display = (400, 400)
pygame.display.set_mode(display, pygame.DOUBLEBUF|pygame.OPENGL)
который не Точную OpenGL версии 3.3 и CORE_PROFILE , эта же программа потерпит неудачу при попытке скомпилировать шейдеры:
RuntimeError: ('Shader compile failure (0): 0:2(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ES\n', ['\n #version 330 core\n layout(location = 0) in vec4 position;\n void main()\n {\n gl_Position = position;\n }\n '], GL_VERTEX_SHADER)
Мой вопрос: как мне сделать эту инициализацию с помощью PyGame?
Вы когда-нибудь решали это? – Oly