ID3D10Device::CreateInputLayout メソッド (d3d10.h)

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

構文

HRESULT CreateInputLayout(
  [in]  const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
  [in]  UINT                           NumElements,
  [in]  const void                     *pShaderBytecodeWithInputSignature,
  [in]  SIZE_T                         BytecodeLength,
  [out] ID3D10InputLayout              **ppInputLayout
);

パラメーター

[in] pInputElementDescs

型: const D3D10_INPUT_ELEMENT_DESC*

入力アセンブラー ステージ入力データ型の配列。各型は、要素の説明によって記述されます ( D3D10_INPUT_ELEMENT_DESCを参照)。

[in] NumElements

型: UINT

入力要素の配列内の入力データ型の数。

[in] pShaderBytecodeWithInputSignature

型: const void*

コンパイルされたシェーダーへのポインター。 このポインターを取得するには、「 コンパイル済みシェーダーへのポインターの取得」を参照してください。 コンパイルされたシェーダー コードには、要素の配列に対して検証される 入力シグネチャ が含まれています。 「解説」を参照してください。

[in] BytecodeLength

種類: SIZE_T

コンパイルされたシェーダーのサイズ。

[out] ppInputLayout

種類: ID3D10InputLayout**

作成された入力レイアウト オブジェクトへのポインター ( 「ID3D10InputLayout インターフェイス」を参照)。 他の入力パラメーターを検証するには、このポインターを NULL に設定し、メソッドがS_FALSEを返すかどうかを確認します。

戻り値

種類: HRESULT

メソッドが成功した場合、戻りコードはS_OK。 失敗したエラー コードについては、「 Direct3D 10 リターン コード 」を参照してください。

解説

入力レイアウト オブジェクトを作成した後、描画 API を呼び出す前に、入力アセンブラー ステージにバインドする必要があります。 コード例については、「Input-Assembler ステージ (Direct3D 10) を使用したはじめに」を参照してください。

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

入力レイアウト宣言のデータ型がシェーダー入力シグネチャのデータ型と一致しない場合、CreateInputLayout はコンパイル中に警告を生成します。 警告は、レジスタからの読み取り時にデータが再解釈される可能性があるという事実に注意を払うだけです。 この警告を無視するか (再解釈が意図的な場合)、両方の宣言でデータ型を一致させ、警告を排除できます。 データ変換ルールの概要では、データ型変換に適用されるルールについて説明します。

Direct3D 9 と Direct3D 10 の違い:

入力レイアウトを使用して頂点データをシェーダー入力にマッピングすることは、Direct3D 10 でパフォーマンスを向上させる新しい方法です。

Direct3D 10 では、入力レイアウト オブジェクトの作成時に頂点データがシェーダー入力にマップされますが、Direct3D 9 では、このマッピングは現在バインドされている頂点宣言、頂点バッファー、頂点シェーダーに基づいて描画時に行われました。 入力レイアウト オブジェクトが作成されたときにこのマッピングを実行すると、描画時にドライバーの追加のリンケージ作業が削減または排除されます。これは、この再マッピングは不要になるためです。

必要条件

   
対象プラットフォーム Windows
ヘッダー d3d10.h
Library D3D10.lib

関連項目

ID3D10Device インターフェイス