D3DX11CompileFromResource 関数
Note
D3DX (D3DX 9、D3DX 10、D3DX 11) ユーティリティ ライブラリは、Windows 8では非推奨であり、Windows ストア アプリではサポートされていません。
Note
この関数を使用する代わりに、 リソース関数を使用してから、Fxc.exeコマンド ライン コンパイラを使用してオフラインでコンパイルするか、 D3DCompile API などの HLSL コンパイル API のいずれかを使用することをお勧めします。
シェーダーまたはリソースからの効果をコンパイルします。
構文
HRESULT D3DX11CompileFromResource(
_In_ HMODULE hSrcModule,
_In_ LPCTSTR pSrcResource,
_In_ LPCTSTR pSrcFileName,
_In_ const D3D10_SHADER_MACRO *pDefines,
_In_ LPD3D10INCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ UINT Flags1,
_In_ UINT Flags2,
_In_ ID3DX11ThreadPump *pPump,
_Out_ ID3D10Blob **ppShader,
_Out_ ID3D10Blob **ppErrorMsgs,
_Out_ HRESULT *pHResult
);
パラメーター
-
hSrcModule [in]
-
種類: HMODULE
シェーダーを含むリソース モジュールへのハンドル。 HMODULE は GetModuleHandle 関数を使用して取得できます。
-
pSrcResource [in]
-
種類: LPCTSTR
シェーダーを含むリソースの名前。 コンパイラ設定で Unicode が必要な場合、データ型 LPCTSTR は LPCWSTR に解決されます。 それ以外の場合、データ型は LPCSTR に解決されます。
-
pSrcFileName [in]
-
種類: LPCTSTR
省略可能。 エラー メッセージにのみ使用される効果ファイル名。 NULL を指定できます。
-
pDefines [in]
-
型: const D3D10_SHADER_MACRO*
省略可能。 マクロ定義の配列へのポインター ( 「D3D10_SHADER_MACRO」を参照)。 配列内の最後の構造体はターミネータとして機能し、すべてのメンバーを 0 に設定する必要があります。 使用しない場合は、 pDefines を NULL に設定します。
-
pInclude [in]
-
種類: LPD3D10INCLUDE
省略可能。 インクルード ファイルを処理するためのインターフェイスへのポインター。 これを NULL に設定すると、シェーダーに#includeが含まれている場合、コンパイル エラーが発生します。
-
pFunctionName [in]
-
種類: LPCSTR
シェーダーの実行が開始されるシェーダー エントリ ポイント関数の名前。 効果をコンパイルすると、D3DX11CompileFromResource は pFunctionName を無視します。呼び出された関数で使用されない場合は、ポインター パラメーターを NULL に設定することをお勧めします。pFunctionName は NULL に設定することをお勧めします。
-
pProfile [in]
-
種類: LPCSTR
シェーダー モデルを指定する文字列。には、シェーダー モデル 2、シェーダー モデル 3、シェーダー モデル 4、またはシェーダー モデル 5 の任意のプロファイルを指定できます。 プロファイルは、効果の種類 (たとえば、fx_4_1) の場合もあります。
-
Flags1 [in]
-
型: UINT
シェーダー コンパイル フラグ。
-
Flags2 [in]
-
型: UINT
効果 コンパイル フラグ。 効果ファイルではなくシェーダーをコンパイルすると、 D3DX11CompileFromResource は Flags2 を無視します。 Flags2 を 0 に設定することをお勧めします。呼び出された関数で使用されない場合は、非ポイント パラメーターを 0 に設定することをお勧めします。
-
pPump [in]
-
種類: ID3DX11ThreadPump*
スレッド ポンプ インターフェイスへのポインター ( ID3DX11ThreadPump インターフェイスを参照)。 この関数が完了するまでこの関数が返されないように指定するには 、NULL を 使用します。
-
ppShader [out]
-
種類: ID3D10Blob**
コンパイルされたシェーダーと、埋め込まれたデバッグとシンボル テーブルの情報を含むメモリへのポインター。
-
ppErrorMsgs [out]
-
種類: ID3D10Blob**
コンパイル中に発生したエラーと警告の一覧を含むメモリへのポインター。 これらのエラーと警告は、デバッガーからのデバッグ出力と同じです。
-
pHResult [out]
-
型: HRESULT*
戻り値へのポインター。 NULL を指定できます。 pPump が NULL でない場合、pHResult は非同期実行が完了するまで有効なメモリの場所である必要があります。
戻り値
型: HRESULT
戻り値は、「 Direct3D 11 リターン コード」に記載されている値の 1 つです。
pPump パラメーターに NULL を指定するときに pHResult パラメーターに NULL 以外を指定した場合、D3DX11CompileFromResource はE_INVALIDARGを返します。 この状況の詳細については、「解説」を参照してください。
注釈
D3DX11CompileFromResource の詳細については、「D3DCompile」を参照してください。
pPump パラメーターにも NULL を指定する場合は、pHResult パラメーターに NULL を指定する必要があります。 それ以外の場合は、その後、ppShader パラメーターが指すメモリ内で D3DX11CompileFromResource が返すコンパイル済みシェーダー コードを使用してシェーダーを作成することはできません。 準拠したシェーダー コードからシェーダーを作成するには、次のいずれかの ID3D11Device インターフェイス メソッドを呼び出します。
- CreateComputeShader
- CreateDomainShader
- CreateGeometryShader
- CreateGeometryShaderWithStreamOutput
- CreateHullShader
- CreatePixelShader
- CreateVertexShader
さらに、pPump に NULL を指定するときに pHResult に NULL 以外の値を指定すると、D3DX11CompileFromResource はE_INVALIDARGエラー コードを返します。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|