QOpenGLContext :: swapBuffers()内存泄漏?

时间:2014-07-29 16:09:40

标签: c++ qt5 opengl-3

我在Windows上使用C ++和Qt5.2,我使用QOpenGLContext和QWindow来显示OpenGL的3D场景。

每次调用QOpenGLContext::swapbuffers()时都会出现内存泄漏问题

我有一个名为RenderWindow的类,它直接继承自QWindow。 在渲染事件期间,我执行此函数:

void RenderWindow::doRender()
{
    if(!isExposed())
        return;

    if(!mContext)
        createContext();

    mContext->makeCurrent(this);

    //mDevice.setSize(size());

    //for(Renderer* vRenderer : mRenderers)
    //    vRenderer->render();


    mContext->swapBuffers(this);
    mContext->doneCurrent();
}

当评论3个lignes时,屏幕上没有显示任何内容,只有黑色窗口。 这个功能将:

  • 如果没有露出窗户,不会走得太远;
  • 创建一个QOpenGLContext实例并配置它(如果它还不存在);
  • 将上下文设为最新;
  • 交换缓冲区;
  • 删除当前的上下文。

该课程的其余部分没有做更多的工作,juste管理计时器,初始化一些数据...

问题是这样,当我查看Windows任务管理器时,我发现我的程序每秒增长4Ko。 如果我评论mContext->swapBuffers(this),记忆力就不会增长。

我检查过,我只输入createContext();一次。

我不知道这个记忆的来源,但它并没有停止。 有没有人有任何想法?

谢谢你, / OragonEfreet

0 个答案:

没有答案