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*
디바이스를 만들 때 사용할 비디오 어댑터에 대한 포인터입니다. IDXGIFactory1::EnumAdapters로 열거된 첫 번째 어댑터인 기본 어댑터를 사용하도록 NULL을 전달합니다.
DriverType
형식: D3D_DRIVER_TYPE
만들 드라이버 유형을 나타내는 D3D_DRIVER_TYPE.
Software
형식: HMODULE
소프트웨어 래스터라이저를 구현하는 DLL에 대한 핸들입니다. DriverType이 D3D_DRIVER_TYPE_SOFTWARE경우 Software는 NULL이 아니어야 합니다. LoadLibrary, LoadLibraryEx 또는 GetModuleHandle을 호출하여 핸들을 가져옵니다. D3D_DRIVER_TYPE D3D_DRIVER_TYPE_SOFTWARENULL이면 값이 NULL이 아니어야 합니다.
Flags
형식: UINT
사용하도록 설정할 런타임 계층 ( D3D11_CREATE_DEVICE_FLAG 참조) 값은 함께 비트 OR일 수 있습니다.
[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 반환 코드 중 하나를 반환할 수 있습니다.
이 메서드는 세션 0 프로세스에서 호출하는 경우 DXGI_ERROR_NOT_CURRENTLY_AVAILABLE 반환합니다.
이 메서드는 pAdapter 매개 변수를 NULL 이 아닌 값으로 설정하고 DriverType 매개 변수를 D3D_DRIVER_TYPE_HARDWARE 값으로 설정하면 E_INVALIDARG 반환합니다.
이 메서드는 Flags에서 D3D11_CREATE_DEVICE_DEBUG 지정하고 잘못된 버전의 디버그 계층이 컴퓨터에 설치된 경우 DXGI_ERROR_SDK_COMPONENT_MISSING 반환합니다. 최신 Windows SDK를 설치하여 올바른 버전을 가져옵니다.
설명
Windows 8에서 사용할 수 있는 Direct3D 11.1 디바이스(ID3D11Device1)를 만들려면 Windows 7용 플랫폼 업데이트가 설치된 Windows Server 2012 및 Windows 7 및 Windows Server 2008 R2에서는 먼저 이 함수를 사용하여 ID3D11Device를 만든 다음 ID3D11Device 개체에서 QueryInterface 메서드를 호출하여 ID3D11Device1 인터페이스를 가져옵니다.
Windows 8.1 및 Windows Server 2012 R2에서 사용할 수 있는 Direct3D 11.2 디바이스(ID3D11Device2)를 만들려면 먼저 이 함수를 사용하여 ID3D11Device를 만든 다음 ID3D11Device2 개체에서 QueryInterface 메서드를 호출하여 ID3D11Device2 인터페이스를 가져옵니다.
또한 입력 매개 변수 종속성에 대한 자세한 내용은 D3D11CreateDevice 의 설명 섹션을 참조하세요. 스왑 체인을 만들지 않고 디바이스를 만들려면 D3D11CreateDevice 함수를 사용합니다.
pAdapter 매개 변수를 NULL이 아닌 값으로 설정하는 경우 DriverType 매개 변수도 D3D_DRIVER_TYPE_UNKNOWN 값으로 설정해야 합니다. pAdapter 매개 변수를 NULL이 아닌 값으로 설정하고 DriverType 매개 변수를 D3D_DRIVER_TYPE_HARDWARE 값으로 설정하면 D3D11CreateDeviceAndSwapChain은 E_INVALIDARG HRESULT를 반환합니다.
함수 서명 PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN typedef로 제공되므로 정적으로 연결하는 대신 동적 연결 기술(GetProcAddress)을 사용할 수 있습니다.
사용 현황 정보
요구 사항
대상 플랫폼 | Windows |
헤더 | d3d11.h |
라이브러리 | D3D11.lib |
DLL | D3D11.dll |