次の方法で共有


D3D10CompileShader

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

    この関数の代わりに D3DX10CompileFromMemory を使用してください。

HRESULT 
D3D10CompileShader(
  LPCSTR pSrcData,
  SIZE_T SrcDataLen,
  LPCSTR pFileName,
  CONST D3D10_SHADER_MACRO *pDefines,
  LPD3D10INCLUDE *pInclude,
  LPCSTR pFunctionName,
  LPCSTR pProfile,
  UINT Flags,
  ID3D10Blob **ppShader,
  ID3D10Blob **ppErrorMsgs
);

パラメータ

  • pSrcData
    シェーダーのソース コードが格納されている文字列へのポインターです。
  • SrcDataLen
    pSrcData のサイズ (バイト単位) です。
  • pFileName
    シェーダー コードが格納されているファイルの名前です。
  • pDefines
    (省略可能)マクロ定義の配列へのポインターです (「D3D10_SHADER_MACRO」を参照」)。配列の最後にある構造体は終端子の役割を果たすため、すべてのメンバーをゼロに設定しておく必要があります。使用しない場合は、pDefines を NULL に設定します。
  • pInclude
    (省略可能)インクルード ファイルを処理する ID3D10Include インターフェイス インターフェイスへのポインターです。これを NULL に設定すると、シェーダーに #include が含まれている場合はコンパイル エラーが発生します。
  • pFunctionName
    シェーダーの実行が開始されるシェーダー エントリポイント関数の名前です。
  • pProfile
    シェーダー プロファイルまたはシェーダー モデルを指定する文字列です。
  • Flags
    シェーダーのコンパイル オプションです。
  • ppShader
    コンパイル済みシェーダーと、埋め込みのデバッグ情報およびシンボル テーブル情報を格納する ID3D10Blob インターフェイス へのポインターです。
  • ppErrorMsgs
    コンパイル時に発生したエラーと警告の一覧を格納する ID3D10Blob インターフェイス へのポインターです。これらのエラーや警告は、デバッガーからのデバッグ出力と同じです。

戻り値

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

解説 

この関数は、2006 年 11 月の DirectX SDK でリリースされたバージョンの HLSL コンパイラを使用します。

この関数では、入力シェーダー情報を提供するための 2 つの方法が実装されています。シェーダーの HLSL コードが格納されている文字列を指定するには、pSrcData および SrcDataLen を使用します (pFileName は NULL に設定します)。シェーダー ファイルまたはエフェクト ファイルの名前を指定するには、pFileName を使用します (pSrcData は NULL に設定します)。

プログラム可能パイプライン ステージを設定するには、シェーダーをコンパイルし、適切なパイプライン ステージにそのシェーダーをバインドします。ジオメトリ シェーダーのコンパイルの例については、「ジオメトリ シェーダーのコンパイル」を参照してください。

この関数 D3D10CompileShader は、オペレーティング システムのリリースごとに提供されるバージョンのシェーダー コンパイラを呼び出します。最新バージョンのシェーダー コンパイラは、DirectX SDK の出荷時に出荷されます。シェーダー コンパイラーのエントリポイント関数 (D3DX10CompileFromFile など) を呼び出すことによって、そのバージョンのシェーダー コンパイラにアクセスすることができます。DirectX 再配布可能ライブラリを再配布する場合、最新バージョンのシェーダー コンパイラが確実に使用されるように、D3DX エントリ ポイント関数を使用することをお勧めします。

要件

ヘッダー: D3D10Shader.h 宣言

ライブラリ: D3D10.dll 内容

関連項目

シェーダー関数