ID3DXEffectCompiler::CompileShader

1 つまたは複数の関数を含むエフェクトからのシェーダーをコンパイルします。

HRESULT 
CompileShader(
  D3DXHANDLE hFunction,
  LPCSTR pTarget,
  DWORD Flags,
  LPD3DXBUFFER* ppShader,
  LPD3DXBUFFER* ppErrorMsgs,
  LPD3DXCONSTANTTABLE* ppConstantTable
);

パラメータ

  • hFunction
    コンパイルされる関数への一意な識別子です。この値を NULL にすることはできません。「ハンドル (Direct3D 9)」を参照してください。
  • pTarget
    シェーダーの命令セットを決定するシェーダー プロファイルへのポインターです。利用可能なプロファイルの一覧については、「D3DXGetVertexShaderProfile」または「D3DXGetPixelShaderProfile」を参照してください。
  • Flags
    さまざまなフラグにより指定されるコンパイル オプションです。Direct3D 10 HLSL コンパイラが現在の既定のコンパイラです。詳細については、「D3DXSHADER フラグ」を参照してください。
  • ppShader
    コンパイルされたシェーダーが格納されるバッファーです。コンパイラ シェーダーは、DWORD の配列です。バッファーへのアクセスの詳細については、「ID3DXBuffer」を参照してください。
  • ppErrorMsgs
    発生した最初のコンパイル エラー メッセージを格納するバッファーです。エフェクトのコンパイル エラーと上位レベル言語のコンパイル エラーが含まれます。バッファーへのアクセスの詳細については、「ID3DXBuffer」を参照してください。
  • ppConstantTable
    シェーダー定数へのアクセスを可能にする ID3DXConstantTable インターフェイスを返します。この値は NULL でもかまいません。

戻り値

成功した場合は、S_OK を返します。

引数が無効な場合は、D3DERR_INVALIDCALL を返します。

失敗した場合は、E_FAIL を返します。

解説 

ターゲットは、頂点シェーダー、ピクセル シェーダー、およびテクスチャーの塗りつぶし関数に対して指定されます。

頂点シェーダーのターゲット vs_1_1、vs_2_0、vs_2_sw、vs_3_0
ピクセル シェーダーのターゲット ps_1_1、ps_1_2、ps_1_3、ps_1_4、ps_2_0、ps_2_sw、ps_3_0
テクスチャーの塗りつぶしターゲット tx_0、tx_1

このメソッドは、C に似た言語で記述された関数からのシェーダーをコンパイルします。詳細については、「HLSL」を参照してください。

要件

ヘッダー: D3DX9Effect.h 宣言

ライブラリ: D3dx9.lib 内容

関連項目

D3DXGetShaderConstantTable