次の方法で共有


D3DXCreateEffectFromFileEx 関数

ASCII またはバイナリ効果の説明から効果を作成します。 この関数は D3DXCreateEffectFromFile の拡張バージョンであり、アプリケーションで効果システムによって無視されるパラメーターを制御できます。

構文

HRESULT D3DXCreateEffectFromFileEx(
  _In_        LPDIRECT3DDEVICE9 pDevice,
  _In_        LPCTSTR           pSrcFile,
  _In_  const D3DXMACRO         *pDefines,
  _In_        LPD3DXINCLUDE     pInclude,
  _In_        LPCSTR            pSkipConstants,
  _In_        DWORD             Flags,
  _In_        LPD3DXEFFECTPOOL  pPool,
  _Out_       LPD3DXEFFECT      *ppEffect,
  _Out_       LPD3DXBUFFER      *ppCompilationErrors
);

パラメーター

pDevice [in]

種類: LPDIRECT3DDEVICE9

効果を作成するデバイスへのポインター。 「IDirect3DDevice9」を参照してください。

pSrcFile [in]

型: LPCTSTR

ファイル名へのポインター。 このパラメーターは、Unicode 文字列と ANSI 文字列の両方をサポートします。 「解説」を参照してください。

pDefines [in]

型: const D3DXMACRO*

プリプロセッサ マクロ定義の NULL で終わる省略可能な配列。 「D3DXMACRO」を参照してください。

pInclude [in]

種類: LPD3DXINCLUDE

#include ディレクティブの処理に使用するオプションのインターフェイス ポインター ID3DXInclude。 この値が NULL の場合、#includesはファイルからコンパイルするときに優先されるか、リソースまたはメモリからコンパイルされるときにエラーが発生します。

pSkipConstants [in]

種類: LPCSTR

効果システムによって無視される効果パラメーターの文字列。 文字列は NULL で終わる必要があり、各アプリケーション管理定数の名前をセミコロンで区切って含める必要があります。

Flags [in]

種類: DWORD

pSrcFile にテキスト効果が含まれている場合、フラグは D3DXSHADER フラグと D3DXFX フラグの組み合わせにすることができます。それ以外の場合、pSrcFile にはバイナリ効果が含まれており、指定されるフラグは D3DXFX フラグのみです。 Direct3D 10 HLSL コンパイラが既定になりました。 詳細については、「 エフェクト コンパイラ ツール 」を参照してください。

pPool [in]

種類: LPD3DXEFFECTPOOL

共有パラメーターに使用する ID3DXEffectPool オブジェクトへのポインター。 この値が NULL の場合、パラメーターは共有されません。

ppEffect [out]

種類: LPD3DXEFFECT*

コンパイルされた効果を含むバッファーへのポインターを返します。 「ID3DXEffect」を参照してください。

ppCompilationErrors [out]

種類: LPD3DXBUFFER*

コンパイル エラーの一覧を含むバッファーへのポインターを返します。 「ID3DXBuffer」を参照してください。

戻り値

種類: HRESULT

関数が成功した場合、戻り値はD3D_OK。 関数が失敗した場合、戻り値は次のいずれかになります:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA、E_OUTOFMEMORY。

解説

この関数は D3DXCreateEffectFromFile の拡張バージョンであり、アプリケーションでアプリケーションによって管理される効果定数を指定できます。 アプリケーションによって管理される定数は、効果システムによって無視されます。 つまり、アプリケーションは定数を初期化し、必要に応じてその状態を保存および復元する必要があります。

この関数は、pSkipConstants の各定数をチェックして、次の点を確認します。

  • 定数レジスタにバインドされます。
  • HLSL シェーダー コードでのみ使用されます。

効果に存在しない文字列に定数の名前が付けられている場合、その定数は無視されます。

コンパイラ設定で Unicode が必要な場合、データ型 LPCTSTR は LPCWSTR に解決されます。 それ以外の場合、LPCTSTR データ型は LPCSTR に解決されます。

コンパイラ設定によって、関数のバージョンも決定されます。 Unicode が定義されている場合、関数呼び出しは D3DXCreateEffectFromFileW に解決されます。 それ以外の場合、ANSI 文字列が使用されているため、関数呼び出しは D3DXCreateEffectFromFileA に解決されます。

必要条件

要件
ヘッダー
D3DX9Effect.h
ライブラリ
D3dx9.lib

こちらもご覧ください

効果関数

D3DXCreateEffectEx

D3DXCreateEffectFromResourceEx