QT OpenGL内存泄漏

QT OpenGL Memory Leak

本文关键字:泄漏 内存 OpenGL QT      更新时间:2023-10-16

我的应用程序包含一个QTimer(作为主时钟)和一个GLCanvas对象。计时器调用画布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
    }

计时器调用update()的频率是多少?

计时器是干什么用的?也许你可以用自己的方式来完成这么重要的任务。