방법: WARP 디바이스 만들기
이 항목에서는 고속 소프트웨어 래스터라이저를 구현하는 WARP 디바이스를 만드는 방법을 보여 줍니다. WARP 디바이스를 만들려면 만드는 디바이스에서 WARP 드라이버를 사용하도록 지정하기만 하면 됩니다. 이 예제에서는 디바이스와 스왑 체인을 동시에 만듭니다.
WARP 디바이스를 만들려면
스왑 체인에 대한 초기 매개 변수를 정의합니다.
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;
애플리케이션에 필요한 기능을 구현하는 기능 수준을 요청합니다. D3D_FEATURE_LEVEL_10_1 통해 모든 기능 수준에 대한 Windows 8 시작하여 D3D_FEATURE_LEVEL_9_1 기능 수준에 대한 WARP 디바이스를 성공적으로 만들 수 있습니다.
D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_10_1;
D3D_FEATURE_LEVEL 열거형의 기능 수준에 대해 자세히 알아보세요.
D3D11CreateDeviceAndSwapChain을 호출하여 디바이스를 만듭니다.
HRESULT hr = S_OK;
if( FAILED (hr = D3D11CreateDeviceAndSwapChain( NULL,
D3D_DRIVER_TYPE_WARP,
NULL,
0,
&FeatureLevels,
1,
D3D11_SDK_VERSION,
&sd,
&g_pSwapChain,
&g_pd3dDevice,
&FeatureLevel,
&g_pImmediateContext )))
{
return hr;
}
D3D_DRIVER_TYPE 열거형에서 WARP 드라이버 형식으로 API 호출을 제공해야 합니다. 메서드가 성공하면 스왑 체인 인터페이스, 디바이스 인터페이스, 드라이버에서 부여한 기능 수준에 대한 포인터 및 즉각적인 컨텍스트 인터페이스를 반환합니다.
특정 기능 수준에서 WARP 디바이스를 만드는 제한 사항에 대한 자세한 내용은 WARP 및 참조 디바이스 만들기 제한 사항을 참조하세요.
Windows 8 대한 새로운 기능
컴퓨터의 기본 디스플레이 어댑터가 "Microsoft 기본 디스플레이 어댑터"(WARP 어댑터)인 경우 해당 컴퓨터에는 두 번째 어댑터도 있습니다. 이 두 번째 어댑터는 디스플레이 출력이 없는 렌더링 전용 디바이스입니다. 렌더링 전용 디바이스에 대한 자세한 내용은 어댑터 열거에 대한 Windows 8 새 정보를 참조하세요.
관련 항목