如何:建立 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成功為功能層級建立WARP 裝置D3D_FEATURE_LEVEL_9_1,並從所有功能層級的Windows 8開始。
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 呼叫。 方法成功之後,它會傳回交換鏈結介面、裝置介面、驅動程式授與的功能層級指標,以及立即的內容介面。
For information about limitations creating a WARP device on certain feature levels, see Limitations Creating WARP and Reference Devices.
Windows 8的新功能
當電腦的主要顯示配接器是 「Microsoft Basic Display Adapter」 (WARP 配接器) 時,該電腦也有第二張介面卡。 第二張介面卡是沒有顯示輸出的僅限轉譯裝置。 如需僅限轉譯裝置的詳細資訊,請參閱列舉配接器Windows 8中的新資訊。
相關主題