2010-06-04 40 views
2

我使用OpenGL渲染多邊形。我注意到,如果我最小化程序,然後再次使用它,它會很慢,幾秒鐘。 (我猜它將我的顯示列表重新上傳到卡上)。我怎麼能防止這個,因爲它有點煩人。我希望它始終有內容。強制OpenGL將內容保存在內存中?

感謝

+0

這聽起來像是一個操作系統問題。它也發生在Windows 7上嗎? – MSalters 2010-06-04 15:28:13

回答

1

當最小化Windows下的程序,它的SetProcessWorkingSetSize(current_process, -1,-1);相當。這告訴虛擬內存管理器,該程序佔用的所有內存都可以被分頁。我所知道的防止這種情況的唯一方法是防止用戶最初將程序最小化(例如,使用DeleteMenu從其系統菜單中刪除「最小化」項)。

請注意,這不是你的程序繪圖數據從圖形卡中刪除的問題 - 這是它的所有數據(很可能是代碼)完全從內存中刪除的問題。當然,如果你有足夠的內存和足夠輕的負載系統,它不會立即被移除 - 它只是被標記爲可用,所以如果系統需要其他內存的內存,它將是(一些)第一個習慣。