Metode IDirect3D9::CheckDeviceFormat (d3d9.h)
Menentukan apakah format permukaan tersedia sebagai jenis sumber daya tertentu dan dapat digunakan sebagai tekstur, buffer stensil kedalaman, atau target render, atau kombinasi apa pun dari ketiganya, pada perangkat yang mewakili adaptor ini.
Sintaks
HRESULT CheckDeviceFormat(
[in] UINT Adapter,
[in] D3DDEVTYPE DeviceType,
[in] D3DFORMAT AdapterFormat,
[in] DWORD Usage,
[in] D3DRESOURCETYPE RType,
[in] D3DFORMAT CheckFormat
);
Parameter
[in] Adapter
Jenis: UINT
Nomor ordinal yang menunjukkan adaptor tampilan untuk kueri. D3DADAPTER_DEFAULT selalu merupakan adaptor tampilan utama. Metode ini mengembalikan D3DERR_INVALIDCALL ketika nilai ini sama atau melebihi jumlah adaptor tampilan dalam sistem.
[in] DeviceType
Jenis: D3DDEVTYPE
Anggota jenis enumerasi D3DDEVTYPE , mengidentifikasi jenis perangkat.
[in] AdapterFormat
Jenis: D3DFORMAT
Anggota jenis D3DFORMAT yang dijumlahkan, mengidentifikasi format mode tampilan tempat adaptor akan ditempatkan.
[in] Usage
Jenis: DWORD
Opsi penggunaan yang diminta untuk permukaan. Opsi penggunaan adalah kombinasi konstanta D3DUSAGE dan D3DUSAGE_QUERY (hanya subset konstanta D3DUSAGE yang valid untuk CheckDeviceFormat; lihat tabel di halaman D3DUSAGE).
[in] RType
Jenis: D3DRESOURCETYPE
Jenis sumber daya yang diminta untuk digunakan dengan format yang dikueri. Anggota D3DRESOURCETYPE.
[in] CheckFormat
Jenis: D3DFORMAT
Format permukaan yang dapat digunakan, seperti yang didefinisikan oleh Penggunaan. Anggota D3DFORMAT.
Mengembalikan nilai
Jenis: HRESULT
Jika format kompatibel dengan perangkat yang ditentukan untuk penggunaan yang diminta, metode ini mengembalikan D3D_OK.
D3DERR_INVALIDCALL dikembalikan jika Adapter sama atau melebihi jumlah adaptor tampilan dalam sistem, atau jika DeviceType tidak didukung.
D3DERR_NOTAVAILABLE dikembalikan jika format tidak dapat diterima oleh perangkat untuk penggunaan ini.
Keterangan
Berikut adalah beberapa contoh menggunakan CheckDeviceFormat untuk memeriksa dukungan perangkat keras:
- Format permukaan biasa di luar layar - Tentukan Penggunaan = 0 dan RType = D3DRTYPE_SURFACE.
- Format stensil kedalaman - Pengujian cuplikan berikut untuk format stensil kedalaman yang diteruskan:
BOOL IsDepthFormatExisting( D3DFORMAT DepthFormat, D3DFORMAT AdapterFormat ) { HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, DepthFormat); return SUCCEEDED( hr ); }
Lihat Memilih Perangkat (Direct3D 9) untuk detail selengkapnya tentang proses enumerasi.
- Dapatkah tekstur ini dirender dalam format tertentu - Mengingat mode tampilan saat ini, contoh ini menunjukkan cara memverifikasi bahwa format tekstur kompatibel dengan format back-buffer tertentu:
BOOL IsTextureFormatOk( D3DFORMAT TextureFormat, D3DFORMAT AdapterFormat ) { HRESULT hr = pD3D->CheckDeviceFormat( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, 0, D3DRTYPE_TEXTURE, TextureFormat); return SUCCEEDED( hr ); }
- Penpaduan alfa dalam shader piksel - Atur Penggunaan ke D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING. Harapkan ini gagal untuk semua target render floating-point.
- Pembuatan otomatis mipmaps - Atur Penggunaan ke D3DUSAGE_AUTOGENMIPMAP. Jika pembuatan otomatis mipmap gagal, aplikasi akan mendapatkan tekstur non-mipmapped. Memanggil metode ini dianggap sebagai petunjuk, sehingga metode ini dapat mengembalikan D3DOK_NOAUTOGEN (kode keberhasilan yang valid) jika satu-satunya hal yang gagal adalah pembuatan mipmap. Untuk informasi selengkapnya tentang pembuatan mipmap, lihat Pembuatan Otomatis Mipmaps (Direct3D 9).
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | d3d9.h (termasuk D3D9.h) |
Pustaka | D3D9.lib |