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