Окно перенасыщения PyOpenGL
Итак, я недавно начал использовать модуль PyOpenGL GLUT и не могу найти по нему простых руководств (ссылки на любые будут оценены), и я просто хочу создать окно перенасыщения, используя
glutCreateWindow('window')
, но как только всплывает окно, оно исчезает. Я пробовал использовать
glutMainLoop()
в моей основной функции, но это просто выдает ошибку.
from OpenGL.GLU import *
from OpenGL.GL import *
glutInit()
def main():
glutCreateWindow('window')
glutMainLoop()
if __name__=='__main__':main()
1 ответ
Вы должны установить glutDisplayFunc
Перезвоните. Основной цикл перенасыщения вызывает обратный вызов дисплея.
Минимальный пример:
from OpenGL.GLUT import *
from OpenGL.GLU import *
from OpenGL.GL import *
glutInit()
def display():
glClearColor(1, 0, 0, 0) # red
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
# your rendering goes here
# [...]
glutSwapBuffers()
glutPostRedisplay()
def main():
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA)
glutCreateWindow('window')
glutDisplayFunc(display)
glutMainLoop()
if __name__=='__main__':
main()
glutInitDisplayMode
устанавливает начальный режим отображения. glutSwapBuffers
меняет местами буферы текущего окна и обновляет отображение. glutPostRedisplay
отмечает текущее окно как повторно отображаемое и, следовательно, вызывает непрерывное перерисовку отображения, что необходимо для анимации.