次の方法で共有


D3DPreprocess 関数 (d3dcompiler.h)

コンパイルされていない HLSL コードを前処理します。

構文

HRESULT D3DPreprocess(
  [in]            LPCVOID                pSrcData,
  [in]            SIZE_T                 SrcDataSize,
  [in, optional]  LPCSTR                 pSourceName,
  [in, optional]  const D3D_SHADER_MACRO *pDefines,
  [in, optional]  ID3DInclude            *pInclude,
  [out]           ID3DBlob               **ppCodeText,
  [out, optional] ID3DBlob               **ppErrorMsgs
);

パラメーター

[in] pSrcData

型: LPCVOID

コンパイルされていないシェーダー データへのポインター。ASCII HLSL コードまたはコンパイル済み効果のいずれか。

[in] SrcDataSize

型: SIZE_T

pSrcDataの長さ。

[in, optional] pSourceName

型: LPCSTR

コンパイルされていない HLSL コードを含むファイルの名前。

[in, optional] pDefines

型: const D3D_SHADER_MACRO*

NULL で終わるマクロ定義の配列 (D3D_SHADER_MACROを参照)。

[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)

[out] ppCodeText

型: ID3DBlob**

前処理されたコードへのアクセスに使用できる ID3DBlob インターフェイスへのポインターを受け取る変数へのポインター。

[out, optional] ppErrorMsgs

型: ID3DBlob**

コンパイラ エラー メッセージを含む ID3DBlob へのポインター。エラーがない場合は NULL

戻り値

型: HRESULT

Direct3D 11 リターン コードのいずれかを返します。

備考

D3DPreprocess は、#line ディレクティブを出力し、ソース入力の行番号を保持して、出力行番号を入力ソースに適切に関連付けることができます。

必要条件

要件 価値
ターゲット プラットフォーム の ウィンドウズ
ヘッダー d3dcompiler.h
ライブラリ D3dcompiler_47.lib
DLL D3dcompiler_47.dll

関連項目

Functions