Bagikan melalui


Metode IDirect3D9::CheckDepthStencilMatch (d3d9helper.h)

Menentukan apakah format stensil kedalaman kompatibel dengan format target render dalam mode tampilan tertentu.

Sintaks

HRESULT CheckDepthStencilMatch(
  [in] UINT       Adapter,
  [in] D3DDEVTYPE DeviceType,
  [in] D3DFORMAT  AdapterFormat,
  [in] D3DFORMAT  RenderTargetFormat,
  [in] D3DFORMAT  DepthStencilFormat
);

Parameter

[in] Adapter

Jenis: UINT

Nomor ordinal yang menunjukkan adaptor tampilan untuk kueri. D3DADAPTER_DEFAULT selalu merupakan adaptor tampilan utama.

[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] RenderTargetFormat

Jenis: D3DFORMAT

Anggota jenis enumerasi D3DFORMAT , mengidentifikasi format permukaan target render yang akan diuji.

[in] DepthStencilFormat

Jenis: D3DFORMAT

Anggota D3DFORMAT jenis enumerasi, mengidentifikasi format permukaan stensil kedalaman yang akan diuji.

Nilai kembali

Jenis: HRESULT

Jika format stensil kedalaman kompatibel dengan format target render dalam mode tampilan, metode ini mengembalikan D3D_OK. D3DERR_INVALIDCALL dapat dikembalikan jika satu atau beberapa parameter tidak valid. Jika format stensil kedalaman tidak kompatibel dengan target render dalam mode tampilan, maka metode ini mengembalikan D3DERR_NOTAVAILABLE.

Keterangan

Metode ini disediakan untuk memungkinkan aplikasi bekerja dengan perangkat keras yang mengharuskan format kedalaman tertentu hanya dapat berfungsi dengan format target render tertentu.

Perilaku metode ini telah diubah untuk DirectX 8.1. Metode ini sekarang memperhatikan format stensil kedalaman D24x8 dan D32. Versi sebelumnya mengasumsikan bahwa format ini akan selalu dapat digunakan dengan target render 32 atau 16-bit. Metode ini sekarang akan mengembalikan D3D_OK untuk format ini hanya jika perangkat mampu melakukan operasi kedalaman campuran.

Fragmen kode berikut menunjukkan bagaimana Anda dapat menggunakan CheckDeviceFormat untuk memvalidasi format stensil kedalaman.


BOOL IsDepthFormatOk(D3DFORMAT DepthFormat, 
                          D3DFORMAT AdapterFormat, 
                          D3DFORMAT BackBufferFormat)
{
    
    // Verify that the depth format exists
    HRESULT hr = pD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,
                                         D3DDEVTYPE_HAL,
                                         AdapterFormat,
                                         D3DUSAGE_DEPTHSTENCIL,
                                         D3DRTYPE_SURFACE,
                                         DepthFormat);
    
    if(FAILED(hr)) return FALSE;
    
    // Verify that the depth format is compatible
    hr = pD3D->CheckDepthStencilMatch(D3DADAPTER_DEFAULT,
                                      D3DDEVTYPE_HAL,
                                      AdapterFormat,
                                      BackBufferFormat,
                                      DepthFormat);
    
    return SUCCEEDED(hr);
    
}

Panggilan sebelumnya akan mengembalikan FALSE jika DepthFormat tidak dapat digunakan bersama dengan AdapterFormat dan BackBufferFormat.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header d3d9helper.h (termasuk D3D9.h)
Pustaka D3D9.lib

Lihat juga

IDirect3D9