다음을 통해 공유


IDXGIDevice2::EnqueueSetEvent 메서드(dxgi1_2.h)

미해결 렌더링 명령을 플러시하고 이전에 제출한 렌더링 명령이 모두 완료된 후 지정된 이벤트 개체를 신호 상태로 설정합니다.

구문

HRESULT EnqueueSetEvent(
  [in] HANDLE hEvent
);

매개 변수

[in] hEvent

이벤트 개체에 대한 핸들입니다. CreateEvent 또는 OpenEvent 함수는 이 핸들을 반환합니다. 모든 유형의 이벤트 개체(수동 재설정, 자동 재설정 등)가 지원됩니다.

핸들에는 EVENT_MODIFY_STATE 액세스 권한이 있어야 합니다. 액세스 권한에 대한 자세한 내용은 동기화 개체 보안 및 액세스 권한을 참조하세요.

반환 값

성공하면 S_OK 반환합니다. 그렇지 않으면 다음 값 중 하나를 반환합니다.

  • E_OUTOFMEMORY 메모리가 부족하여 작업을 완료할 수 있는지 확인합니다.
  • 매개 변수의 유효성이 검사되고 잘못된 것으로 확인되었는지 E_INVALIDARG.
Windows 7용 플랫폼 업데이트: Windows 7 용 플랫폼 업데이트 가 설치된 Windows 7 또는 Windows Server 2008 R2에서는 E_NOTIMPL EnqueueSetEvent 가 실패합니다. Windows 7용 플랫폼 업데이트에 대한 자세한 내용은 Windows 7용 플랫폼 업데이트를 참조하세요.

설명

EnqueueSetEvent 는 이전에 제출한 렌더링 명령이 모두 완료되거나 디바이스가 제거된 후 이벤트 개체에서 SetEvent 함수를 호출합니다.

애플리케이션이 EnqueueSetEvent를 호출한 후 렌더링 명령이 완료될 때까지 WaitForSingleObject 함수를 즉시 호출하여 절전 모드로 전환할 수 있습니다.

EnqueueSetEvent를 사용하여 프레젠테이션과 연결된 작업 완료를 확인할 수 없습니다(IDXGISwapChain::P resent); 대신 IDXGISwapChain::GetFrameStatistics를 사용하는 것이 좋습니다.

예제

다음 예제 코드에서는 EnqueueSetEvent를 사용하는 방법을 보여 줍니다.

void BlockingFinish( IDXGIDevice2* pDevice ) 
{
    // Create a manual-reset event object. 
    hEvent = CreateEvent( 
        NULL,               // default security attributes
        TRUE,               // manual-reset event
        FALSE,              // initial state is nonsignaled
        FALSE
        ); 

    if (hEvent == NULL) 
    { 
        printf("CreateEvent failed (%d)\n", GetLastError());
        return;
    }

    pDevice->EnqueueSetEvent(hEvent);    

    DWORD dwWaitResult = WaitForSingleObject( 
        hEvent, // event handle
        INFINITE);    // indefinite wait

    switch (dwWaitResult) 
    {
        // Event object was signaled
        case WAIT_OBJECT_0: 
            // Commands completed
            break; 

        // An error occurred
        default: 
            printf("Wait error (%d)\n", GetLastError()); 
            return 0; 
    }

    CloseHandle(hEvent);
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2용 Windows Server 2012 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 dxgi1_2.h
라이브러리 Dxgi.lib

추가 정보

IDXGIDevice2