METODE ID3D10Device::CreateInputLayout (d3d10.h)

Buat objek input-layout untuk menjelaskan data input-buffer untuk tahap input-assembler.

Sintaks

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

Parameter

[in] pInputElementDescs

Jenis: const D3D10_INPUT_ELEMENT_DESC*

Array jenis data input-assembler stage input; setiap jenis dijelaskan oleh deskripsi elemen (lihat D3D10_INPUT_ELEMENT_DESC).

[in] NumElements

Jenis: UINT

Jumlah jenis input-data dalam array elemen input.

[in] pShaderBytecodeWithInputSignature

Jenis: const void*

Penunjuk ke shader yang dikompilasi. Untuk mendapatkan pointer ini, lihat Mendapatkan Pointer ke Shader yang Dikompilasi. Kode shader yang dikompilasi berisi tanda tangan input yang divalidasi terhadap array elemen. Lihat keterangan.

[in] BytecodeLength

Jenis: SIZE_T

Ukuran shader yang dikompilasi.

[out] ppInputLayout

Jenis: ID3D10InputLayout**

Penunjuk ke objek tata letak input yang dibuat (lihat ID3D10InputLayout Interface). Untuk memvalidasi parameter input lainnya, atur penunjuk ini menjadi NULL dan verifikasi bahwa metode mengembalikan S_FALSE.

Menampilkan nilai

Jenis: HRESULT

Jika metode berhasil, kode pengembalian S_OK. Lihat Kode Pengembalian Direct3D 10 untuk kode kesalahan yang gagal.

Keterangan

Setelah membuat objek tata letak input, objek harus terikat ke tahap perakitan input sebelum memanggil API gambar. Lihat Memulai tahap Input-Assembler (Direct3D 10) misalnya kode.

Setelah objek input-layout dibuat dari tanda tangan shader, objek input-layout dapat digunakan kembali dengan shader lain yang memiliki tanda tangan input yang identik (termasuk semantik). Ini dapat menyederhanakan pembuatan objek input-layout saat Anda bekerja dengan banyak shader dengan input yang identik.

Jika jenis data dalam deklarasi tata letak input tidak cocok dengan jenis data dalam tanda tangan shader-input, CreateInputLayout akan menghasilkan peringatan selama kompilasi. Peringatannya hanya untuk menarik perhatian pada fakta bahwa data dapat diinterpretasikan kembali saat dibaca dari register. Anda dapat mengacuhkan peringatan ini (jika penginterpretasi ulang disengaja) atau membuat jenis data cocok di kedua deklarasi untuk menghilangkan peringatan. Gambaran umum Aturan Konversi Data menjelaskan aturan yang diterapkan untuk konversi jenis data.

Perbedaan antara Direct3D 9 dan Direct3D 10:

Memetakan data vertex ke input shader dengan tata letak input adalah cara baru untuk melakukan hal-hal di Direct3D 10 yang meningkatkan performa.

Di Direct3D 10, data vertex dipetakan ke input shader ketika objek tata letak input dibuat, sedangkan di Direct3D 9 pemetaan ini dilakukan pada waktu Draw berdasarkan deklarasi vertex yang saat ini terikat, buffer vertex, dan shader vertex. Melakukan pemetaan ini ketika objek tata letak input dibuat mengurangi atau menghilangkan pekerjaan tautan tambahan untuk driver pada waktu Draw karena pemetaan ulang ini tidak lagi diperlukan.

Persyaratan

   
Target Platform Windows
Header d3d10.h
Pustaka D3D10.lib

Lihat juga

ID3D10Device Interface