Метод IDirectDrawSurface7::Restore (ddraw.h)
Восстанавливает потерянную поверхность. Это происходит при освобождении поверхностной памяти, связанной с объектом DirectDrawSurface.
Синтаксис
HRESULT Restore();
Возвращаемое значение
Если метод выполнен успешно, возвращаемое значение будет DD_OK.
В случае сбоя метод может вернуть одно из следующих значений ошибки:
- DDERR_GENERIC
- DDERR_IMPLICITLYCREATED
- DDERR_INCOMPATIBLEPRIMARY
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_NOEXCLUSIVEMODE
- DDERR_OUTOFMEMORY
- DDERR_UNSUPPORTED
- DDERR_WRONGMODE
Комментарии
Восстановление восстанавливает память, выделенную для поверхности, но не перезагружает точечные изображения, которые могли существовать на поверхности до ее потери.
Поверхности могут быть потеряны из-за изменения режима графического адаптера или из-за того, что приложение получило монопольный доступ к графическому адаптеру и освободило всю память поверхности, выделенную в данный момент на адаптере. Когда объект DirectDrawSurface теряет память поверхности, многие методы возвращают DDERR_SURFACELOST и не выполняют никаких других функций. Метод IDirectDrawSurface7::Restore перераспределяет память поверхности и повторно присоединяет ее к объекту DirectDrawSurface.
Один вызов Restore восстанавливает неявные поверхности объекта DirectDrawSurface (задние буферы и т. д.). Попытка восстановить неявно созданную поверхность приводит к ошибке. Восстановление не работает для явных вложений, созданных с помощью метода IDirectDrawSurface7::AddAttachedSurface — каждую из этих поверхностей необходимо восстанавливать по отдельности.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | ddraw.h |
Библиотека | Ddraw.lib |
DLL | Ddraw.dll |