방법: 참조 디바이스 만들기
이 항목에서는 런타임의 매우 정확한 소프트웨어 구현을 구현하는 참조 디바이스를 만드는 방법을 보여 줍니다. 참조 디바이스를 만들려면 만드는 디바이스에서 참조 드라이버를 사용하도록 지정하기만 하면 됩니다. 이 예제에서는 디바이스와 스왑 체인을 동시에 만듭니다.
참조 디바이스를 만들려면
스왑 체인에 대한 초기 매개 변수를 정의합니다.
DXGI_SWAP_CHAIN_DESC sd; ZeroMemory( &sd, sizeof( sd ) ); sd.BufferCount = 1; sd.BufferDesc.Width = 640; sd.BufferDesc.Height = 480; sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; sd.BufferDesc.RefreshRate.Numerator = 60; sd.BufferDesc.RefreshRate.Denominator = 1; sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; sd.OutputWindow = g_hWnd; sd.SampleDesc.Count = 1; sd.SampleDesc.Quality = 0; sd.Windowed = TRUE;
애플리케이션에 필요한 기능을 구현하는 기능 수준을 요청합니다. Direct3D 11 런타임에 대한 참조 디바이스를 성공적으로 만들 수 있습니다.
D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_11_0;
D3D_FEATURE_LEVEL 열거형의 기능 수준에 대해 자세히 알아보세요.
D3D11CreateDeviceAndSwapChain을 호출하여 디바이스를 만듭니다.
HRESULT hr = S_OK;
D3D_FEATURE_LEVEL FeatureLevel;
if( FAILED (hr = D3D11CreateDeviceAndSwapChain( NULL,
D3D_DRIVER_TYPE_REFERENCE,
NULL,
0,
&FeatureLevels,
1,
D3D11_SDK_VERSION,
&sd,
&g_pSwapChain,
&g_pd3dDevice,
&FeatureLevel,
&g_pImmediateContext )))
{
return hr;
}
API 호출에 D3D_DRIVER_TYPE 열거형의 참조 드라이버 형식을 제공해야 합니다. 메서드가 성공하면 스왑 체인 인터페이스, 디바이스 인터페이스, 드라이버에서 부여한 기능 수준에 대한 포인터 및 즉각적인 컨텍스트 인터페이스를 반환합니다.
특정 기능 수준에서 참조 디바이스를 만드는 제한 사항에 대한 자세한 내용은 WARP 및 참조 디바이스 만들기 제한 사항을 참조하세요. Direct3D 11을 사용하는 방법
관련 항목