DXGI_OUTDUPL_FRAME_INFO 構造体 (dxgi1_2.h)

DXGI_OUTDUPL_FRAME_INFO構造では、現在のデスクトップ イメージについて説明します。

構文

typedef struct DXGI_OUTDUPL_FRAME_INFO {
  LARGE_INTEGER                 LastPresentTime;
  LARGE_INTEGER                 LastMouseUpdateTime;
  UINT                          AccumulatedFrames;
  BOOL                          RectsCoalesced;
  BOOL                          ProtectedContentMaskedOut;
  DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
  UINT                          TotalMetadataBufferSize;
  UINT                          PointerShapeBufferSize;
} DXGI_OUTDUPL_FRAME_INFO;

メンバー

LastPresentTime

デスクトップ イメージの最後の更新のタイムスタンプ。 オペレーティング システムは QueryPerformanceCounter 関数を呼び出して値を取得します。 0 の値は、アプリケーションが最後に IDXGIOutputDuplication::AcquireNextFrame メソッドを呼び出してデスクトップ イメージの次のフレームを取得してから、デスクトップ イメージが更新されなかったことを示します。

LastMouseUpdateTime

マウスの最後の更新のタイム スタンプ。 オペレーティング システムは QueryPerformanceCounter 関数を呼び出して値を取得します。 0 の値は、アプリケーションが最後に IDXGIOutputDuplication::AcquireNextFrame メソッドを呼び出してデスクトップ イメージの次のフレームを取得してから、マウスの位置または図形が更新されなかったことを示します。 マウスの位置は常にマウス更新用に指定されます。 新しいポインター図形は、 PointerShapeBufferSize メンバーの 0 以外の値で示されます。

AccumulatedFrames

呼び出し元のアプリケーションが最後のデスクトップ イメージを処理してから、オペレーティング システムがデスクトップ イメージサーフェイスに蓄積したフレームの数。 この番号の詳細については、「解説」を参照してください。

RectsCoalesced

オペレーティング システムがダーティリージョンを合体して更新プログラムを累積するかどうかを指定します。 したがって、ダーティ領域には変更されていないピクセルが含まれている可能性があります。 ダーティ領域が累積された場合は TRUE、それ以外の場合は FALSE

ProtectedContentMaskedOut

デスクトップ イメージで既にブラックアウトされている保護されたコンテンツをデスクトップ イメージに含めるかどうかを指定します。 保護 されたコンテンツが既に黒くされている場合は TRUE。それ以外の場合は FALSE。 アプリケーションは、この情報を使用して、一部のデスクトップ コンテンツが保護され、表示されないことをリモート ユーザーに通知できます。

PointerPosition

LastMouseUpdateTime メンバーが 0 以外の値である場合に、最新のマウス位置を記述するDXGI_OUTDUPL_POINTER_POSITION構造体。それ以外の場合、この値は無視されます。 この値は、ポインター図形の左上隅が描画される位置の座標を提供します。この値は、ホット スポットのデスクトップ位置ではありません。

TotalMetadataBufferSize

このフレームのすべてのデスクトップ更新メタデータを格納するバッファーのサイズ (バイト単位)。 このサイズの詳細については、「解説」を参照してください。

PointerShapeBufferSize

マウス図形の新しいピクセル データを保持するバッファーのサイズ (バイト単位)。 このサイズの詳細については、「解説」を参照してください。

解説

0 以外の LastMouseUpdateTime は、マウス ポインターの位置またはマウス ポインターの位置と図形への更新を示します。 つまり、マウス ポインターの位置は、常に 0 以外の LastMouseUpdateTime に対して有効です。ただし、アプリケーションでは、PointerShapeBufferSize メンバーの値をチェックして、図形も更新されたかどうかを判断する必要があります。

ポインターのみが更新された場合 (つまり、デスクトップ イメージが更新されませんでした)、 AccumulatedFramesTotalMetadataBufferSizeLastPresentTime メンバーは 0 に設定されます。

1 の AccumulatedFrames 値は、新しいデスクトップ イメージが表示される前に、アプリケーションが最後のフレームの処理を完了したことを示します。 AccumulatedFrames の値が 1 より大きい場合、アプリケーションが最後のデスクトップ更新プログラムを処理している間に、デスクトップ イメージの更新が複数発生しました。 この状況では、オペレーティング システムによって更新リージョンが蓄積されました。 デスクトップ更新プログラムの詳細については、「デスクトップ更新データ」を参照してください。

0 以外の TotalMetadataBufferSize は、すべてのデスクトップ更新メタデータを格納するために必要なバッファーの合計サイズを示します。 アプリケーションは、各種類のメタデータのサイズを決定できません。 各メタデータの種類に関する情報を取得するには、アプリケーションで IDXGIOutputDuplication::GetFrameDirtyRectsIDXGIOutputDuplication::GetFrameMoveRects、または IDXGIOutputDuplication::GetFramePointerShape メソッドを呼び出す必要があります。

メモ視覚効果を修正するには、アプリケーションがダーティ四角形を処理する前に、移動領域データを処理する必要があります。
 

要件

   
サポートされている最小のクライアント Windows 8 および Windows 7 用プラットフォーム更新プログラム [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 および Windows Server 2008 R2 用プラットフォーム更新プログラム [デスクトップ アプリのみ]
Header dxgi1_2.h

関連項目

DXGI 構造体

IDXGIOutputDuplication::AcquireNextFrame