我的应用程序包含一个QTimer,作为主时钟和一个GLCanvas对象。计时器调用canvas updateGL函数,然后updateGL调用paintGL。
我注意到大约100kb / s的大内存泄漏,即使paintGL完全为空并且没有渲染任何内容也存在。如果我停止updateGL调用,内存泄漏就会消失。
虽然我的所有代码都已注释掉,但泄漏仍然存在。我需要做某种清算,还是犯了错误?任何帮助将不胜感激。
void GLCanvas::initializeGL() {
glClearColor(21.0f/256.0f,21.0f/256.0f, 21.0f/256.0f, 1);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
}
void GLCanvas::resizeGL(int width, int height) {
glViewport(0, 0, width, height);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45, (float)width/(float)height, 1, 1000);
glMatrixMode(GL_MODELVIEW);
}
void GLCanvas::paintGL() {
// Nothing
}
答案 0 :(得分:0)
您的计时器多久调用一次update()?
什么是计时器?也许你可以通过Qtimer来完成这项重要任务。