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


Метод ID3D11Device2::CreateDeferredContext2 (d3d11_2.h)

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

Синтаксис

HRESULT CreateDeferredContext2(
                  UINT                 ContextFlags,
  [out, optional] ID3D11DeviceContext2 **ppDeferredContext
);

Параметры

ContextFlags

Тип: UINT

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

[out, optional] ppDeferredContext

Тип: ID3D11DeviceContext2**

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

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

Тип: HRESULT

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

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

Комментарии

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

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

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

Требования

   
Минимальная версия клиента Windows 8.1 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header d3d11_2.h
Библиотека D3D11.lib

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

ID3D11Device1::CreateDeferredContext1

ID3D11Device2

ID3D11Device3::CreateDeferredContext3

ID3D11Device::CreateDeferredContext