METODE IDXGIOutput5::D uplicateOutput1 (dxgi1_5.h)

Memungkinkan menentukan daftar format yang didukung untuk permukaan layar penuh yang dapat dikembalikan oleh objek IDXGIOutputDuplication .

Sintaks

HRESULT DuplicateOutput1(
  [in]  IUnknown               *pDevice,
        UINT                   Flags,
  [in]  UINT                   SupportedFormatsCount,
  [in]  const DXGI_FORMAT      *pSupportedFormats,
  [out] IDXGIOutputDuplication **ppOutputDuplication
);

Parameter

[in] pDevice

Jenis: IUnknown*

Penunjuk ke antarmuka perangkat Direct3D yang dapat Anda gunakan untuk memproses gambar desktop. Perangkat ini harus dibuat dari adaptor tempat output tersambung.

Flags

Jenis: UINT

Dicadangkan untuk digunakan di masa mendatang; harus nol.

[in] SupportedFormatsCount

Jenis: UINT

Menentukan jumlah format yang didukung.

[in] pSupportedFormats

Jenis: const DXGI_FORMAT*

Menentukan array, panjang SupportedFormatsCount dari entri DXGI_FORMAT .

[out] ppOutputDuplication

Jenis: IDXGIOutputDuplication**

Pointer ke variabel yang menerima antarmuka IDXGIOutputDuplication baru.

Menampilkan nilai

Jenis: HRESULT

  • S_OK jika DuplicateOutput1 berhasil membuat antarmuka duplikasi desktop.
  • E_INVALIDARG karena salah satu alasan berikut:
    • Perangkat yang ditentukan (pDevice) tidak valid, tidak dibuat pada adaptor yang benar, atau tidak dibuat dari IDXGIFactory1 (atau versi yang lebih baru dari antarmuka pabrik DXGI yang mewarisi dari IDXGIFactory1).
    • Aplikasi panggilan sudah menduplikasi output desktop ini.
  • E_ACCESSDENIED jika aplikasi tidak memiliki hak akses ke gambar desktop saat ini. Misalnya, hanya aplikasi yang berjalan di LOCAL_SYSTEM yang dapat mengakses desktop aman.
  • DXGI_ERROR_UNSUPPORTED jika antarmuka IDXGIOutputDuplication yang dibuat tidak mendukung mode atau skenario desktop saat ini. Misalnya, mode desktop 8bpp dan non-DWM tidak didukung.

    Jika DuplicateOutput1 gagal dengan DXGI_ERROR_UNSUPPORTED, aplikasi dapat menunggu pemberitahuan sistem switch desktop dan perubahan mode lalu memanggil DuplicateOutput1 lagi setelah pemberitahuan tersebut terjadi. Untuk informasi selengkapnya, lihat sakelar desktop (EVENT_SYSTEM_DESKTOPSWITCH) dan pemberitahuan perubahan mode (WM_DISPLAYCHANGE).

  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE jika DXGI mencapai batas jumlah maksimum aplikasi duplikasi bersamaan (default empat). Oleh karena itu, aplikasi panggilan tidak dapat membuat antarmuka duplikasi desktop apa pun sampai aplikasi lain ditutup.
  • DXGI_ERROR_SESSION_DISCONNECTED jika DuplicateOutput1 gagal karena sesi saat ini terputus.
  • Kode kesalahan lainnya dijelaskan dalam topik DXGI_ERROR .

Keterangan

Metode ini memungkinkan langsung menerima format buffer back asli yang digunakan oleh aplikasi layar penuh yang sedang berjalan. Sebagai perbandingan, menggunakan fungsi DuplicateOutput asli selalu mengonversi permukaan layar penuh menjadi format BGRA 32-bit. Dalam kasus di mana aplikasi layar penuh saat ini menggunakan format buffer yang berbeda, konversi ke BGRA 32-bit dikenakan penalti performa. Selain manfaat performa untuk dapat melewati konversi format, menggunakan DuplicateOutput1 juga memungkinkan penerimaan gamut penuh warna dalam kasus di mana format warna tinggi (seperti R10G10B10A2) sedang disajikan.

Array pSupportedFormats hanya boleh berisi format pemindaian tampilan. Lihat Dukungan Format untuk Perangkat Keras Tingkat Fitur Direct3D 11.0 untuk format pemindaian yang diperlukan di setiap tingkat fitur. Jika format buffer layar penuh saat ini tidak terkandung dalam array pSupportedFormats , DXGI akan memilih salah satu format yang disediakan dan mengonversi buffer layar penuh ke format tersebut sebelum kembali dari IDXGIOutputDuplication::AcquireNextFrame. Daftar format yang didukung harus selalu berisi DXGI_FORMAT_B8G8R8A8_UNORM, karena ini adalah format yang paling umum untuk desktop.

Persyaratan

   
Target Platform Windows
Header dxgi1_5.h
Pustaka Dxgi.lib
DLL Dxgi.dll

Lihat juga

DuplikatOutput

IDXGIOutput5