Заставить OpenGL сохранить содержимое в памяти? - PullRequest
2 голосов
/ 04 июня 2010

Я использую OpenGL для рендеринга полигонов.Я замечаю, что если я сверну программу и начну ее использовать снова, она будет очень медленной в течение нескольких секунд.(Я предполагаю, что это перезагружает мои списки отображения на карту).Как я могу предотвратить это, потому что это немного раздражает.Я хочу, чтобы в нем всегда было содержимое.

Спасибо

1 Ответ

1 голос
/ 04 июня 2010

Когда вы минимизируете программу под Windows, она эквивалентна SetProcessWorkingSetSize(current_process, -1,-1);. Это сообщает диспетчеру виртуальной памяти, что вся память, занимаемая этой программой, может быть выгружена. Единственный известный мне способ предотвратить это - это вообще запретить пользователю свернуть программу (например, используйте DeleteMenu, чтобы удалить пункт «свернуть» из системного меню).

Обратите внимание, что дело не в том, что данные чертежа вашей программы удаляются с графической карты, а в том, что все ее данные (и, возможно, код) полностью удаляются из памяти. Конечно, если у вас достаточно памяти и недостаточно загруженная система, она не будет немедленно удалена - она ​​будет помечена как доступная, поэтому, если системе потребуется память для чего-то другого, она будет (частично) первой привыкнуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...