我想從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