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.
- dcl_uav_typed
- dcl_uav_raw
- dcl_uav_structured
- ld_raw
- ld_structured
- ld_uav_typed
- store_raw
- store_structured
- store_uav_typed
- sync_uglobal
- Semua atomik dan atom langsung (misalnya, atomic_and dan imm_atomic_and)
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | d3d11.h |
Pustaka | D3D11.lib |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk