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 内容

関連項目

IDirect3DDevice9Ex