IDXGIOutputDuplication::GetFrameDirtyRects method (dxgi1_2.h)

Mendapatkan informasi tentang persegi panjang kotor untuk bingkai desktop saat ini.

Sintaks

HRESULT GetFrameDirtyRects(
  [in]  UINT DirtyRectsBufferSize,
  [out] RECT *pDirtyRectsBuffer,
  [out] UINT *pDirtyRectsBufferSizeRequired
);

Parameter

[in] DirtyRectsBufferSize

Ukuran dalam byte buffer yang diteruskan pemanggil ke parameter pDirtyRectsBuffer .

[out] pDirtyRectsBuffer

Penunjuk ke array struktur RECT yang mengidentifikasi wilayah persegi kotor untuk bingkai desktop.

[out] pDirtyRectsBufferSizeRequired

Pointer ke variabel yang menerima jumlah byte yang dibutuhkan GetFrameDirtyRects untuk menyimpan informasi tentang wilayah kotor di buffer di pDirtyRectsBuffer.

Untuk informasi selengkapnya tentang mengembalikan ukuran buffer yang diperlukan, lihat Keterangan.

Menampilkan nilai

GetFrameDirtyRects mengembalikan:

  • S_OK jika berhasil mengambil informasi tentang persegi panjang kotor.
  • DXGI_ERROR_ACCESS_LOST jika antarmuka duplikasi desktop tidak valid. Antarmuka duplikasi desktop biasanya menjadi tidak valid ketika jenis gambar yang berbeda ditampilkan di desktop. Contoh situasi ini adalah:
    • Sakelar desktop
    • Perubahan mode
    • Beralih dari DWM aktif, DWM nonaktif, atau aplikasi layar penuh lainnya
    Dalam situasi ini, aplikasi harus merilis antarmuka IDXGIOutputDuplication dan membuat IDXGIOutputDuplication baru untuk konten baru.
  • DXGI_ERROR_MORE_DATA jika buffer yang disediakan aplikasi panggilan tidak cukup besar.
  • DXGI_ERROR_INVALID_CALL jika aplikasi bernama GetFrameDirtyRects tanpa memiliki gambar desktop.
  • E_INVALIDARG jika salah satu parameter untuk GetFrameDirtyRects salah; misalnya, jika pDirtyRectsBuffer adalah NULL.
  • Mungkin kode kesalahan lain yang dijelaskan dalam topik DXGI_ERROR .

Keterangan

GetFrameDirtyRects menyimpan nilai ukuran dalam variabel di pDirtyRectsBufferSizeRequired. Nilai ini menentukan jumlah byte yang dibutuhkan GetFrameDirtyRects untuk menyimpan informasi tentang wilayah kotor. Anda dapat menggunakan nilai ini dalam situasi berikut untuk menentukan jumlah memori yang akan dialokasikan untuk buffer di masa mendatang yang Anda berikan ke pDirtyRectsBuffer:

  • GetFrameDirtyRects gagal dengan DXGI_ERROR_MORE_DATA karena buffer tidak cukup besar.
  • GetFrameDirtyRects memasok buffer yang lebih besar dari yang diperlukan. Nilai ukuran yang dikembalikan di pDirtyRectsBufferSizeRequired memberi tahu pemanggil berapa banyak ruang buffer yang benar-benar digunakan dibandingkan dengan berapa banyak ruang buffer yang dialokasikan pemanggil dan ditentukan dalam parameter DirtyRectsBufferSize .
Pemanggil juga dapat menggunakan nilai yang dikembalikan di pDirtyRectsBufferSizeRequired untuk menentukan jumlah RECTs yang dikembalikan dalam array pDirtyRectsBuffer .

Buffer berisi daftar RECTkotor untuk bingkai saat ini.

Catatan Untuk menghasilkan salinan desktop yang akurat secara visual, aplikasi harus terlebih dahulu memproses semua RECTs sebelum memproses RECTkotor.
 

Persyaratan

   
Klien minimum yang didukung Windows 8 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2012 [hanya aplikasi desktop]
Target Platform Windows
Header dxgi1_2.h
Pustaka Dxgi.lib

Lihat juga

IDXGIOutputDuplication