IDirect3DDevice9Ex::ComposeRects メソッド (d3d9.h)
別のサーフェス上のグリフのアルファベットを使用して、テキスト文字列を 1 つのサーフェスにコピーします。 コンポジションは、ビットごとの操作を使用して GPU によって行われます。
構文
HRESULT ComposeRects(
[in] IDirect3DSurface9 *pSrc,
[in] IDirect3DSurface9 *pDst,
[in] IDirect3DVertexBuffer9 *pSrcRectDescs,
[in] UINT NumRects,
[in] IDirect3DVertexBuffer9 *pDstRectDescs,
[in] D3DCOMPOSERECTSOP Operation,
[in] int Xoffset,
[in] int Yoffset
);
パラメーター
[in] pSrc
種類: IDirect3DSurface9*
アルファベット グリフを提供するソースサーフェイス ( IDirect3DSurface9 によって準備された) へのポインター。 このサーフェスは 、D3DUSAGE_TEXTAPI フラグを使用して作成する必要があります。
[in] pDst
種類: IDirect3DSurface9*
グリフ データを受け取る宛先サーフェス ( IDirect3DSurface9 によって準備された) へのポインター。 サーフェスはテクスチャの一部である必要があります。
[in] pSrcRectDescs
ソース サーフェイスで目的のグリフを囲む四角形 (D3DCOMPOSERECTDESC を参照) を含む頂点バッファーへのポインター (IDirect3DVertexBuffer9 を参照)。
[in] NumRects
型: UINT
操作で使用される四角形またはグリフの数。 この数値は、ソース サーフェスとターゲット サーフェスの両方に適用されます。 範囲は 0 ~ D3DCOMPOSERECTS_MAXNUMRECTSです。
[in] pDstRectDescs
ソース サーフェスから指定されたグリフのコピー先を記述する四角形 (D3DCOMPOSERECTDESTINATION を参照) を含む頂点バッファーへのポインター (IDirect3DVertexBuffer9 を参照)。
[in] Operation
ソース サーフェスとターゲット サーフェスを結合する方法を指定します。 「D3DCOMPOSERECTSOP」を参照してください。
[in] Xoffset
型: INT
すべての変換先の四角形の x 座標に追加された値。 この値に負の値を指定すると、結果がサーフェスの境界を超えた場合にグリフが拒否またはクリップされる可能性があります。
[in] Yoffset
型: INT
すべての変換先の四角形の y 座標に追加された値。 この値に負の値を指定すると、結果がサーフェスの境界を超えた場合にグリフが拒否またはクリップされる可能性があります。
戻り値
型: HRESULT
メソッドが成功した場合、戻り値はD3D_OK。
解説
このメソッドを使用すると、1 ビットソース サーフェスのグリフが別の 1 ビット テクスチャ サーフェスにまとめます。 その後、変換先サーフェスを、テキストの文字列をフィルター処理して他のモノクロ以外のサーフェスにスケーリングする通常のテクスチャ処理のソースとして使用できます。
このメソッドにはいくつかの制約があります ( StretchRect に似ています)。
- サーフェスをロックできません。
- ソース サーフェスとターゲット サーフェスを同じサーフェスにすることはできません。
- ソース サーフェスと変換先サーフェスは、 D3DFMT_A1 形式で作成する必要があります。
- ソース サーフェスと両方の頂点バッファーは 、D3DPOOL_DEFAULT フラグを使用して作成する必要があります。
- 宛先サーフェスは、 D3DPOOL_DEFAULTまたはD3DPOOL_SYSTEMMEM フラグを使用して作成 する 必要があります。
- ソースの四角形は、ソース サーフェス内にある必要があります。
要件
対象プラットフォーム | Windows |
ヘッダー | d3d9.h |
Library | D3D9.lib |