强制OpenGL将内容保存在内存中?

时间:2010-06-04 13:58:53

标签: c++ c opengl

我正在使用OpenGL渲染多边形。我注意到如果我最小化程序然后再次开始使用它,它会非常慢几​​秒钟。 (我猜它将我的显示列表重新上载到卡上)。我怎么能防止这种情况,因为它有点烦人。我希望它始终拥有内容。

由于

1 个答案:

答案 0 :(得分:1)

在Windows下最小化程序时,它的作用相当于SetProcessWorkingSetSize(current_process, -1,-1);。这告诉虚拟内存管理器该程序占用的所有内存都有资格被分页。我知道防止这种情况的唯一方法是阻止用户首先最小化程序(例如,使用DeleteMenu从系统菜单中删除“最小化”项目。)

请注意,这不是您的程序的绘图数据从图形卡中删除的问题 - 它的所有数据(很可能是代码)完全从内存中删除。当然,如果你有足够的内存和足够轻的系统,它将不会被立即删除 - 它只是被标记为可用,所以如果系统需要内存用于其他东西,它将是(某些)第一个习惯了。