Fungsi D3D11CreateDeviceAndSwapChain (d3d11.h)

Membuat perangkat yang mewakili adaptor tampilan dan rantai pertukaran yang digunakan untuk penyajian.

Sintaks

HRESULT D3D11CreateDeviceAndSwapChain(
  [in, optional]  IDXGIAdapter               *pAdapter,
                  D3D_DRIVER_TYPE            DriverType,
                  HMODULE                    Software,
                  UINT                       Flags,
  [in, optional]  const D3D_FEATURE_LEVEL    *pFeatureLevels,
                  UINT                       FeatureLevels,
                  UINT                       SDKVersion,
  [in, optional]  const DXGI_SWAP_CHAIN_DESC *pSwapChainDesc,
  [out, optional] IDXGISwapChain             **ppSwapChain,
  [out, optional] ID3D11Device               **ppDevice,
  [out, optional] D3D_FEATURE_LEVEL          *pFeatureLevel,
  [out, optional] ID3D11DeviceContext        **ppImmediateContext
);

Parameter

[in, optional] pAdapter

Jenis: IDXGIAdapter*

Penunjuk ke adaptor video untuk digunakan saat membuat perangkat. Teruskan NULL untuk menggunakan adaptor default, yang merupakan adaptor pertama yang dijumlahkan oleh IDXGIFactory1::EnumAdapters.

Catatan Jangan mencampur penggunaan DXGI 1.0 (IDXGIFactory) dan DXGI 1.1 (IDXGIFactory1) dalam aplikasi. Gunakan IDXGIFactory atau IDXGIFactory1, tetapi tidak keduanya dalam aplikasi.
 

DriverType

Jenis: D3D_DRIVER_TYPE

D3D_DRIVER_TYPE, yang mewakili jenis driver yang akan dibuat.

Software

Jenis: HMODULE

Handel ke DLL yang mengimplementasikan rasterizer perangkat lunak. Jika DriverTypeD3D_DRIVER_TYPE_SOFTWARE, Perangkat Lunak tidak boleh NULL. Dapatkan handel dengan memanggil LoadLibrary, LoadLibraryEx , atau GetModuleHandle. Nilainya harus non-NULL ketika D3D_DRIVER_TYPED3D_DRIVER_TYPE_SOFTWARE dan NULL sebaliknya.

Flags

Jenis: UINT

Lapisan runtime untuk mengaktifkan (lihat D3D11_CREATE_DEVICE_FLAG); nilai dapat menjadi bitwise OR bersama-sama.

[in, optional] pFeatureLevels

Jenis: const D3D_FEATURE_LEVEL*

Penunjuk ke array D3D_FEATURE_LEVELs, yang menentukan urutan tingkat fitur yang akan dibuat. Jika pFeatureLevels diatur ke NULL, fungsi ini menggunakan array tingkat fitur berikut:


{
    D3D_FEATURE_LEVEL_11_0,
    D3D_FEATURE_LEVEL_10_1,
    D3D_FEATURE_LEVEL_10_0,
    D3D_FEATURE_LEVEL_9_3,
    D3D_FEATURE_LEVEL_9_2,
    D3D_FEATURE_LEVEL_9_1,
};
          
Catatan Jika runtime Direct3D 11.1 ada di komputer dan pFeatureLevels diatur ke NULL, fungsi ini tidak akan membuat perangkat D3D_FEATURE_LEVEL_11_1 . Untuk membuat perangkat D3D_FEATURE_LEVEL_11_1 , Anda harus secara eksplisit menyediakan array D3D_FEATURE_LEVEL yang menyertakan D3D_FEATURE_LEVEL_11_1. Jika Anda menyediakan array D3D_FEATURE_LEVEL yang berisi D3D_FEATURE_LEVEL_11_1 di komputer yang tidak menginstal runtime Direct3D 11.1, fungsi ini segera gagal dengan E_INVALIDARG.
 

FeatureLevels

Jenis: UINT

Jumlah elemen dalam pFeatureLevels.

SDKVersion

Jenis: UINT

Versi SDK; gunakan D3D11_SDK_VERSION.

[in, optional] pSwapChainDesc

Jenis: const DXGI_SWAP_CHAIN_DESC*

Penunjuk ke deskripsi rantai pertukaran (lihat DXGI_SWAP_CHAIN_DESC) yang berisi parameter inisialisasi untuk rantai pertukaran.

[out, optional] ppSwapChain

Jenis: IDXGISwapChain**

Mengembalikan alamat penunjuk ke objek IDXGISwapChain yang mewakili rantai pertukaran yang digunakan untuk penyajian.

[out, optional] ppDevice

Jenis: ID3D11Device**

Mengembalikan alamat penunjuk ke objek ID3D11Device yang mewakili perangkat yang dibuat. Jika parameter ini NULL, tidak ada ID3D11Device yang akan dikembalikan'.

[out, optional] pFeatureLevel

Jenis: D3D_FEATURE_LEVEL*

Mengembalikan penunjuk ke D3D_FEATURE_LEVEL, yang mewakili elemen pertama dalam array tingkat fitur yang didukung oleh perangkat. Berikan NULL sebagai input jika Anda tidak perlu menentukan tingkat fitur mana yang didukung.

[out, optional] ppImmediateContext

Jenis: ID3D11DeviceContext**

Mengembalikan alamat penunjuk ke objek ID3D11DeviceContext yang mewakili konteks perangkat. Jika parameter ini NULL, tidak ada ID3D11DeviceContext yang akan dikembalikan.

Menampilkan nilai

Jenis: HRESULT

Metode ini dapat mengembalikan salah satu Kode Pengembalian Direct3D 11.

Metode ini mengembalikan DXGI_ERROR_NOT_CURRENTLY_AVAILABLE jika Anda memanggilnya dalam proses Sesi 0.

Metode ini mengembalikan E_INVALIDARG jika Anda mengatur parameter pAdapter ke nilai non-NULL dan parameter DriverType ke nilai D3D_DRIVER_TYPE_HARDWARE.

Metode ini mengembalikan DXGI_ERROR_SDK_COMPONENT_MISSING jika Anda menentukan D3D11_CREATE_DEVICE_DEBUG di Bendera dan versi lapisan debug yang salah diinstal pada komputer Anda. Instal Windows SDK terbaru untuk mendapatkan versi yang benar.

Keterangan

Catatan Jika Anda memanggil metode ini dalam proses Sesi 0, metode tersebut akan mengembalikan DXGI_ERROR_NOT_CURRENTLY_AVAILABLE.
 
Titik masuk ini didukung oleh runtime Direct3D 11, yang tersedia di Windows 7, Windows Server 2008 R2, dan sebagai pembaruan untuk Windows Vista (KB971644).

Untuk membuat perangkat Direct3D 11.1 (ID3D11Device1), yang tersedia di Windows 8, Windows Server 2012, dan Windows 7 dan Windows Server 2008 R2 dengan Pembaruan Platform untuk Windows 7 diinstal, Anda terlebih dahulu membuat ID3D11Device dengan fungsi ini, lalu memanggil metode QueryInterface pada objek ID3D11Device untuk mendapatkan antarmuka ID3D11Device1 .

Untuk membuat perangkat Direct3D 11.2 (ID3D11Device2), yang tersedia di Windows 8.1 dan Windows Server 2012 R2, Anda terlebih dahulu membuat ID3D11Device dengan fungsi ini, lalu memanggil metode QueryInterface pada objek ID3D11Device untuk mendapatkan antarmuka ID3D11Device2 .

Lihat juga bagian keterangan di D3D11CreateDevice untuk detail tentang dependensi parameter input. Untuk membuat perangkat tanpa membuat rantai pertukaran, gunakan fungsi D3D11CreateDevice .

Jika Anda mengatur parameter pAdapter ke nilai non-NULL , Anda juga harus mengatur parameter DriverType ke nilai D3D_DRIVER_TYPE_UNKNOWN. Jika Anda mengatur parameter pAdapter ke nilai non-NULL dan parameter DriverType ke nilai D3D_DRIVER_TYPE_HARDWARE, D3D11CreateDeviceAndSwapChain mengembalikan HRESULT E_INVALIDARG.

Tanda tangan fungsi PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN disediakan sebagai typedef, sehingga Anda dapat menggunakan teknik penautan dinamis (GetProcAddress) alih-alih menautkan secara statis.

Catatan penggunaan

Catatan Fungsi D3D11CreateDeviceAndSwapChain tidak ada untuk aplikasi Windows Store. Sebagai gantinya, aplikasi Windows Store menggunakan fungsi D3D11CreateDevice lalu menggunakan metode IDXGIFactory2::CreateSwapChainForCoreWindow .
 
Catatan Fungsi ini belum diperbarui untuk mendukung fitur tambahan terbaru dari pembuatan rantai pertukaran. Untuk metode pembuatan rantai swap terbaru, lihat metode IDXGIFactory2 (termasuk CreateSwapChainForHwnd, CreateSwapChainForCoreWindow , dan CreateSwapChainForComposition).
 
Windows Phone 8: API ini didukung.

Persyaratan

   
Target Platform Windows
Header d3d11.h
Pustaka D3D11.lib
DLL D3D11.dll

Lihat juga

Fungsi Inti