IDXGIOutputDuplication::GetFrameMoveRects method (dxgi1_2.h)

Mendapatkan informasi tentang persegi panjang yang dipindahkan untuk bingkai desktop saat ini.

Sintaks

HRESULT GetFrameMoveRects(
  [in]  UINT                   MoveRectsBufferSize,
  [out] DXGI_OUTDUPL_MOVE_RECT *pMoveRectBuffer,
  [out] UINT                   *pMoveRectsBufferSizeRequired
);

Parameter

[in] MoveRectsBufferSize

Ukuran dalam byte buffer yang diteruskan pemanggil ke parameter pMoveRectBuffer .

[out] pMoveRectBuffer

Penunjuk ke array struktur DXGI_OUTDUPL_MOVE_RECT yang mengidentifikasi wilayah persegi panjang yang dipindahkan untuk bingkai desktop.

[out] pMoveRectsBufferSizeRequired

Penunjuk ke variabel yang menerima jumlah byte yang dibutuhkan GetFrameMoveRects untuk menyimpan informasi tentang wilayah yang dipindahkan di buffer di pMoveRectBuffer.

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

Menampilkan nilai

GetFrameMoveRects mengembalikan:

  • S_OK jika berhasil mengambil informasi tentang persegi panjang yang dipindahkan.
  • 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 GetFrameMoveRects tanpa memiliki gambar desktop.
  • E_INVALIDARG jika salah satu parameter untuk GetFrameMoveRects salah; misalnya, jika pMoveRectBuffer adalah NULL.
  • Mungkin kode kesalahan lain yang dijelaskan dalam topik DXGI_ERROR .

Keterangan

GetFrameMoveRects menyimpan nilai ukuran dalam variabel di pMoveRectsBufferSizeRequired. Nilai ini menentukan jumlah byte yang dibutuhkan GetFrameMoveRects untuk menyimpan informasi tentang wilayah yang dipindahkan. Anda dapat menggunakan nilai ini dalam situasi berikut untuk menentukan jumlah memori yang akan dialokasikan untuk buffer mendatang yang Anda berikan ke pMoveRectBuffer:

  • GetFrameMoveRects gagal dengan DXGI_ERROR_MORE_DATA karena buffer tidak cukup besar.
  • GetFrameMoveRects memasok buffer yang lebih besar dari yang diperlukan. Nilai ukuran yang dikembalikan di pMoveRectsBufferSizeRequired memberi tahu pemanggil berapa banyak ruang buffer yang benar-benar digunakan dibandingkan dengan berapa banyak ruang buffer yang dialokasikan pemanggil dan ditentukan dalam parameter MoveRectsBufferSize .
Pemanggil juga dapat menggunakan nilai yang dikembalikan di pMoveRectsBufferSizeRequired untuk menentukan jumlah struktur DXGI_OUTDUPL_MOVE_RECT yang dikembalikan.

Buffer berisi daftar pemindahan RECT untuk bingkai saat ini.

Catatan Untuk menghasilkan salinan desktop yang akurat secara visual, aplikasi harus terlebih dahulu memproses semua PEMINDAHAN RECT sebelum memproses RECT kotor.
 

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