PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB回呼函式 (d3dumddi.h)
pfnSignalSynchronizationObjectCb 函式會在指定的內容 DMA 數據流中,於指定的同步處理物件上插入訊號。
語法
PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB Pfnd3dddiSignalsynchronizationobjectcb;
HRESULT Pfnd3dddiSignalsynchronizationobjectcb(
HANDLE hDevice,
const D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT *unnamedParam2
)
{...}
參數
hDevice
顯示裝置 (的句柄,也就是圖形內容) 。
unnamedParam2
pData [in]
D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT 結構的指標,描述已設定訊號的同步處理對象和內容 DMA 數據流。
傳回值
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 (include D3dumddi.h) |