다음을 통해 공유


방법: 참조 디바이스 만들기

이 항목에서는 런타임의 매우 정확한 소프트웨어 구현을 구현하는 참조 디바이스를 만드는 방법을 보여 줍니다. 참조 디바이스를 만들려면 만드는 디바이스에서 참조 드라이버를 사용하도록 지정하기만 하면 됩니다. 이 예제에서는 디바이스와 스왑 체인을 동시에 만듭니다.

참조 디바이스를 만들려면

  1. 스왑 체인에 대한 초기 매개 변수를 정의합니다.

        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;
    
  2. 애플리케이션에 필요한 기능을 구현하는 기능 수준을 요청합니다. Direct3D 11 런타임에 대한 참조 디바이스를 성공적으로 만들 수 있습니다.

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_11_0;
    

    D3D_FEATURE_LEVEL 열거형의 기능 수준에 대해 자세히 알아보세요.

  3. 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을 사용하는 방법

디바이스

Direct3D 11을 사용하는 방법