Metode IDirect3D9::CheckDeviceType (d3d9.h)

Memverifikasi apakah tipe perangkat keras yang dipercepat dapat digunakan pada adapter ini.

Sintaks

HRESULT CheckDeviceType(
  [in] UINT       Adapter,
  [in] D3DDEVTYPE DevType,
  [in] D3DFORMAT  AdapterFormat,
  [in] D3DFORMAT  BackBufferFormat,
  [in] BOOL       bWindowed
);

Parameter

[in] Adapter

Jenis: UINT

Nomor ordinal yang menunjukkan adaptor tampilan untuk dijumlahkan. D3DADAPTER_DEFAULT selalu merupakan adaptor tampilan utama. Metode ini mengembalikan D3DERR_INVALIDCALL ketika nilai ini sama atau melebihi jumlah adaptor tampilan dalam sistem.

[in] DevType

Jenis: D3DDEVTYPE

Anggota jenis enumerasi D3DDEVTYPE , menunjukkan jenis perangkat untuk diperiksa.

[in] AdapterFormat

Jenis: D3DFORMAT

Anggota jenis enumerasi D3DFORMAT , menunjukkan format mode tampilan adaptor yang jenis perangkatnya akan diperiksa. Misalnya, beberapa perangkat hanya akan beroperasi dalam mode 16-bits-per-piksel.

[in] BackBufferFormat

Jenis: D3DFORMAT

Format buffer belakang. Untuk informasi selengkapnya tentang format, lihat D3DFORMAT. Nilai ini harus salah satu format target render. Anda dapat menggunakan GetAdapterDisplayMode untuk mendapatkan format saat ini.

Untuk aplikasi berjendela, format buffer belakang tidak perlu cocok dengan format mode tampilan jika perangkat keras mendukung konversi warna. Kumpulan kemungkinan format buffer kembali dibatasi, tetapi runtime akan memungkinkan format buffer kembali yang valid disajikan ke format desktop apa pun. Ada persyaratan tambahan bahwa perangkat dapat dioperasikan di desktop karena perangkat biasanya tidak beroperasi dalam mode 8 bit per piksel.

Aplikasi layar penuh tidak dapat melakukan konversi warna.

D3DFMT_UNKNOWN diperbolehkan untuk mode berjendela.

[in] bWindowed

Jenis: BOOL

Nilai yang menunjukkan apakah jenis perangkat akan digunakan dalam mode layar penuh atau berjendela. Jika diatur ke TRUE, kueri dilakukan untuk aplikasi berjendela; jika tidak, nilai ini harus diatur FALSE.

Menampilkan nilai

Jenis: HRESULT

Jika perangkat dapat digunakan pada adaptor ini, D3D_OK dikembalikan.

D3DERR_INVALIDCALL dikembalikan jika Adapter sama atau melebihi jumlah adaptor tampilan dalam sistem. D3DERR_INVALIDCALL juga dikembalikan jika CheckDeviceType menentukan perangkat yang tidak ada.

D3DERR_NOTAVAILABLE dikembalikan jika format buffer kembali yang diminta tidak didukung, atau jika akselerasi perangkat keras tidak tersedia untuk format yang ditentukan.

Keterangan

Jenis perangkat hal memerlukan akselerasi perangkat keras. Aplikasi dapat menggunakan CheckDeviceType untuk menentukan apakah perangkat keras dan driver yang diperlukan ada untuk mendukung perangkat hal.

Aplikasi layar penuh tidak boleh menentukan DisplayFormat yang berisi saluran alfa. Ini akan mengakibatkan panggilan gagal. Perhatikan bahwa saluran alfa dapat ada di buffer belakang tetapi dua format tampilan harus identik dalam semua hal lainnya. Misalnya, jika DisplayFormat = D3DFMT_X1R5G5B5, nilai yang valid untuk BackBufferFormat menyertakan D3DFMT_X1R5G5B5 dan D3DFMT_A1R5G5B5 tetapi mengecualikan D3DFMT_R5G6B5.

Fragmen kode berikut menunjukkan bagaimana Anda dapat menggunakan CheckDeviceType untuk menguji apakah jenis perangkat tertentu dapat digunakan pada adaptor ini.


if(SUCCEEDED(pD3Device->CheckDeviceType(D3DADAPTER_DEFAULT, 
                                        D3DDEVTYPE_HAL, 
                                        DisplayFormat, 
                                        BackBufferFormat, 
                                        bIsWindowed)))
    
     return S_OK;
// There is no HAL on this adapter using this render-target format. 
// Try again, using another format.

Kode ini mengembalikan S_OK jika perangkat dapat digunakan pada adaptor default dengan format permukaan yang ditentukan.

Menggunakan CheckDeviceType untuk menguji kompatibilitas antara buffer belakang yang berbeda dari format tampilan akan mengembalikan nilai yang sesuai. Ini berarti bahwa panggilan akan mencerminkan kemampuan perangkat. Jika perangkat tidak dapat merender ke format back-buffer yang diminta, panggilan akan tetap mengembalikan D3DERR_NOTAVAILABLE. Jika perangkat dapat merender ke format, tetapi tidak dapat melakukan presentasi konversi warna, nilai yang dikembalikan juga akan D3DERR_NOTAVAILABLE. Aplikasi dapat menemukan dukungan perangkat keras untuk presentasi itu sendiri dengan memanggil CheckDeviceFormatConversion. Tidak ada emulasi perangkat lunak untuk presentasi konversi warna itu sendiri yang akan ditawarkan.

Persyaratan

   
Target Platform Windows
Header d3d9.h (termasuk D3D9.h)
Pustaka D3D9.lib

Lihat juga

IDirect3D9