首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyOpenGL Glut窗口

PyOpenGL Glut窗口
EN

Stack Overflow用户
提问于 2021-04-26 01:12:43
回答 1查看 44关注 0票数 1

所以我最近开始使用PyOpenGL的GLUT模块,但在上面找不到任何简单的教程(任何链接都会很感谢),我只想用glutCreateWindow('window')创建一个glut窗口,但是一旦窗口弹出,它就消失了。我尝试在我的主函数中使用glutMainLoop(),但它只是给出了一个错误。

代码语言:javascript
复制
from OpenGL.GLU import *
from OpenGL.GL import *

glutInit()

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

if __name__=='__main__':main()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-26 01:20:02

必须设置glutDisplayFunc回调。glut主循环调用显示回调。

最小示例:

代码语言:javascript
复制
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交换当前窗口ant的缓冲区,从而更新显示。glutPostRedisplay将当前窗口标记为重新显示,因此会导致显示连续重新绘制,这是动画所必需的。

另请参阅Immediate mode and legacy OpenGL

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67256146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档