次の方法で共有


PFND3D11_1DDI_CLEARVIEW コールバック関数 (d3d10umddi.h)

PFND3D11_1DDI_CLEARVIEW、リソース ビュー内のすべての要素を 1 つの値に設定します。 リソース ビューは、形式を示し、場合によってはリソースのサブセットを示すサーフェス記述子です。

構文

PFND3D11_1DDI_CLEARVIEW Pfnd3d111DdiClearview;

void Pfnd3d111DdiClearview(
  D3D10DDI_HDEVICE hDevice,
  D3D11DDI_HANDLETYPE viewType,
  VOID *hView,
  const FLOAT Color[4],
  const D3D10_DDI_RECT *pRect,
  UINT NumRects
)
{...}

パラメーター

hDevice

ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。

viewType

このクリア操作をサポートするビュー ハンドル型を識別する D3D11DDI_HANDLETYPE 型の値。 使用できる型は次のとおりです。

  • D3D10DDI_HT_RENDERTARGETVIEW
  • D3D11DDI_HT_UNORDEREDACCESSVIEW
  • 任意のD3D11_1DDI_HT_VIDEOXXX

hView

クリアするリソース ビューへのポインター。

Color[4]

pRect

クリアするリソース ビュー内の四角形の RECT 構造体の配列。 NULL の場合、ClearView サーフェス全体がクリアされます。

NumRects

pRect パラメーターが指定する配列内の四角形の数。

戻り値

何一つ

備考

ClearView は、レンダー ターゲット ビュー (RTV)、順序なしアクセス ビュー (UAV)、または Texture2D サーフェスのビデオ ビューでのみ機能します。 pRect 配列内の空の四角形は、no-opです。 上の値が下の値と等しい場合、または左の値が右の値と等しい場合、四角形は空になります。

ClearView では、3-D テクスチャはサポートされていません。

ClearView は、ビュー内のすべての配列スライスに同じ色の値を適用します。pRect 配列内のすべての四角形は、各配列スライスに対応します。 pRect 四角形の配列は、1 つのサーフェスでクリアする領域のセットです。 ビューが配列の場合、ClearView は、各配列スライス上のすべての四角形を個別にクリアします。

ユーザー モード ドライバーは、バッファーに四角形を適用する場合は、上の値を 0 に設定し、下部の値を 1 に設定し、バッファー内のエクステントを記述する左の値と右の値を設定する必要があります。 上の値が下の値と等しいか、左の値が右の値と等しい場合、四角形は空になり、no-op が実現されます。

ドライバーは、Direct3D 変換規則に従って、必要に応じて色の値を変換し、変換先の形式にクランプする必要があります。 たとえば、ビューの形式が DXGI_FORMAT_R8G8B8A8_UNORMの場合、入力を 0.0f から 1.0f にクランプします (+INF -> 1.0f (0XFF)/NaN -> 0.0f)。

形式が整数 (DXGI_FORMAT_R8G8B8A8_UINTなど) の場合は、入力を整数浮動小数点数として受け取ります。 したがって、235.0f は 235 にマップされます (0 に丸め、範囲外/INF 値がターゲット範囲にクランプされ、NaN がゼロになります)。

カラー マッピングを次に示します。

  • Color[0]: R (またはビデオの場合は Y)
  • Color[1]: G (またはビデオの場合は U/Cb)
  • Color[2]: B (またはビデオの場合は V/Cr)
  • Color[3]: A

YUV 形式または YCbBr 形式のビデオ ビューの場合、ClearView は色の値を変換しません。 形式名が_UNORMや_UINTなどを示していない場合、ClearView は_UINTを想定します。 したがって、235.0f は 235 にマップされます (0 に丸め、範囲外/INF 値がターゲット範囲にクランプされ、NaN がゼロになります)。

サブサンプリングされた RTV または UAV ビデオ サーフェイスの Microsoft Direct3D ビューの場合、ビューのサイズは、基になるビデオ ピクセルの論理数ではなく、ビュー形式のピクセル数に基づいていることに注意してください。 たとえば、サーフェスに 1920 x 1080 ピクセルのサイズの YUY2 形式があり、RTV が DXGI_FORMAT_R8G8B8A8_UINT形式を使用するとします。 ビューは Direct3D に対して、水平方向に 1920/2 = 960 R8G8B8A8 ピクセルと表示されます。 そのため、ClearView に渡されるすべての四角形は、この空間で解釈されます。 さらに、R8G8B8A8、真の R8G8B8A8 サーフェスと同じように、4 つのコンポーネントすべてに対して明確な値が取得されます。 この場合、R、G、B、A は標準の RGBA カラー値を意味しません。代わりに、メモリ内の場所を識別し、呼び出し元はビデオ サーフェイスのコンテキストでその場所にデータを配置する意味を理解する必要があります。

ただし、ビデオ サーフェイスのビデオ ビュー (CreateVideoDecoderOutputView 関数に提供されるビューなど)、その他の XxxInputView および XxxOutputView 関数) は、完全な論理ディメンションに表示されます。 この場合、水平寸法は 1920 ピクセル幅であるため、ClearView に渡される RECT構造体受け入れ。 このような RECTは、サブサンプリングされたブロックをまたがないように配置する必要があります。そうしないと、ランタイムはこの関数の呼び出しを削除します。 ビデオ ビューの場合、サブサンプリング形式では YUV の色を適切にレプリケートする必要があります。 たとえば、ClearView 呼び出しの YUV には、YUY2 サーフェス内の各ブロックに対して Y 値が重複しています。

D3D10_DDI_RECT 構造体は、RECT 構造体として定義されます。

typedef RECT D3D10_DDI_RECT;

必要条件

要件 価値
サポートされる最小クライアント Windows 8
サポートされる最小サーバー Windows Server 2012
ターゲット プラットフォーム デスクトップ
ヘッダー d3d10umddi.h (D3d10umddi.h を含む)

関連項目

CreateVideoDecoderOutputView

D3D11DDI_HANDLETYPE

RECT