Método IDXGIDevice2::EnqueueSetEvent (dxgi1_2.h)
Vacía los comandos de representación pendientes y establece el objeto de evento especificado en el estado señalado después de que se completen todos los comandos de representación enviados anteriormente.
Sintaxis
HRESULT EnqueueSetEvent(
[in] HANDLE hEvent
);
Parámetros
[in] hEvent
Identificador del objeto de evento. La función CreateEvent o OpenEvent devuelve este identificador. Se admiten todos los tipos de objetos de evento (restablecimiento manual, restablecimiento automático, etc.).
El identificador debe tener el derecho de acceso EVENT_MODIFY_STATE. Para obtener más información sobre los derechos de acceso, vea Synchronization Object Security and Access Rights.
Valor devuelto
Devuelve S_OK si se ejecuta correctamente; de lo contrario, devuelve uno de los valores siguientes:
- E_OUTOFMEMORY si no hay suficiente memoria disponible para completar la operación.
- E_INVALIDARG si se validó el parámetro y se determinó que es incorrecto.
Comentarios
EnqueueSetEvent llama a la función SetEvent en el objeto de evento después de que se completen todos los comandos de representación enviados previamente o se quite el dispositivo.
Una vez que una aplicación llama a EnqueueSetEvent, puede llamar inmediatamente a la función WaitForSingleObject para ponerse en suspensión hasta que se completen los comandos de representación.
No puede usar EnqueueSetEvent para determinar la finalización del trabajo asociada a la presentación (IDXGISwapChain::P resent); en su lugar, se recomienda usar IDXGISwapChain::GetFrameStatistics.
Ejemplos
En el código de ejemplo siguiente se muestra cómo usar 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);
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 y actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2012 y actualización de plataforma para Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | dxgi1_2.h |
Library | Dxgi.lib |