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 オペレーティング システムで使用できます。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | d3dumddi.h (D3dumddi.h を含む) |