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


Метод ID3D11Device::CreateDeferredContext (d3d11.h)

Создает отложенный контекст, который может записывать списки команд.

Синтаксис

HRESULT CreateDeferredContext(
                  UINT                ContextFlags,
  [out, optional] ID3D11DeviceContext **ppDeferredContext
);

Параметры

ContextFlags

Тип: UINT

Зарезервировано для последующего использования. Пройти 0.

[out, optional] ppDeferredContext

Тип: ID3D11DeviceContext**

После завершения метода инициализируется переданный указатель на указатель интерфейса ID3D11DeviceContext .

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

Тип: HRESULT

В случае успешного выполнения возвращает S_OK; в противном случае возвращает одно из следующих значений:

  • Возвращает DXGI_ERROR_DEVICE_REMOVED, если карта видео было физически удалено из системы или произошло обновление драйвера для карта видео. В случае возникновения этой ошибки необходимо уничтожить и повторно создать устройство.
  • Возвращает DXGI_ERROR_INVALID_CALL , если метод CreateDeferredContext не может быть вызван из текущего контекста. Например, если устройство было создано со значением D3D11_CREATE_DEVICE_SINGLETHREADED , CreateDeferredContext возвращает DXGI_ERROR_INVALID_CALL.
  • Возвращает E_INVALIDARG , если параметр ContextFlags недопустим.
  • Возвращает E_OUTOFMEMORY , если приложение исчерпало доступную память.

Комментарии

Отложенный контекст — это потокобезопасный контекст, который можно использовать для записи графических команд в потоке, отличном от потока отрисовки main. С помощью отложенного контекста можно записывать графические команды в список команд, инкапсулированный интерфейсом ID3D11CommandList . После записи всех элементов сцены их можно отправить в поток main отрисовки для окончательной отрисовки. Таким образом можно выполнять задачи отрисовки одновременно в нескольких потоках и потенциально повысить производительность в сценариях использования многоядерных ЦП.

Можно создать несколько отложенных контекстов.

Примечание Если вы используете значение D3D11_CREATE_DEVICE_SINGLETHREADED для создания устройства, представленного ID3D11Device, метод CreateDeferredContext завершится ошибкой, и вы не сможете создать отложенный контекст.
 
Дополнительные сведения об отложенных контекстах см. в разделе Интерпретация и Отложенная отрисовка.

Windows Phone 8. Этот API поддерживается.

Требования

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

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

ID3D11Device

ID3D11Device1::CreateDeferredContext1

ID3D11Device2::CreateDeferredContext2

ID3D11Device3::CreateDeferredContext3