【发布时间】:2021-06-03 18:23:09
【问题描述】:
这个带有 PyOpenGl 和 GLUT 的环境的最小工作示例与我在更大代码中遇到的问题相同。连续创建/关闭此类的实例会增加内存使用量,直到我的所有机器开始减速。
发生的情况是对glutDestroyWindow 的调用没有效果,并且进程/usr/lib/xorg/Xorg 迅速填满了整个GPU。
from OpenGL.GLUT import *
DISPLAY_WIDTH, DISPLAY_HEIGHT = 2000, 2000
class TestEnv:
def __init__(self):
self.window = None
glutInit(sys.argv)
glutInitWindowSize(DISPLAY_WIDTH, DISPLAY_HEIGHT)
self.window = glutCreateWindow(b"TestEnv")
def close(self):
if self.window:
glutDestroyWindow(self.window)
if __name__ == "__main__":
i = 0
while True:
env = TestEnv()
env.close()
print(i)
i+=1
释放所有资源的正确方法是什么?
【问题讨论】:
-
我没有使用glut,但是看起来你是在释放window实例,而不是
glutInit(sys.argv)占用的内存?也许从某种 glutDone() 浏览 glut 文档?
标签: python opengl glut pyopengl freeglut