ID3D12Fence::SetEventOnCompletion メソッド (d3d12.h)
フェンスが特定の値に達したときに発生するイベントを指定します。
構文
HRESULT SetEventOnCompletion(
UINT64 Value,
HANDLE hEvent
);
パラメーター
Value
種類: UINT64
イベントが通知される場合のフェンス値。
hEvent
型: HANDLE
イベント オブジェクトへのハンドル。
戻り値
型: HRESULT
このメソッドは、カーネル コンポーネントがリストにイベントを格納するのに十分なメモリがない場合に、 E_OUTOFMEMORY を返します。 その他の可能な戻り値については、「戻りコードDirect3D 12」を参照してください。
解説
イベントがトリガーされる前に複数のフェンスを指定するには、「 SetEventOnMultipleFenceCompletion」を参照してください。
hEvent が null ハンドルの場合、この API は、指定されたフェンス値に達するまで戻りません。
このメソッドは、一度に複数のスレッドから安全に呼び出すことができます。
例
D3D12Multithreading サンプルでは、ID3D12Fence::SetEventOnCompletion を次のように使用します。
// 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);
Direct3D 12 リファレンスのコード例を参照してください。
要件
対象プラットフォーム | Windows |
ヘッダー | d3d12.h |
Library | D3D12.lib |
[DLL] | D3D12.dll |