PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB コールバック関数 (d3dumddi.h)
pfnSignalSynchronizationObjectCb 関数は、指定したコンテキスト DMA ストリーム内の指定された同期オブジェクトにシグナルを挿入します。
構文
PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB Pfnd3dddiSignalsynchronizationobjectcb;
HRESULT Pfnd3dddiSignalsynchronizationobjectcb(
HANDLE hDevice,
const D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT *unnamedParam2
)
{...}
パラメーター
hDevice
ディスプレイ デバイスへのハンドル (つまり、グラフィックス コンテキスト)。
unnamedParam2
pData [in]
シグナリングが設定されている同期オブジェクトとコンテキスト DMA ストリームを記述する D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT 構造体へのポインター。
戻り値
pfnSignalSynchronizationObjectCb は、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
S_OK | シグナリングが正常に設定されました。 |
E_INVALIDARG | パラメーターが検証され、正しくないと判断されました。 |
この関数は、他の HRESULT 値も返す場合があります。
注釈
Direct3D バージョン 11 注: ドライバーが pfnSignalSynchronizationObjectCb を呼び出す方法の詳細については、「 Direct3D 10 からの変更」を参照してください。
例
次のコード例は、同期オブジェクトにシグナルを挿入する方法を示しています。
HRESULT CD3DContext::SyncEngines(DWORD dwEngineReleasingControl, DWORD dwEngineAcquiringControl) {
HRESULT hr;
D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT sWaitObject;
D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT sSignalObject;
sSignalObject.hContext = m_sContexts[dwEngineReleasingControl].hContext;
sSignalObject.ObjectCount = 1;
sSignalObject.ObjectHandleArray[0] = m_hEngineSyncObject;
hr = m_d3dCallbacks.pfnSignalSynchronizationObjectCb(m_hD3D, &sSignalObject);
if (FAILED(hr)) {
DBG_BREAK;
return hr;
}
sWaitObject.hContext = m_sContexts[dwEngineAcquiringControl].hContext;
sWaitObject.ObjectCount = 1;
sWaitObject.ObjectHandleArray[0] = m_hEngineSyncObject;
hr = m_d3dCallbacks.pfnWaitForSynchronizationObjectCb(m_hD3D, &sWaitObject);
if (FAILED(hr)) {
DBG_BREAK;
}
return hr;
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | デスクトップ |
Header | d3dumddi.h (D3dumddi.h を含む) |