次の方法で共有


D3DXCompileShaderFromFile 関数

シェーダー ファイルをコンパイルします。

注意

このレガシ関数を使用する代わりに、Fxc.exeコマンド ライン コンパイラを使用してオフラインでコンパイルするか 、D3DCompile API を使用することをお勧めします。

 

構文

HRESULT D3DXCompileShaderFromFile(
  _In_        LPCTSTR             pSrcFile,
  _In_  const D3DXMACRO           *pDefines,
  _In_        LPD3DXINCLUDE       pInclude,
  _In_        LPCSTR              pFunctionName,
  _In_        LPCSTR              pProfile,
  _In_        DWORD               Flags,
  _Out_       LPD3DXBUFFER        *ppShader,
  _Out_       LPD3DXBUFFER        *ppErrorMsgs,
  _Out_       LPD3DXCONSTANTTABLE *ppConstantTable
);

パラメーター

pSrcFile [in]

種類: LPCTSTR

ファイル名を指定する文字列へのポインター。

pDefines [in]

型: const D3DXMACRO*

D3DXMACRO 構造体の NULL 終端配列 (省略可能)。 この値は NULL である可能性があります。

pInclude [in]

種類: LPD3DXINCLUDE

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

pFunctionName [in]

種類: LPCSTR

実行が開始されるシェーダー エントリ ポイント関数へのポインター。

pProfile [in]

種類: LPCSTR

シェーダー命令セットを決定するシェーダー プロファイルへのポインター。 使用可能なプロファイルの一覧については、「 D3DXGetVertexShaderProfile 」または「 D3DXGetPixelShaderProfile 」を参照してください。

Flags [in]

型: DWORD

さまざまなフラグで識別されるコンパイル オプション。 Direct3D 10 HLSL コンパイラが既定になりました。 詳細については、「 D3DXSHADER フラグ 」を参照してください。

ppShader [out]

種類: LPD3DXBUFFER*

作成されたシェーダーを含むバッファーを返します。 このバッファーには、コンパイルされたシェーダー コードと、埋め込みデバッグとシンボル テーブルの情報が含まれます。

ppErrorMsgs [out]

種類: LPD3DXBUFFER*

コンパイル中に発生したエラーと警告の一覧を含むバッファーを返します。 これらは、デバッグ モードで実行するときにデバッガーが表示するメッセージと同じです。 この値は NULL である可能性があります。

ppConstantTable [out]

種類: LPD3DXCONSTANTTABLE*

シェーダー定数にアクセスするために使用できる ID3DXConstantTable インターフェイスを返します。 この値には NULL を指定できます。 アプリケーションを大きなアドレス対応としてコンパイルする場合 (つまり、/LARGEADDRESSAWARE リンカー オプションを使用して 2 GB を超えるアドレスを処理する場合)、このパラメーターを使用できず、 NULL に設定する必要があります。 代わりに、 D3DXGetShaderConstantTableEx 関数を使用して、シェーダー内に埋め込まれているシェーダー定数テーブルを取得する必要があります。 この D3DXGetShaderConstantTableEx 呼び出しでは、 D3DXCONSTTABLE_LARGEADDRESSAWARE フラグを Flags パラメーターに渡して、最大 4 GB の仮想アドレス空間にアクセスするように指定する必要があります。

戻り値

型: HRESULT

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

E_NOTIMPLは、1.1 シェーダー (vs_1_1 と ps_1_1) を使用している場合に返されます。

必要条件

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

関連項目

シェーダー関数

D3DXCompileShader

D3DXCompileShaderFromResource