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


Метод ID3D11Device1::CreateDeferredContext1 (d3d11_1.h)

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

Синтаксис

HRESULT CreateDeferredContext1(
                  UINT                 ContextFlags,
  [out, optional] ID3D11DeviceContext1 **ppDeferredContext
);

Параметры

ContextFlags

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

[out, optional] ppDeferredContext

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

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

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

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

Комментарии

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

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

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

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

Требования

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

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

ID3D11Device1

ID3D11Device2::CreateDeferredContext2

ID3D11Device3::CreateDeferredContext3

ID3D11Device::CreateDeferredContext