ID3D11Device::CreateGeometryShaderWithStreamOutput method (d3d11.h)

Membuat shader geometri yang dapat menulis ke buffer output streaming.

Sintaks

HRESULT CreateGeometryShaderWithStreamOutput(
  [in]            const void                       *pShaderBytecode,
  [in]            SIZE_T                           BytecodeLength,
  [in, optional]  const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
  [in]            UINT                             NumEntries,
  [in, optional]  const UINT                       *pBufferStrides,
  [in]            UINT                             NumStrides,
  [in]            UINT                             RasterizedStream,
  [in, optional]  ID3D11ClassLinkage               *pClassLinkage,
  [out, optional] ID3D11GeometryShader             **ppGeometryShader
);

Parameter

[in] pShaderBytecode

Jenis: const void*

Penunjuk ke shader geometri yang dikompilasi untuk shader geometri standar ditambah output aliran. Untuk informasi tentang cara mendapatkan pointer ini, lihat Mendapatkan Pointer ke Shader yang Dikompilasi.

Untuk membuat output aliran tanpa menggunakan shader geometri, teruskan penunjuk ke tanda tangan output untuk tahap sebelumnya. Untuk mendapatkan tanda tangan output ini, panggil fungsi pengkompilasi D3DGetOutputSignatureBlob . Anda juga dapat meneruskan penunjuk ke shader yang dikompilasi untuk tahap sebelumnya (misalnya, tahap vertex-shader atau tahap domain-shader). Shader yang dikompilasi ini menyediakan tanda tangan output untuk data.

[in] BytecodeLength

Jenis: SIZE_T

Ukuran shader geometri yang dikompilasi.

[in, optional] pSODeclaration

Jenis: const D3D11_SO_DECLARATION_ENTRY*

Penunjuk ke array D3D11_SO_DECLARATION_ENTRY . Tidak boleh NULL jika NumEntries > 0.

[in] NumEntries

Jenis: UINT

Jumlah entri dalam deklarasi output aliran ( berkisar dari 0 hingga D3D11_SO_STREAM_COUNT * D3D11_SO_OUTPUT_COMPONENT_COUNT ).

[in, optional] pBufferStrides

Jenis: const UINT*

Array langkah buffer; setiap langkah adalah ukuran elemen untuk buffer tersebut.

[in] NumStrides

Jenis: UINT

Jumlah langkah (atau buffer) dalam pBufferStrides (berkisar dari 0 hingga D3D11_SO_BUFFER_SLOT_COUNT).

[in] RasterizedStream

Jenis: UINT

Jumlah indeks aliran yang akan dikirim ke tahap rasterizer (berkisar antara 0 hingga D3D11_SO_STREAM_COUNT - 1). Atur ke D3D11_SO_NO_RASTERIZED_STREAM jika tidak ada aliran yang akan dirasterisasi.

[in, optional] pClassLinkage

Jenis: ID3D11ClassLinkage*

Penunjuk ke antarmuka tautan kelas (lihat ID3D11ClassLinkage); nilainya bisa NULL.

[out, optional] ppGeometryShader

Jenis: ID3D11GeometryShader**

Alamat penunjuk ke antarmuka ID3D11GeometryShader , mewakili shader geometri yang dibuat. Atur ini ke NULL untuk memvalidasi parameter lain; jika validasi lolos, metode akan mengembalikan S_FALSE alih-alih S_OK.

Mengembalikan nilai

Jenis: HRESULT

Metode ini mengembalikan salah satu Kode Pengembalian Direct3D 11.

Keterangan

Untuk informasi selengkapnya tentang menggunakan CreateGeometryShaderWithStreamOutput, lihat Membuat Objek Geometry-Shader dengan Output Stream.

Runtime Direct3D 11.1, yang tersedia dimulai dengan Windows 8, menyediakan fungsionalitas baru berikut untuk CreateGeometryShaderWithStreamOutput.

Instruksi model shader 5.0 berikut tersedia hanya untuk shader piksel dan shader komputasi dalam runtime Direct3D 11.0. Untuk runtime Direct3D 11.1, karena tampilan akses tidak berurutan (UAV) tersedia di semua tahap shader, Anda dapat menggunakan instruksi ini di semua tahap shader.

Oleh karena itu, jika Anda menggunakan instruksi model shader 5.0 berikut dalam shader geometri, Anda dapat berhasil meneruskan shader geometri yang dikompilasi ke pShaderBytecode. Artinya, panggilan ke CreateGeometryShaderWithStreamOutput berhasil.

Jika Anda meneruskan shader yang dikompilasi ke pShaderBytecode yang menggunakan salah satu instruksi berikut pada perangkat yang tidak mendukung UAV di setiap tahap shader (termasuk driver yang ada yang tidak diimplementasikan untuk mendukung UAV di setiap tahap shader), CreateGeometryShaderWithStreamOutput gagal. CreateGeometryShaderWithStreamOutput juga gagal jika shader mencoba menggunakan slot UAV di luar set slot UAV yang didukung perangkat keras.

Windows Phone 8: API ini didukung.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header d3d11.h
Pustaka D3D11.lib

Lihat juga

ID3D11Device