如何:创建引用设备
本主题演示如何创建实现运行时高度准确的软件实现的参考设备。 若要创建引用设备,只需指定要创建的设备将使用引用驱动程序。 此示例同时创建设备和交换链。
创建引用设备
定义交换链的初始参数。
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
相关主题