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.
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,
};
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
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
Persyaratan
Target Platform | Windows |
Header | d3d11.h |
Pustaka | D3D11.lib |
DLL | D3D11.dll |