D3D10CreateEffectFromMemory
コンパイル済みのエフェクトが格納されたバッファーから ID3D10Effect を作成します。
HRESULT
D3D10CreateEffectFromMemory(
void *pData,
SIZE_T DataLength,
UINT FXFlags,
ID3D10Device *pDevice,
ID3D10EffectPool *pEffectPool,
ID3D10Effect **ppEffect
);
パラメータ
- pData
コンパイル済みエフェクトへのポインターです。 - DataLength
pData の長さです。 - FXFlags
エフェクトのコンパイル オプションです。 - pDevice
デバイスへのポインターです (「ID3D10Device インターフェイス」を参照してください)。 - pEffectPool
(省略可能)複数のエフェクトで共有されるエフェクト変数のメモリー領域へのポインターです (「ID3D10EffectPool インターフェイス」を参照してください)。 - ppEffect
作成されたエフェクトが格納される ID3D10Effect インターフェイス へのポインターです。
戻り値
Direct3D 10 のリターン コード のいずれかを返します。
解説
実行前にコンパイルし、メモリーにロードしたエフェクトから ID3D10Effect インターフェイス オブジェクトを作成するために、このメソッドを使用します。エフェクトのプリコンパイルについては、「オフライン コンパイル」を参照してください。ASCII の .fx のロードとコンパイルについては、「エフェクトのコンパイル (Direct3D 10)」を参照してください。
例
エフェクトのコンパイルとロード
エフェクトをコンパイルします。fxc.exe /T fx_4_0 /Fo Tutorial03.fxo Tutorial03.fx
コンパイルしたエフェクトを実行時にロードします。
ifstream is("tutorial03.fxo"); is.seekg(0,ios_base::end); streampos pos = is.tellg(); is.seekg(0,ios_base::beg); char * effectBuffer = new char[pos]; is.read(effectBuffer,pos); hr = D3D10CreateEffectFromMemory((void *)effectBuffer,pos,0,g_pd3dDevice,NULL,&g_pEffect);
要件
ヘッダー: D3D10Effect.h 宣言
ライブラリ: D3D10.dll 内容