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 では、 EnqueueSetEvent がE_NOTIMPLで失敗します。 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
Library Dxgi.lib

こちらもご覧ください

IDXGIDevice2