次の方法で共有


D3D10CreateEffectFromMemory

コンパイル済みのエフェクトが格納されたバッファーから ID3D10Effect を作成します。

HRESULT 
D3D10CreateEffectFromMemory(
  void *pData,
  SIZE_T DataLength,
  UINT FXFlags,
  ID3D10Device *pDevice,
  ID3D10EffectPool *pEffectPool,
  ID3D10Effect **ppEffect
);

パラメータ

戻り値

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

関連項目

エフェクト関数 (Direct3D 10)