次の方法で共有


ID3DXFragmentLinker::LinkShader メソッド

ID3DXFragmentLinker::LinkShader メソッド

コンパイルされたシェーダを実行時にリンクする。この処理は非常に軽量である。

構文

HRESULT LinkShader(      
    LPCSTR Target,
    DWORD Flags,
    LPD3DXHANDLE rgFragmentHandles,
    UINT cFragments,
    LPD3DXBUFFER* ppBuffer,
    LPD3DXBUFFER *ppErrorMsgs
);

パラメータ

  • Target
    [in] 頂点シェーダのコンパイル ターゲット。コンパイル ターゲットは、シェーダのタイプとシェーダのバージョン番号で構成される。有効なターゲットは、vs_1_1、vs_2_0、vs_2_x、および vs_2_sw である。
  • Flags
    [in] リンク オプション。「D3DXSHADER」を参照すること。
  • rgFragmentHandles
    [in] フラグメントに対する一意の識別子。「ハンドル」を参照すること。
  • cFragments
    [in] リンクするフラグメントの数。
  • ppBuffer
    [out] コンパイルされたシェーダ コードを格納するバッファへのポインタ。「ID3DXBuffer」を参照すること。
  • ppErrorMsgs
    [out, retval] 発生した最初のコンパイル エラー メッセージを必ず含むバッファ。これには、エフェクトのコンパイル エラーと上位レベル言語のコンパイル エラーが含まれる。バッファへのアクセスの詳細については、「ID3DXBuffer」を参照すること。

戻り値

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

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

E_FAIL Microsoft® Direct3D® サブシステム内で原因不明のエラーが発生した。
D3DERR_INVALIDCALL メソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。
D3DXERR_INVALIDDATA データが無効である。
E_OUTOFMEMORY Direct3D が呼び出しを完了するための十分なメモリを割り当てることができなかった。