我想从OpenGL开始,使用Python和PyGame。如何初始化PyGame而不是GLUT的OpenGL上下文
我将使用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