Функция D3D11CreateDeviceAndSwapChain (d3d11.h)
Создает устройство, представляющее видеоадаптер и цепочку буферов, используемую для отрисовки.
Синтаксис
HRESULT D3D11CreateDeviceAndSwapChain(
[in, optional] IDXGIAdapter *pAdapter,
D3D_DRIVER_TYPE DriverType,
HMODULE Software,
UINT Flags,
[in, optional] const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
UINT SDKVersion,
[in, optional] const DXGI_SWAP_CHAIN_DESC *pSwapChainDesc,
[out, optional] IDXGISwapChain **ppSwapChain,
[out, optional] ID3D11Device **ppDevice,
[out, optional] D3D_FEATURE_LEVEL *pFeatureLevel,
[out, optional] ID3D11DeviceContext **ppImmediateContext
);
Параметры
[in, optional] pAdapter
Тип: IDXGIAdapter*
Указатель на видеоадаптер, используемый при создании устройства. Передайте значение NULL , чтобы использовать адаптер по умолчанию, который является первым адаптером, перечисляемым IDXGIFactory1::EnumAdapters.
DriverType
Тип: D3D_DRIVER_TYPE
D3D_DRIVER_TYPE, представляющий тип создаваемого драйвера.
Software
Тип: HMODULE
Дескриптор библиотеки DLL, реализующий программный растеризатор. Если driverType имеет значение D3D_DRIVER_TYPE_SOFTWARE, software не должно иметь значение NULL. Получите дескриптор, вызвав LoadLibrary, LoadLibraryEx или GetModuleHandle. Значение должно быть не равно NULL , если D3D_DRIVER_TYPED3D_DRIVER_TYPE_SOFTWARE и NULL в противном случае.
Flags
Тип: UINT
Уровни среды выполнения для включения (см. D3D11_CREATE_DEVICE_FLAG); Значения могут быть побитовой ИЛИ.
[in, optional] pFeatureLevels
Тип: const D3D_FEATURE_LEVEL*
Указатель на массив D3D_FEATURE_LEVEL, определяющий порядок уровней компонентов, которые необходимо создать. Если для pFeatureLevels задано значение NULL, эта функция использует следующий массив уровней признаков:
{
D3D_FEATURE_LEVEL_11_0,
D3D_FEATURE_LEVEL_10_1,
D3D_FEATURE_LEVEL_10_0,
D3D_FEATURE_LEVEL_9_3,
D3D_FEATURE_LEVEL_9_2,
D3D_FEATURE_LEVEL_9_1,
};
FeatureLevels
Тип: UINT
Количество элементов в pFeatureLevels.
SDKVersion
Тип: UINT
Версия пакета SDK; использовать D3D11_SDK_VERSION.
[in, optional] pSwapChainDesc
Тип: const DXGI_SWAP_CHAIN_DESC*
Указатель на описание цепочки буферов (см . DXGI_SWAP_CHAIN_DESC), содержащий параметры инициализации для цепочки буферов.
[out, optional] ppSwapChain
Тип: IDXGISwapChain**
Возвращает адрес указателя на объект IDXGISwapChain , представляющий цепочку буферов, используемую для отрисовки.
[out, optional] ppDevice
Тип: ID3D11Device**
Возвращает адрес указателя на объект ID3D11Device , представляющий созданное устройство. Если этот параметр имеет значение NULL, id3D11Device не возвращается.
[out, optional] pFeatureLevel
Тип: D3D_FEATURE_LEVEL*
Возвращает указатель на D3D_FEATURE_LEVEL, представляющий первый элемент в массиве уровней функций, поддерживаемых устройством. Укажите значение NULL в качестве входных данных, если вам не нужно определять, какой уровень компонентов поддерживается.
[out, optional] ppImmediateContext
Тип: ID3D11DeviceContext**
Возвращает адрес указателя на объект ID3D11DeviceContext , представляющий контекст устройства. Если этот параметр имеет значение NULL, id3D11DeviceContext не возвращается.
Возвращаемое значение
Тип: HRESULT
Этот метод может возвращать один из кодов возврата Direct3D 11.
Этот метод возвращает DXGI_ERROR_NOT_CURRENTLY_AVAILABLE , если вызвать его в процессе сеанса 0.
Этот метод возвращает E_INVALIDARG, если для параметра pAdapter задано значение, отличное от NULL , а для параметра DriverType — значение D3D_DRIVER_TYPE_HARDWARE.
Этот метод возвращает DXGI_ERROR_SDK_COMPONENT_MISSING , если вы указали D3D11_CREATE_DEVICE_DEBUG в разделе Флаги и на компьютере установлена неправильная версия слоя отладки . Установите последнюю версию windows SDK, чтобы получить правильную версию.
Комментарии
Чтобы создать устройство Direct3D 11.1 (ID3D11Device1), доступное в Windows 8, Windows Server 2012, а также Windows 7 и Windows Server 2008 R2 с установленным обновлением платформы для Windows 7 . Сначала создайте ID3D11Device с этой функцией, а затем вызовите метод QueryInterface в объекте ID3D11Device , чтобы получить интерфейс ID3D11Device1 .
Чтобы создать устройство Direct3D 11.2 (ID3D11Device2), доступное в Windows 8.1 и Windows Server 2012 R2, сначала создайте ID3D11Device с этой функцией, а затем вызовите метод QueryInterface в объекте ID3D11Device, чтобы получить интерфейс ID3D11Device2.
Дополнительные сведения о зависимостях входных параметров см. в разделе примечаний в D3D11CreateDevice . Чтобы создать устройство без создания цепочки буферов, используйте функцию D3D11CreateDevice .
Если для параметра pAdapter задано значение, отличное от NULL , необходимо также задать для параметра DriverType значение D3D_DRIVER_TYPE_UNKNOWN. Если для параметра pAdapter задано значение, отличное от NULL , а для параметра DriverType — значение D3D_DRIVER_TYPE_HARDWARE, D3D11CreateDeviceAndSwapChain возвращает HRESULT E_INVALIDARG.
Сигнатура функции PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN предоставляется в виде определения типа, поэтому вместо статического связывания можно использовать методы динамического связывания (GetProcAddress).
Примечания об использовании
Требования
Целевая платформа | Windows |
Header | d3d11.h |
Библиотека | D3D11.lib |
DLL | D3D11.dll |