次の方法で共有


D3D10CreateEffectFromMemory 関数 (d3d10effect.h)

コンパイル済み効果を含むバッファーから ID3D10Effect を作成します。

構文

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

パラメーター

[in] pData

型: void*

コンパイルされた効果へのポインター。

[in] DataLength

種類: SIZE_T

pData の長さ。

[in] FXFlags

型: UINT

効果 コンパイル オプション

[in] pDevice

種類: ID3D10Device*

デバイスへのポインター ( 「ID3D10Device Interface」を参照)。

[in] pEffectPool

種類: ID3D10EffectPool*

省略可能。 効果間で共有される効果変数のメモリ領域へのポインター ( 「ID3D10EffectPool インターフェイス」を参照)。

[out] ppEffect

種類: ID3D10Effect**

作成された効果を含む ID3D10Effect インターフェイス へのポインター。

戻り値

種類: HRESULT

次のいずれかの Direct3D 10 リターン コードを返します

解説

注意

リンクすると d3d10_1.lib 、 の d3d10_1.dll実装が提供されます。これは、Direct3D10.1 プログラミング モデルの実装です。 リンクを使用 d3d10.lib すると、 の d3d10.dll実装が提供されます。これは、Direct3D10 プログラミング モデルの実装です。

このメソッドは、ランタイムの前にコンパイルされ、メモリに読み込まれた効果から ID3D10Effect Interface オブジェクトを作成するために使用されます。 効果のプリコンパイルについては、「 オフライン コンパイル」を参照してください。 ASCII .fx ファイルを読み込んでコンパイルするには、「 効果のコンパイル (Direct3D 10)」を参照してください。

効果をコンパイルする

fxc.exe /T fx_4_0 /Fo Tutorial03.fxo Tutorial03.fx      

実行時にコンパイルされた効果を読み込みます。

ifstream is("tutorial03.fxo", ios::binary);
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);

必要条件

   
対象プラットフォーム Windows
ヘッダー d3d10effect.h
Library d3d10_1.lib、d3d10.lib
[DLL] d3d10_1.dll、d3d10.dll

こちらもご覧ください

効果関数 (Direct3D 10)