Je suis en train de commencer avec OpenGL, en utilisant Python et PyGame.Comment initialiser contexte OpenGL avec PyGame au lieu de GLUT
Je vais utiliser PyGame au lieu de GLUT faire tout ce que l'initialisation, l'ouverture de fenêtres, entrée manutention, etc.
Cependant, mes shaders ne parviennent pas à compiler, à moins que je précise exactement la version d'OpenGL et profil.
Ils font compilez avec l'initialisation de GLUT du livre:
glutInit()
glutInitDisplayMode(GLUT_RGBA)
glutInitWindowSize(400, 400)
# this is what I need
glutInitContextVersion(3, 3)
glutInitContextProfile(GLUT_CORE_PROFILE)
glutCreateWindow("main")
Mais, avec l'initialisation simple PyGame comme ceci:
pygame.init()
display = (400, 400)
pygame.display.set_mode(display, pygame.DOUBLEBUF|pygame.OPENGL)
qui ne spécifie pas la version OpenGL exacte 3.3 et CORE_PROFILE , le même programme échouerait lors de la tentative de compilation des shaders:
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)
Ma question est: comment dois-je faire cette initialisation avec PyGame?
Avez-vous déjà trouvé la solution? – Oly