Microsoft DirectX 8.0 (C++)

D3DXAssembleShader

シェーダのソースがメモリ内にある場合に、シェーダの ASCII 記述をバイナリ形式にアセンブルする。

HRESULT D3DXAssembleShader(
  LPCVOID pSrcData,
  UINT SrcDataLen,
  DWORD Flags,
  LPD3DXBUFFER* ppConstants,
  LPD3DXBUFFER* ppCompiledShader,
  LPD3DXBUFFER* ppCompilationErrors
);

パラメータ

pSrcData
[in] ソース コードへのポインタ。
SrcDataLen
[in] ソース コードのサイズ (バイト単位)。
Flags
[in] アセンブリ オプションを指定する、次のフラグの組み合わせ。
D3DXASM_DEBUG
アセンブルされたシェーダに、デバッグ情報をコメントとして挿入する。
D3DXASM_SKIPVALIDATION
生成されたコードに対して既知の能力および制約の検証をしない。このオプションは、動作することがわかっているシェーダをアセンブルする場合 (つまり、前にこのオプションを使用せずにシェーダをアセンブルしたことがある場合) にのみ使用することを勧める。
ppConstants
[out] 返された定数宣言を表す、ID3DXBuffer インターフェイスへのポインタを返す。これらの定数は、頂点シェーダ宣言子フラグメントとして返される。アプリケーションは、このバッファの内容を定数宣言に挿入する必要がある。ピクセル シェーダの場合、定数宣言はアセンブルされたシェーダに含まれるため、このパラメータは意味を成さない。このパラメータが NULL の場合は無視される。
ppCompiledShader
[out] 返されたコンパイル済みのオブジェクト コードを表す、ID3DXBuffer インターフェイスへのポインタを返す。このパラメータが NULL の場合は無視される。
ppCompilationErrors
[out] 返された ASCII エラー メッセージを表す、ID3DXBuffer インターフェイスへのポインタを返す。このパラメータが NULL の場合は無視される。

戻り値

成功した場合は D3D_OK を返す。

失敗した場合は、次のいずれかの値を返す。

D3DERR_INVALIDCALL
D3DXERR_INVALIDDATA
E_OUTOFMEMORY

動作環境

  ヘッダー : D3dx8core.h で宣言。
  インポート ライブラリ : D3dx8.lib を使用。