次の方法で共有


XDisplayCloseTimeoutDeferralHandle

XDisplayAcquireTimeoutDeferral を呼び出すことによって前に取得した画面タイムアウト遅延を解放します。

構文

void XDisplayCloseTimeoutDeferralHandle(  
         XDisplayTimeoutDeferralHandle handle  
)  

パラメーター

handle _In_
型: XDisplayTimeoutDeferralHandle

閉じる画面タイムアウト遅延のハンドル。

戻り値

型: void

解説

注意

この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。

画面タイムアウト遅延により、ユーザー アクションがない間に画面の表示が暗くなったり、ロックされたり、電源が切れたりすることがなくなります。 一定のアイドル時間が経過すると、画面のタイムアウトが発生します。 画面タイムアウトへの応答では、デバイスのディスプレイが暗くなったり、ロック画面がアクティブになったり、ディスプレイの電源が切れたりすることがあります。 画面タイムアウトが発生するまでに必要なアイドル時間の長さは、デバイスのユーザー設定によって決まります。 ゲーム リソースの読み込みや長いカットシーンの表示など、ユーザーの操作を必要としないアクティビティがゲームで実行されている場合、画面タイムアウトは不便な場合があります。 画面タイムアウト遅延を取得することにより、画面タイムアウトを防止できます。

画面タイムアウト遅延を取得するには、最初に XDisplayAcquireTimeoutDeferral を呼び出して画面タイムアウト遅延のハンドルを取得した後、不要になったら XDisplayCloseTimeoutDeferralHandle を呼び出してハンドルを閉じます。 画面タイムアウト遅延は、ゲームがフォーカスを失った場合は無視され、ゲームが終了すると解放されます。

注意

XDisplayAcquireTimeoutDeferral を使用して画面タイムアウト遅延ハンドルを取得した場合は、この関数を呼び出すことによってそのハンドルを閉じる必要があります。 複数の画面タイムアウト遅延ハンドルを取得することができ、すべての画面タイムアウト遅延ハンドルが閉じられた後でのみ、ゲームの画面タイムアウトが有効になります。

次の例では、XDisplayAcquireTimeoutDeferral を呼び出して新しい画面タイムアウト遅延ハンドルを取得した後、長い導入カットシーンを再生します。 新しいハンドルが正常に取得された場合、長い導入カットシーンは、ユーザー アクションがないための画面タイムアウトなしで再生できます。 カットシーンの再生が終了した後、例では XDisplayCloseTimeoutDeferralHandle を呼び出してハンドルを閉じます。 すべての画面タイムアウト遅延ハンドルが閉じられた後は、再びユーザー アクションがない場合は画面タイムアウトが発生する可能性があります。

void Game::PlayIntroCutscene()
{
    XDisplayTimeoutDeferralHandle handle;

    // Try to acquire a new timeout deferral handle.
    if (SUCCEEDED(XDisplayAcquireTimeoutDeferral(&handle)))
    {
        // The newly-opened timeout deferral handle prevents the display
        // from dimming over the game if the user goes idle.
        // 
        // At this point, the long intro cutscene can play without dimmming.
    }

    // Once the cutscene has completed playing, 
    // close the the timeout deferral handle.
    XDisplayCloseTimeoutDeferralHandle(handle);

    // If there are no open timeout deferral handles, the display can
    // once again dim over the game if the user goes idle.
}

要件

ヘッダー: XDisplay.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

XDisplayAcquireTimeoutDeferral
XDisplay