Microsoft DirectX 8.0 |
CImageSample クラスは CMediaSample を継承し、コンストラクタをオーバーライドして、DIBDATA 構造体を使用してそれ自体を初期化する。レンダラが独自のアロケータを使用している場合、レンダラはそのサンプル用にこのクラスを使用する。したがって、必要な DIBSECTION 構造体の情報を取得して、レンダリングする HBITMAP データを取得できる。
プロテクト データ メンバ
m_bInit DIBSECTION 構造体の情報が初期化されているかどうかを判断するためのフラグ。 m_DibData サンプルの DIBSECTION 構造体に関する情報。
メンバ関数
CImageSample CImageSample オブジェクトを作成する。 GetDIBData サンプルについて格納された DIBSECTION 構造体の情報を取得する。 SetDIBData サンプルについて格納される DIBSECTION 情報を設定する。
CImageSample オブジェクトを作成する。
構文
CImageSample(
CBaseAllocator *pAllocator,
TCHAR *pName,
HRESULT *phr,
LPBYTE pBuffer,
LONG length
);
パラメータ
- pAllocator
- サンプルが属するベース アロケータへのポインタ。
- pName
- デバッグ専用の文字列の記述へのポインタ。
- phr
- COM 戻りコードへのポインタ。
- pBuffer
- イメージ バッファへのポインタ。
- length
- イメージ バッファの長さ。
戻り値
戻り値なし。
注意
CImageAllocator、CImageSample、および CDrawImage クラスは、すべて密接に関連している。イメージ アロケータが使用するバッファは、Microsoft® Win32® CreateDIBSection 関数を使用して作成される。次に、アロケータは CImageSample クラスに基づいて独自のサンプルを作成する。イメージ サンプルは、バッファ ポインタとその長さを使って初期化される。サンプルは、CreateDIBSection の呼び出しから取得されたさまざまな情報を保持する構造体 (DIBDATA 構造体) にも渡される。
これらのサンプルを描画オブジェクトに渡すことができる。描画オブジェクトは、サンプルのプライベート フォーマット、およびサンプルから DIBDATA 構造体を取得する方法を認識している。描画オブジェクトは、この情報を取得した後、サンプルに含まれるイメージを描画するときに、DIBDATA 構造体に格納されたビットマップ ハンドルを GDI に渡すことができる。描画時にバッファ ポインタ (サンプルが CImageSample ではない場合に使用される) ではなく、サンプルから取得したビットマップ ハンドルを使用することによって、パフォーマンスが若干向上する。
サンプルによって保持されている DIBDATA 構造体を取得する。
構文
DIBDATA *GetDIBData(void);
戻り値
DIBDATA 構造体を返す。
サンプルが保持する必要がある DIBDATA 構造体を設定する。
構文
void SetDIBData(
DIBDATA *pDibData
);
パラメータ
- pDibData
- 新しい DIBDATA 構造体へのポインタ。
戻り値
戻り値なし。