XDisplayAcquireTimeoutDeferral
画面タイムアウト遅延を取得します。
構文
HRESULT XDisplayAcquireTimeoutDeferral(
XDisplayTimeoutDeferralHandle* handle
)
パラメーター
handle _Out_
型: XDisplayTimeoutDeferralHandle*
画面タイムアウト遅延のハンドルへのポインター。
戻り値
型: HRESULT
正常に実行された場合は S_OK が返され、それ以外の場合はエラー コードが返されます。 エラー コードの一覧については、「エラー コード」を参照してください。
解説
注意
この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。
画面タイムアウト遅延により、ユーザー アクションがない間に画面の表示が暗くなったり、ロックされたり、電源が切れたりすることがなくなります。 一定のアイドル時間が経過すると、画面のタイムアウトが発生します。 画面タイムアウトへの応答では、デバイスのディスプレイが暗くなったり、ロック画面がアクティブになったり、ディスプレイの電源が切れたりすることがあります。 画面タイムアウトが発生するまでに必要なアイドル時間の長さは、デバイスのユーザー設定によって決まります。 ゲーム リソースの読み込みや長いカットシーンの表示など、ユーザーの操作を必要としないアクティビティがゲームで実行されている場合、画面タイムアウトは不便な場合があります。 画面タイムアウト遅延を取得することにより、画面タイムアウトを防止できます。
画面タイムアウト遅延を取得するには、最初に XDisplayAcquireTimeoutDeferral を呼び出して画面タイムアウト遅延のハンドルを取得した後、不要になったら XDisplayCloseTimeoutDeferralHandle を呼び出してハンドルを閉じます。 画面タイムアウト遅延は、ゲームがフォーカスを失った場合は無視され、ゲームが終了すると解放されます。
注意
この関数を使用して画面タイムアウト遅延ハンドルを取得した場合は、XDisplayCloseTimeoutDeferralHandle を呼び出すことによってそのハンドルを閉じる必要があります。 複数の画面タイムアウト遅延ハンドルを取得することができ、すべての画面タイムアウト遅延ハンドルが閉じられた後でのみ、ゲームの画面タイムアウトが有効になります。
注意
タイトルを頻繁にデバッグしている間は、画面の暗転は行われません。
次の例では、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 本体