PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB fonction de rappel (d3dumddi.h)
La fonction pfnSignalSynchronizationObjectCb insère un signal sur les objets de synchronisation spécifiés dans le flux DMA de contexte spécifié.
Syntaxe
PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB Pfnd3dddiSignalsynchronizationobjectcb;
HRESULT Pfnd3dddiSignalsynchronizationobjectcb(
HANDLE hDevice,
const D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT *unnamedParam2
)
{...}
Paramètres
hDevice
Handle pour un périphérique d’affichage (c’est-à-dire le contexte graphique).
unnamedParam2
pData [in]
Pointeur vers une structure de D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT qui décrit les objets de synchronisation et le flux DMA de contexte sur lequel la signalisation est configurée.
Valeur retournée
pfnSignalSynchronizationObjectCb retourne l’une des valeurs suivantes :
Code de retour | Description |
---|---|
S_OK | La signalisation a été correctement configurée. |
E_INVALIDARG | Les paramètres ont été validés et déterminés comme incorrects. |
Cette fonction peut également retourner d’autres valeurs HRESULT.
Remarques
Remarque de Direct3D version 11 : Pour plus d’informations sur la façon dont le pilote appelle pfnSignalSynchronizationObjectCb, consultez Modifications de Direct3D 10.
Exemples
L’exemple de code suivant montre comment insérer un signal sur des objets de synchronisation.
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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | d3dumddi.h (inclure D3dumddi.h) |