D3D11CreateDevice 함수(d3d11.h)
디스플레이 어댑터를 나타내는 디바이스를 만듭니다.
구문
HRESULT D3D11CreateDevice(
[in, optional] IDXGIAdapter *pAdapter,
D3D_DRIVER_TYPE DriverType,
HMODULE Software,
UINT Flags,
[in, optional] const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
UINT SDKVersion,
[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을 호출하여 핸들을 가져옵니다.
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 사용합니다.
[out, optional] ppDevice
형식: ID3D11Device**
만든 디바이스를 나타내는 ID3D11Device 개체에 대한 포인터의 주소를 반환합니다. 이 매개 변수가 NULL이면 ID3D11Device가 반환되지 않습니다.
[out, optional] pFeatureLevel
형식: D3D_FEATURE_LEVEL*
성공하면 성공한 pFeatureLevels 배열에서 첫 번째 D3D_FEATURE_LEVEL 반환합니다. 지원되는 기능 수준을 결정할 필요가 없는 경우 NULL 을 입력으로 제공합니다.
[out, optional] ppImmediateContext
형식: ID3D11DeviceContext**
디바이스 컨텍스트를 나타내는 ID3D11DeviceContext 개체에 대한 포인터의 주소를 반환합니다. 이 매개 변수가 NULL이면 ID3D11DeviceContext가 반환되지 않습니다.
반환 값
형식: HRESULT
이 메서드는 Direct3D 11 반환 코드 중 하나를 반환할 수 있습니다.
이 메서드는 pAdapter 매개 변수를 NULL 이 아닌 값으로 설정하고 DriverType 매개 변수를 D3D_DRIVER_TYPE_HARDWARE 값으로 설정하면 E_INVALIDARG 반환합니다.
이 메서드는 Flags에서 D3D11_CREATE_DEVICE_DEBUG 지정하고 잘못된 버전의 디버그 계층이 컴퓨터에 설치된 경우 DXGI_ERROR_SDK_COMPONENT_MISSING 반환합니다. 최신 Windows SDK를 설치하여 올바른 버전을 가져옵니다.
설명
이 진입점은 Windows 7, Windows Server 2008 R2 및 Windows Vista(KB971644)에 대한 업데이트로 제공되는 Direct3D 11 런타임에서 지원됩니다.
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 인터페이스를 가져옵니다.
ppDevice 및 ppImmediateContext를 NULL로 설정하여 디바이스를 만들지 않고 pFeatureLevel을 확인하여 지원되는 기능 수준을 결정합니다.
예제는 방법: 디바이스 만들기 및 즉각적인 컨텍스트를 참조하세요. 디바이스와 스왑 체인을 동시에 만들려면 D3D11CreateDeviceAndSwapChain을 사용합니다.
pAdapter 매개 변수를 NULL이 아닌 값으로 설정하는 경우 DriverType 매개 변수도 D3D_DRIVER_TYPE_UNKNOWN 값으로 설정해야 합니다. pAdapter 매개 변수를 NULL이 아닌 값으로 설정하고 DriverType 매개 변수를 D3D_DRIVER_TYPE_HARDWARE 값으로 설정하면 D3D11CreateDevice는 E_INVALIDARG HRESULT를 반환합니다.
Direct3D 10과 Direct3D 11 간의 차이점: Direct3D 10에서 pAdapter 가 있으면 사용할 어댑터가 지정되고 DriverType 이 어댑터와 일치하지 않습니다. Direct3D 11에서 하드웨어 또는 소프트웨어 디바이스를 만들려는 경우 pAdapter != NULL 을 설정하여 다른 입력을 다음으로 제한합니다.
|
함수 서명 PFN_D3D11_CREATE_DEVICE typedef로 제공되므로 정적으로 연결하는 대신 동적 연결 기술(GetProcAddress)을 사용할 수 있습니다.
Windows Phone 8: 이 API가 지원됩니다.
Windows Phone 8.1: 이 API가 지원됩니다.
요구 사항
대상 플랫폼 | Windows |
헤더 | d3d11.h |
라이브러리 | D3D11.lib |
DLL | D3D11.dll |