Fungsi D3D11CreateDevice (d3d11.h)
Membuat perangkat yang mewakili adaptor tampilan.
Sintaks
HRESULT D3D11CreateDevice(
[in, optional] IDXGIAdapter *pAdapter,
D3D_DRIVER_TYPE DriverType,
HMODULE Software,
UINT Flags,
[in, optional] const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
UINT SDKVersion,
[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.
Flags
Jenis: UINT
Lapisan runtime untuk diaktifkan (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.
[out, optional] ppDevice
Jenis: ID3D11Device**
Mengembalikan alamat pointer 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*
Jika berhasil, mengembalikan D3D_FEATURE_LEVEL pertama dari array pFeatureLevels yang berhasil. Berikan NULL sebagai input jika Anda tidak perlu menentukan tingkat fitur mana yang didukung.
[out, optional] ppImmediateContext
Jenis: ID3D11DeviceContext**
Mengembalikan alamat pointer 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 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
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, Pertama-tama Anda 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 .
Atur ppDevice dan ppImmediateContext ke NULL untuk menentukan tingkat fitur mana yang didukung dengan melihat pFeatureLevel tanpa membuat perangkat.
Misalnya, lihat Cara: Membuat Perangkat dan Konteks Langsung; untuk membuat perangkat dan rantai pertukaran secara bersamaan, gunakan D3D11CreateDeviceAndSwapChain.
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, D3D11CreateDevice mengembalikan HRESULT E_INVALIDARG.
Perbedaan antara Direct3D 10 dan Direct3D 11: Dalam Direct3D 10, keberadaan pAdapter menentukan adaptor mana yang akan digunakan dan DriverType dapat tidak cocok dengan adaptor. Di Direct3D 11, jika Anda mencoba membuat perangkat keras atau perangkat lunak, atur pAdapter != NULL yang membatasi input lain menjadi:
|
Tanda tangan fungsi PFN_D3D11_CREATE_DEVICE disediakan sebagai typedef, sehingga Anda dapat menggunakan teknik penautan dinamis (GetProcAddress) alih-alih menautkan secara statis.
Windows Phone 8: API ini didukung.
Windows Phone 8.1: API ini didukung.
Persyaratan
Target Platform | Windows |
Header | d3d11.h |
Pustaka | D3D11.lib |
DLL | D3D11.dll |