レンダリングが不要な場合にイベントを待機する

アプリは、画面へのレンダリングが不要な場合 (つまり、隠れている間) にイベントを待機できます。 デスクトップ ウィンドウ マネージャー (DWM) またはアプリが隠されている場合、レンダリングは必要なく、オペレーティング システムの電源状態を長時間低くすることができます。 これにより、電力を節約し、バッテリ寿命を延ばします。

アプリは、次の場合にイベントを待機できます。

  • すべてのモニターがオフです。
  • アプリが実行されているセッションは切断されています。
  • アプリは、1 つのモニター構成でのみ全画面表示で実行されます。
  • アプリは、アクティブなデスクトップとは異なるデスクトップ上で実行され、アクティブなデスクトップにレンダリングするアクセス許可がありません。

オペレーティング システムは、アプリが再びレンダリングできる場合にイベントをトリガーします。 ドライバーのアップグレード中、またはタイムアウト検出と回復 (TDR) の処理中にイベントはクリアされませんが、新しいアダプターとモニターがアクティブになるとクリアされます。

アプリにオクルージョン状態の変更に関する通知を受け取る場合は、アプリでこれらの変更を登録する必要があります。 アプリは、ウィンドウへのメッセージまたはイベント シグナリングを通じて、オクルージョン状態の変更に関する通知を受け取るために登録できます。 オクルージョン状態の変更に関する通知メッセージをウィンドウに受信するように登録するために、アプリは IDXGIFactory2::RegisterOcclusionStatusWindow メソッドを 呼び出します。 イベントシグナリングを介してオクルージョン状態の変更の通知を受け取るために登録するために、アプリは IDXGIFactory2::RegisterOcclusionStatusEvent メソッドを 呼び出します。 どちらのメソッドも、アプリが通知の登録解除に使用できるキー値へのポインターを返します。 通知の登録を解除するために、アプリはこのキー値を IDXGIFactory2::UnregisterOcclusionStatus メソッドに 渡します。

DXGI 1.2 の機能強化