Metode IDXGIDevice2::EnqueueSetEvent (dxgi1_2.h)
Menghapus perintah penyajian yang luar biasa dan mengatur objek peristiwa yang ditentukan ke status yang disinyalkan setelah semua perintah penyajian yang dikirimkan sebelumnya selesai.
Sintaks
HRESULT EnqueueSetEvent(
[in] HANDLE hEvent
);
Parameter
[in] hEvent
Handel ke objek peristiwa. Fungsi CreateEvent atau OpenEvent mengembalikan handel ini. Semua jenis objek peristiwa (reset manual, reset otomatis, dan sebagainya) didukung.
Handel harus memiliki hak akses EVENT_MODIFY_STATE. Untuk informasi selengkapnya tentang hak akses, lihat Sinkronisasi Keamanan Objek dan Hak Akses.
Nilai kembali
Mengembalikan S_OK jika berhasil; jika tidak, mengembalikan salah satu nilai berikut:
- E_OUTOFMEMORY jika memori tidak cukup tersedia untuk menyelesaikan operasi.
- E_INVALIDARG jika parameter divalidasi dan ditentukan salah.
Keterangan
EnqueueSetEvent memanggil fungsi SetEvent pada objek peristiwa setelah semua perintah penyajian yang dikirimkan sebelumnya selesai atau perangkat dihapus.
Setelah aplikasi memanggil EnqueueSetEvent, aplikasi dapat segera memanggil fungsi WaitForSingleObject untuk membuatnya tertidur hingga perintah penyajian selesai.
Anda tidak dapat menggunakan EnqueueSetEvent untuk menentukan penyelesaian pekerjaan yang terkait dengan presentasi (IDXGISwapChain::P resent); sebagai gantinya, kami sarankan Anda menggunakan IDXGISwapChain::GetFrameStatistics.
Contoh
Contoh kode berikut menunjukkan cara menggunakan EnqueueSetEvent.
void BlockingFinish( IDXGIDevice2* pDevice )
{
// Create a manual-reset event object.
hEvent = CreateEvent(
NULL, // default security attributes
TRUE, // manual-reset event
FALSE, // initial state is nonsignaled
FALSE
);
if (hEvent == NULL)
{
printf("CreateEvent failed (%d)\n", GetLastError());
return;
}
pDevice->EnqueueSetEvent(hEvent);
DWORD dwWaitResult = WaitForSingleObject(
hEvent, // event handle
INFINITE); // indefinite wait
switch (dwWaitResult)
{
// Event object was signaled
case WAIT_OBJECT_0:
// Commands completed
break;
// An error occurred
default:
printf("Wait error (%d)\n", GetLastError());
return 0;
}
CloseHandle(hEvent);
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 dan Pembaruan Platform untuk Windows 7 [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2012 dan Pembaruan Platform untuk Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | dxgi1_2.h |
Pustaka | Dxgi.lib |