简体   繁体   中英

PyOpenGL Glut Window

So I recently started to use PyOpenGL's GLUT module and cannot find any simple tutorials on it (links to any would be appreciated) and I just want to create a glut window using glutCreateWindow('window') , but as soon as the window pops up it disappears. I tried using glutMainLoop() in my main function but it just gives an error.

from OpenGL.GLU import *
from OpenGL.GL import *

glutInit()

def main():
    glutCreateWindow('window')
    glutMainLoop()

if __name__=='__main__':main()

You must set glutDisplayFunc callback. The glut main loop invokes the display call back.

Minimal example:

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 sets the initial display mode. glutSwapBuffers swaps the buffers of the current window ant and thus updates the display. glutPostRedisplay marks the current window as redisplayed and therefore causes the display to be continuously redrawn, which is necessary for animations.

See also Immediate mode and legacy OpenGL

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM