Метод IDirect3DDevice9Ex::ResetEx (d3d9.h)

Сбрасывает тип, размер и формат цепочки буферов с сохранением всех остальных поверхностей.

Синтаксис

HRESULT ResetEx(
  [in, out] D3DPRESENT_PARAMETERS *pPresentationParameters,
  [in, out] D3DDISPLAYMODEEX      *pFullscreenDisplayMode
);

Параметры

[in, out] pPresentationParameters

Тип: D3DPRESENT_PARAMETERS*

Указатель на структуру D3DPRESENT_PARAMETERS , описывающую новые параметры презентации. Это значение не может иметь значение NULL.

При переключении в полноэкранный режим Direct3D попытается найти формат рабочего стола, соответствующий формату заднего буфера, чтобы форматы буфера обратного и переднего буфера были идентичными (чтобы исключить необходимость преобразования цвета).

Когда этот метод возвращает следующее:

  • BackBufferCount, BackBufferWidth и BackBufferHeight имеют нулевое значение.
  • BackBufferFormat имеет значение D3DFORMAT только для оконного режима; В полноэкранном режиме должен быть указан формат.

[in, out] pFullscreenDisplayMode

Тип: D3DDISPLAYMODEEX*

Указатель на структуру D3DDISPLAYMODEEX , описывающую свойства требуемого режима отображения. Это значение должно быть указано для полноэкранных приложений, но может иметь значение NULL для оконных приложений.

Возвращаемое значение

Тип: HRESULT

Метод может возвращать: D3D_OK, D3DERR_DEVICELOST или D3DERR_DEVICEHUNG (см. раздел D3DERR).

Если этот метод возвращает D3DERR_DEVICELOST или D3DERR_DEVICEHUNG приложение может вызывать только IDirect3DDeviceEx::ResetEx, IDirect3Device9Ex::CheckDeviceState или освободить указатель интерфейса; Любой другой вызов API вызовет исключение.

Комментарии

Если вызов IDirect3Device9Ex::ResetEx завершается сбоем, устройство будет помещено в состояние потери (на что указывает возвращаемое значение D3DERR_DEVICELOST из вызова IDirect3Device9Ex::CheckDeviceState). Дополнительные сведения об использовании IDirect3Device9Ex::CheckDeviceState и Изменения поведения потерянного устройства см. в статье Об использовании IDirect3Device9Ex::ResetEx в контексте потерянных устройств.

В отличие от предыдущих версий DirectX, вызов IDirect3Device9Ex::ResetEx не приводит к потере поверхностей, текстур или сведений о состоянии.

Пиксельные шейдеры и вершинные шейдеры сохраняют вызовы IDirect3DDevice9Ex::ResetEx для Direct3D 9. Приложение не должно создавать их явным образом.

Существует два разных типа цепочек буферов: полноэкранные или оконные. Если новая цепочка буферов является полноэкранной, адаптер будет помещен в режим отображения, соответствующий новому размеру.

Приложения могут ожидать отправки им сообщений во время этого вызова (например, до возврата этого вызова); Приложения должны принять меры предосторожности, чтобы не вызывать Direct3D в настоящее время.

Вызов IDirect3DDevice9Ex::ResetEx завершится ошибкой при вызове в потоке, отличном от потока, используемого для создания сбрасываемого устройства.

D3DFMT_UNKNOWN можно указать для обратного буфера оконного режима при вызове IDirect3D9Ex::CreateDeviceEx, IDirect3Device9Ex::ResetEx и IDirect3DDevice9::CreateAdditionalSwapChain. Это означает, что приложению не нужно запрашивать текущий формат рабочего стола перед вызовом IDirect3D9Ex::CreateDeviceEx для оконного режима. Для полноэкранного режима необходимо указать формат заднего буфера. Если задать значение BackBufferCount равным нулю (BackBufferCount = 0), то это приведет к созданию одного обратного буфера.

При попытке сброса нескольких видеоадаптеров в группе задайте pPresentationParameters так, чтобы они указывали на массив D3DPRESENT_PARAMETERS структур, по одному для каждого дисплея в группе адаптеров.

Если устройство с несколькими головками было создано с D3DCREATE_ADAPTERGROUP_DEVICE, IDirect3DeviceEx::ResetEx требует массив D3DPRESENT_PARAMETERS структур, в которых каждая структура должна указывать полноэкранный дисплей. Чтобы вернуться в оконный режим, приложение должно уничтожить устройство и повторно создать устройство без поддержки нескольких головок в оконном режиме.

Требования

Требование Значение
Целевая платформа Windows
Header d3d9.h
Библиотека D3D9.lib

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

IDirect3DDevice9Ex