PFND3D11_1DDI_RESOURCECOPYREGION コールバック関数 (d3d10umddi.h)
ソース サブリソースリージョンをコピー先のサブリソース上の場所にコピーします。
構文
PFND3D11_1DDI_RESOURCECOPYREGION Pfnd3d111DdiResourcecopyregion;
void Pfnd3d111DdiResourcecopyregion(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4,
UINT unnamedParam5,
UINT unnamedParam6,
D3D10DDI_HRESOURCE unnamedParam7,
UINT unnamedParam8,
const D3D10_DDI_BOX *unnamedParam9,
[in] UINT CopyFlags
)
{...}
パラメーター
unnamedParam1
hDevice [in]
ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。
unnamedParam2
hDstResource [in] を する
コピー先のリソースへのハンドル。
unnamedParam3
DstSubresource [in]
コピー先のサブリソースを示すインデックス。
unnamedParam4
DstX [in]
変換先サブリソースの x 座標。
unnamedParam5
DstY [in]
変換先サブリソースの y 座標。 1 次元 (1-D) サブリソースの場合、dstY 0 に設定されます。
unnamedParam6
DstZ [in]
変換先サブリソースの z 座標。 1 次元 (1-D) および 2 次元 (2-D) サブリソースの場合、dstZ は 0 に設定されます。
unnamedParam7
hSrcResource の [in]
コピー元のソース リソースへのハンドル。
unnamedParam8
SrcSubresource の [in]
コピー元のサブリソースを示すインデックス。
unnamedParam9
pSrcBox [in, optional]
ソースまたはターゲットのサブリソースに収まるボックスを指定する D3D10_DDI_BOX 構造体へのポインター。 pSrcBox NULL 場合、ドライバーはソース サブリソース全体をコピー先にコピーする必要があります。
D3D10_DDI_BOX 構造体のメンバーが、左 >= 右、上 >=下、または前面>=場合、pSrcBox 空と見なされます。 ResourceCopyRegion(D3D11_1) は、コピー操作を実行しないでください。
[in] CopyFlags
コピー操作の特性を、D3D11_1_DDI_COPY_FLAGS 列挙型の値のビットごとの または として指定する値。
戻り値
何一つ
備考
ドライバーは、pfnSetErrorCb コールバック関数を使用してエラー コードを設定できます。
Microsoft Direct3D ランタイムは、ユーザー モード ディスプレイ ドライバーの ResourceCopyRegion(D3D11_1) 関数を呼び出して、指定したソース サブリソース領域から指定したターゲット サブリソース上の場所にコピーするようにドライバーに通知します。 ソースとターゲットのサブリソースは、同じリソースの同じサブリソースにすることができます。 ソース リソースと移行先リソースの両方が同じ種類のリソースであり、互いに変換可能な形式の種類 (DXGI_FORMAT型指定された値) を持っている必要があります。
バッファーの場合、すべての座標はバイト単位である必要があります。テクスチャの場合、すべての座標はピクセル単位である必要があります。 pSrcBox パラメーターが指すボックスは、ソース サブリソース領域またはコピー先サブリソースの端に広がってはいけません。 ソースリソースと移行先リソースを現在マップすることはできません。 さらに、リソース作成フラグは、リソースがコピー操作に参加できるかどうかを制限します。
ドライバーは、D3DDDIERR_DEVICEREMOVEDを除き、エラーが発生しないようにする必要があります。 したがって、D3DDDIERR_DEVICEREMOVEDを除き、pfnSetErrorCb 関数の呼び出しでドライバーがエラーを渡した場合、Direct3D ランタイムはエラーが重大であると判断します。 デバイスが削除された場合でも、ドライバーはD3DDDIERR_DEVICEREMOVEDを返す必要はありません。ただし、デバイスの取り外しが (通常は発生してはならない) 操作に干渉した場合、ドライバーはD3DDDIERR_DEVICEREMOVEDを返すことができます。
ドライバーは、コピーと変換を処理する switch ステートメントを含めることができる ResourceCopyRegion(D3D11_1) 関数を実装できます。 つまり、ドライバーは 1 つの ResourceCopyRegion(D3D11_1) を実装でき、D3D11_1DDI_DEVICEFUNCS 構造体の pfnResourceConvertRegion メンバーを、D3D11_1DDI_DEVICEFUNCSの pfnResourceCopyRegion メンバーと共に ResourceCopyRegion (D3D11_1) を指すよう設定できます。 ただし、パフォーマンスを向上させるために、ドライバーは、ResourceCopyRegion(D3D11_1) と ResourceConvertRegion(D3D11_1) 関数を実装できます。
次のセクションでは、コピーと変換の条件を示します。
コピー
コピーの場合は、ResourceCopyRegion(D3D11_1)、次の条件でドライバーの CreateResource(D3D11) 関数を使用して、ソース リソースと移行先リソースが作成されたことを確認します。
- ターゲット リソースは、D3D11DDIARG_CREATERESOURCE 構造体の Usage メンバーに設定されたD3D10_DDI_USAGE_IMMUTABLE値を使用して作成されませんでした。
- D3D10DDIARG_CREATERESOURCEの BindFlags メンバーにD3D10_DDI_BIND_DEPTH_STENCIL ビットが設定されている場合、または複数サンプリングされたリソースである場合は、 ResourceCopyRegion(D3D11_1) は、DstX、DstY、および dstZ パラメーター が 0 である間、pSrcBox パラメーターが NULL であることを確認します。
- サブリソース インデックスは範囲内にあります。
- 配置の制限は座標に適用されます。
- ソース リソースと移行先リソースは、まったく同じサブリソースの一部ではありません。
- D3D11DDIARG_CREATERESOURCE の Format メンバーで指定された各ソースとターゲットのリソース形式は、同じ型指定されていないグループ内にあります。
- ソース リソースと移行先リソースには、同じ数のサンプルと品質レベルが必要です。単一サンプリング リソースを除き、同じ数のサンプルのみを含める必要があります。
変換
変換の場合、ResourceCopyRegion(D3D11_1) は、次の条件でドライバーの CreateResource(D3D11) 関数を使用して、ソース リソースと変換先リソースが作成されたことを確認します。
- ターゲット リソースは、D3D11DDIARG_CREATERESOURCE 構造体の Usage メンバーに設定されたD3D10_DDI_USAGE_IMMUTABLE値を使用して作成されませんでした。
- D3D11DDIARG_CREATERESOURCE の bindFlags メンバーに D3D10_DDI_BIND_DEPTH_STENCILビットが設定されている場合、または複数サンプリングされたリソースである場合は、ソース リソースまたはターゲット リソースのD3D10_DDI_BIND_DEPTH_STENCILビットが設定されます。 ResourceCopyRegion(D3D11_1) は、pSrcBox パラメーターが NULL であることを確認します。一方、DstX、 DstY、 DstZ パラメーター は 0 です。
- サブリソース インデックスは範囲内にあります。
- 配置の制限は座標に適用されます。
- ソース リソースと移行先リソースは、まったく同じサブリソースの一部ではありません。
- D3D11DDIARG_CREATERESOURCE の Format メンバーで指定された各ソースとターゲットのリソース形式は、同じ型指定されていないグループ内にあります。
- D3D11DDIARG_CREATERESOURCE の Format メンバーで指定されている各ソースおよびターゲット リソースの形式は、適切な変換操作をサポートします。
- ソース リソースと移行先リソースには、同じ数のサンプルと品質レベルが必要です。単一サンプリング リソースを除き、同じ数のサンプルのみを含める必要があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 |
サポートされる最小サーバー | Windows Server 2012 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | d3d10umddi.h (D3d10umddi.h を含む) |
関連項目
pfnSetErrorCb の