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 포함)

추가 정보

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT