圧縮バッファーおよびデコード レンダー ターゲットの作成
Microsoft Direct3D ランタイムは、ユーザー モード ディスプレイ ドライバーの CreateResource 関数を呼び出して、デコード用の圧縮バッファーとレンダー ターゲットを作成します。
各圧縮バッファーの種類には、独自のサーフェイス形式と、ランタイムが作成するサーフェイスに高速ビデオ デコード用の圧縮バッファー情報が含まれていることを示す特別なフラグがあります。 ユーザー モード ディスプレイ ドライバーで、CreateResource の pResource パラメーターが指す D3DDDIARG_CREATERESOURCE 構造体の Flags メンバーのDecodeCompressedBuffer ビット フィールド フラグが設定されている場合に、圧縮バッファーを作成することを判断します。 ユーザー モード ディスプレイ ドライバーは、D3DDDIARG_CREATERESOURCE のFormat メンバーのフォーマット値によって作成された圧縮バッファーのタイプを決定します。 次のフォーマットが定義されています。
D3DDDIFMT_PICTUREPARAMSDATA = 150
D3DDDIFMT_MACROBLOCKDATA = 151
D3DDDIFMT_RESIDUALDIFFERENCEDATA = 152
D3DDDIFMT_DEBLOCKINGDATA = 153
D3DDDIFMT_INVERSEQUANTIZATIONDATA = 154
D3DDDIFMT_SLICECONTROLDATA = 155
D3DDDIFMT_BITSTREAMDATA = 156
Direct3D ランタイムは、ユーザー モード ディスプレイ ドライバーの CreateResource 関数の呼び出しで、各デコード レンダー ターゲットを個別に作成します。 各ターゲットは、1 つのリソースのサブリソース インデックスとして参照されます。 ユーザー モード ディスプレイ ドライバーは、D3DDDIARG_CREATERESOURCE の Flags メンバーの DecodeRenderTarget ビット フィールド フラグが設定されている場合に、デコード レンダー ターゲットを作成することを決定します。