Поделиться через


Метод 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

См. также раздел

IDirectDrawSurface7