D3DCompile 関数 (d3dcompiler.h)
HLSL コードまたは効果ファイルを、特定のターゲットのバイトコードにコンパイルします。
構文
HRESULT D3DCompile(
[in] LPCVOID pSrcData,
[in] SIZE_T SrcDataSize,
[in, optional] LPCSTR pSourceName,
[in, optional] const D3D_SHADER_MACRO *pDefines,
[in, optional] ID3DInclude *pInclude,
[in, optional] LPCSTR pEntrypoint,
[in] LPCSTR pTarget,
[in] UINT Flags1,
[in] UINT Flags2,
[out] ID3DBlob **ppCode,
[out, optional] ID3DBlob **ppErrorMsgs
);
パラメーター
[in] pSrcData
種類: LPCVOID
コンパイルされていないシェーダー データへのポインター。ASCII HLSL コードまたはコンパイル済み効果のいずれか。
[in] SrcDataSize
種類: SIZE_T
pSrcData の長さ。
[in, optional] pSourceName
種類: LPCSTR
このパラメーターは、エラー メッセージを指定する文字列に使用できます。 使用しない場合は、NULL に設定 します。
[in, optional] pDefines
型: const D3D_SHADER_MACRO*
シェーダー マクロを定義 するD3D_SHADER_MACRO 構造体の省略可能な配列。 各マクロ定義には、名前と null で終わる定義が含まれています。 使用しない場合は、NULL に設定 します。 配列内の最後の構造体はターミネータとして機能し、すべてのメンバーを NULL に設定する必要があります。
[in, optional] pInclude
種類: ID3DInclude*
省略可能。 インクルード ファイルを処理するための ID3DInclude へのポインター。 これを NULL に設定すると、シェーダーに #include が含まれている場合、コンパイル エラーが発生します。 既定のインクルード ハンドラーへのポインターである D3D_COMPILE_STANDARD_FILE_INCLUDE マクロを渡すことができます。 この既定のインクルード ハンドラーには、現在のディレクトリに対して相対的なファイルと、初期ソース ファイルのディレクトリに対する相対ファイルが含まれます。 D3D_COMPILE_STANDARD_FILE_INCLUDEを使用する場合は、pSourceName パラメーターにソース ファイル名を指定する必要があります。コンパイラは pSourceName から初期相対ディレクトリを派生させます。
#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)
[in, optional] pEntrypoint
種類: LPCSTR
シェーダーの実行が開始されるシェーダー エントリ ポイント関数の名前。 fx プロファイル (fx_4_0、fx_5_0 など) を使用してコンパイルすると、 D3DCompile はpEntrypoint を無視します。 この場合、呼び出された関数で使用されない場合は、ポインター パラメーターを NULL に設定することをお勧めします。pEntrypoint を NULL に設定することをお勧めします。 その他のすべてのシェーダー プロファイルでは、有効な pEntrypoint が必要です。
[in] pTarget
種類: LPCSTR
コンパイル対象のシェーダー ターゲットまたはシェーダー機能のセットを指定する文字列。 シェーダー ターゲットには、シェーダー モデル 2、シェーダー モデル 3、シェーダー モデル 4、シェーダー モデル 5 を指定できます。 ターゲットには、効果の種類 (たとえば、fx_4_1) を指定することもできます。 さまざまなプロファイルでサポートされるターゲットの詳細については、「 コンパイラ ターゲットの指定」を参照してください。
[in] Flags1
型: UINT
D3D コンパイル定数によって定義されるフラグ。
[in] Flags2
型: UINT
D3D コンパイル効果定数によって定義されるフラグ。 効果ファイルではなくシェーダーをコンパイルすると、 D3DCompile はFlags2 を無視します。 Flags2 を 0 に設定することをお勧めします。呼び出された関数で使用されない場合は、非ポイント パラメーターを 0 に設定することをお勧めします。
[out] ppCode
種類: ID3DBlob**
コンパイル済みコードへのアクセスに使用できる ID3DBlob インターフェイスへのポインターを受け取る変数へのポインター。
[out, optional] ppErrorMsgs
種類: ID3DBlob**
コンパイラ エラー メッセージへのアクセスに使用できる ID3DBlob インターフェイスへのポインターを受け取る変数へのポインター。エラーがない場合は NULL 。
戻り値
型: HRESULT
Direct3D 11 のリターン コードのいずれかを返します。
注釈
D3DCompile と D3DCompile2 の違いは、後者のメソッドは、バイトコードの生成方法のいくつかの側面を制御するために使用できる省略可能なパラメーターを受け取る点です。 この追加の柔軟性が必要ない場合は、 D3DCompile2 を使用してもパフォーマンスが向上しません。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3dcompiler.h |
Library | d3dcompiler.lib |
[DLL] | d3dcompiler_47.dll |