Método ID3D12Fence::SetEventOnCompletion (d3d12.h)
Especifica um evento gerado quando a cerca atinge um determinado valor.
Sintaxe
HRESULT SetEventOnCompletion(
UINT64 Value,
HANDLE hEvent
);
Parâmetros
Value
Tipo: UINT64
O valor da cerca quando o evento deve ser sinalizado.
hEvent
Tipo: HANDLE
Um identificador para o objeto de evento.
Valor retornado
Tipo: HRESULT
Esse método retornará E_OUTOFMEMORY se os componentes do kernel não tiverem memória suficiente para armazenar o evento em uma lista. Confira Códigos de retorno do Direct3D 12 para obter outros valores retornados possíveis.
Comentários
Para especificar várias cercas antes que um evento seja disparado, consulte SetEventOnMultipleFenceCompletion.
Se hEvent for um identificador nulo, essa API não retornará até que os valores de limite especificados tenham sido atingidos.
Esse método pode ser chamado com segurança de vários threads ao mesmo tempo.
Exemplos
O exemplo D3D12Multithreading usa ID3D12Fence::SetEventOnCompletion da seguinte maneira:
// Wait for the command list to execute; we are reusing the same command
// list in our main loop but for now, we just want to wait for setup to
// complete before continuing.
// Signal and increment the fence value.
const UINT64 fenceToWaitFor = m_fenceValue;
ThrowIfFailed(m_commandQueue->Signal(m_fence.Get(), fenceToWaitFor));
m_fenceValue++;
// Wait until the fence is completed.
ThrowIfFailed(m_fence->SetEventOnCompletion(fenceToWaitFor, m_fenceEvent));
WaitForSingleObject(m_fenceEvent, INFINITE);
Consulte o Código de exemplo na referência do Direct3D 12.
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | d3d12.h |
Biblioteca | D3D12.lib |
DLL | D3D12.dll |