ID3D11Device::CreateInputLayout

入力アセンブラー ステージで使用される入力バッファー データを記述するための入力レイアウト オブジェクトを作成します。

HRESULT 
CreateInputLayout(
  const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
  UINT NumElements,
  const void *pShaderBytecodeWithInputSignature,
  SIZE_T BytecodeLength,
  ID3D11InputLayout **ppInputLayout
);

パラメータ

  • pInputElementDescs
    入力アセンブラー ステージの入力データ型の配列です。各データ型は要素の記述によって示されます (「D3D11_INPUT_ELEMENT_DESC」を参照してください)。
  • NumElements
    入力要素の配列内の入力データ型の数です。
  • pShaderBytecodeWithInputSignature
    コンパイル済みシェーダーへのポインターです。コンパイル済みシェーダー コードには、要素の配列との比較で検証される入力シグネチャが格納されます。「解説」を参照してください。
  • BytecodeLength
    コンパイル済みシェーダーのサイズです。
  • ppInputLayout
    作成される入力レイアウト オブジェクトへのポインターです (「ID3D11InputLayout」を参照してください)。他の入力パラメーターを検証するには、このポインターを NULL に設定して、メソッドから S_FALSE が返されることを確認します。

戻り値

メソッドが正常終了した場合、リターン コードは S_OK です。失敗した場合のエラー コードについては、「Direct3D 11 のリターン コード」を参照してください。

解説 

作成した入力レイアウト オブジェクトは、描画 API を呼び出す前に入力アセンブラー ステージにバインドする必要があります。

シェーダー シグネチャから入力レイアウト オブジェクトが作成されると、同じ入力シグネチャ (セマンティクスを含む) を持つ他のシェーダーでこの入力レイアウト オブジェクトを再使用できます。これによって、同じ入力を持つ多数のシェーダーを使用する場合に、入力レイアウト オブジェクトの作成が簡素化されます。

入力レイアウト宣言のデータ型がシェーダー入力シグネチャのデータ型と一致しない場合、コンパイル時に CreateInputLayout に関する警告が生成されます。この警告は、単にレジスタからの読み込み時にデータが再解釈される可能性があることに注意を向けるためのものです。再解釈が意図的な場合、この警告は無視することができます。また、両方の宣言でデータ型を一致させて警告を解消することもできます。

要件

ヘッダー: D3D11.h 宣言

ライブラリ: D3D11.lib 内容

関連項目

ID3D11Device