Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе показано, как создать эталонное устройство, реализующее высокоточную реализацию программного обеспечения среды выполнения. Чтобы создать эталонное устройство, просто укажите, что создаваемое устройство будет использовать эталонный драйвер. В этом примере создается устройство и своп-цепочка одновременно.
Создание эталонного устройства
Определите начальные параметры для swap chain.
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. После успешного выполнения метода он вернет интерфейс swap chain, интерфейс устройства, указатель на уровень функциональных возможностей, предоставленный драйвером, и непосредственный интерфейс контекста.
Информацию об ограничениях при создании эталонного устройства на определенных уровнях функций см. в разделе Ограничения создания WARP и эталонных устройств.Использование Direct3D 11
Связанные разделы