IDirect3DDevice9Ex::ComposeRects
あるサーフェス上のグリフのアルファベットを使用して、1 つのテキスト文字列が別のサーフェスにコピーされます。合成は、GPU により、ビット演算を使用して実行されます。
HRESULT
ComposeRects(
IDirect3DSurface9 *pSource,
IDirect3DSurface9 *pDestination,
IDirect3DVertexBuffer9 *pSrcRectDescriptors,
UINT NumRects,
IDirect3DVertexBuffer9 *pDstRectDescriptors,
D3DCOMPOSEOP Operation,
INT XOffset,
INT YOffset
);
パラメータ
- pSource
アルファベット グリフを提供するコピー元サーフェス (IDirect3DSurface9 を使用して準備) に対するポインター。このサーフェスは、D3DUSAGE_TEXTAPI フラグを使用して作成する必要があります。 - pDestination
グリフ データを受け取るコピー先サーフェス (IDirect3DSurface9 を使用して準備) に対するポインター。サーフェスは、テクスチャーの一部でなければなりません。 - pSrcRectDescriptors
コピー元サーフェス内の目的のグリフを囲む矩形 (D3DCOMPOSERECTDESC) が含まれる頂点バッファー (IDirect3DVertexBuffer9) へのポインター。 - NumRects
本演算で使用する矩形またはグリフの数。この数値は、コピー元サーフェスにもコピー先サーフェスにも適用されます。この値の範囲は、0 ~ D3DCOMPOSERECTS_MAXNUMRECTS です。 - pDstRectDescriptors
コピー元サーフェス内の指定したグリフのコピー先となる矩形 (D3DCOMPOSERECTDESTINATION) が含まれる頂点バッファー (IDirect3DVertexBuffer9) へのポインター。 - Operation
コピー元サーフェスとコピー先サーフェスの演算方法を指定します。「D3DCOMPOSERECTSOP」を参照してください。 - XOffset
すべてのコピー先矩形の x 座標に加算される値。この値は、負でもかまいません。その場合、結果がサーフェスの境界を超えると、グリフの除去または切り取りが実行されることもあります。 - YOffset
すべてのコピー先矩形の y 座標に加算される値。この値は、負でもかまいません。その場合、結果がサーフェスの境界を超えると、グリフの除去または切り取りが実行されることもあります。
戻り値
メソッドが成功した場合は、D3D_OK を返します。
解説
このメソッドの場合、1 ビットのコピー元サーフェスのグリフは、別の 1 ビットのテクスチャー サーフェスにまとめられます。その場合、コピー先サーフェスは、モノクロ以外の他のサーフェスに対してテキスト文字列のフィルター処理およびスケーリングを実行する標準のテクスチャー処理のソースとして使用できます。
このメソッドには、制約 (IDirect3DDevice9::StretchRect に類似) がいくつかあります。
- サーフェスをロックできない。
- コピー元サーフェスとコピー先サーフェスが同じサーフェスであってはならない。
- コピー元サーフェスとコピー先サーフェスは、D3DFMT_A1 フォーマットを使用して作成する必要がある。
- コピー元サーフェスと両方の頂点バッファーは、D3DPOOL_DEFAULT フラグを使用して作成する必要がある。
- コピー先サーフェスは、D3DPOOL_DEFAULT フラグまたは D3DPOOL_SYSTEMMEM フラグを使用して作成する必要がある。
- コピー元矩形は、コピー元サーフェス内になければならない。
このメソッドは、状態ブロックに記録されません。
要件
ヘッダー: D3d9.h 宣言
ライブラリ: D3D9.lib 内容