- Code: Select all
IDirectDrawSurface2::Blt(): DDERR_SURFACELOST
see you later!
в настройках выбран — driver=blt (hardware blitter. recommended for accelerated cards (geforce4/etc))
Обратил внимание, что данная ситуация случается при переключении между задачами, активно использующими ресурсы видеокарты (например последние версии PhotoShop)
Нашел интересный текст о функциях DirectX и этой ошибке в частности, который подтверждает мои догадки:
DirectDraw может забрать у неактивного приложения видеопамять, занятую некоторыми (или всеми) поверхностями. Такие поверхности называются потерянными (lost). Вообще говоря, такие поверхности остаются у вашей программы, но они перестают быть связанными с какой-либо областью памяти. Любая попытка использовать потерянную поверхность приводит к ошибке DDERR_SURFACELOST. Функция IsLost позволяет узнать, была ли потеряна память данной поверхности.
Потерянную поверхность можно восстановить функцией Restore, но только после повторной активизации вашего приложения. Тем самым предотвращается восстановление поверхностей для приложений, находящихся в свернутом виде на панели задач.
Я не знаю проверяется ли сейчас что-нибудь функцией IsLost, но подозреваю что нет.