次の方法で共有


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 に設定することをお勧めします。pEntrypointNULL に設定することをお勧めします。 その他のすべてのシェーダー プロファイルでは、有効な 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 のリターン コードのいずれかを返します

注釈

D3DCompileD3DCompile2 の違いは、後者のメソッドは、バイトコードの生成方法のいくつかの側面を制御するために使用できる省略可能なパラメーターを受け取る点です。 この追加の柔軟性が必要ない場合は、 D3DCompile2 を使用してもパフォーマンスが向上しません。

要件

要件
対象プラットフォーム Windows
ヘッダー d3dcompiler.h
Library d3dcompiler.lib
[DLL] d3dcompiler_47.dll

関連項目

関数