Metodo ID3D11Device::CreateGeometryShaderWithStreamOutput (d3d11.h)
Crea uno shader geometry in grado di scrivere nei buffer di output di streaming.
Sintassi
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
);
Parametri
[in] pShaderBytecode
Tipo: const void*
Puntatore allo shader geometry compilato per uno shader geometry shader standard più output del flusso. Per informazioni su come ottenere questo puntatore, vedi Recupero di un puntatore a uno shader compilato.
Per creare l'output del flusso senza usare uno shader geometry, passare un puntatore alla firma di output per la fase precedente. Per ottenere questa firma di output, chiamare la funzione del compilatore D3DGetOutputSignatureBlob . È anche possibile passare un puntatore allo shader compilato per la fase precedente, ad esempio la fase vertex-shader o la fase domain-shader. Questo shader compilato fornisce la firma di output per i dati.
[in] BytecodeLength
Tipo: SIZE_T
Dimensioni dello shader geometry compilato.
[in, optional] pSODeclaration
Tipo: const D3D11_SO_DECLARATION_ENTRY*
Puntatore a una matrice di D3D11_SO_DECLARATION_ENTRY . Non può essere NULL se NumEntries > 0.
[in] NumEntries
Tipo: UINT
Numero di voci nella dichiarazione di output del flusso ( compreso tra 0 e D3D11_SO_STREAM_COUNT * D3D11_SO_OUTPUT_COMPONENT_COUNT ).
[in, optional] pBufferStrides
Tipo: const UINT*
Una matrice di passi del buffer; ogni stride è la dimensione di un elemento per tale buffer.
[in] NumStrides
Tipo: UINT
Numero di passi (o buffer) in pBufferStrides (compreso tra 0 e D3D11_SO_BUFFER_SLOT_COUNT).
[in] RasterizedStream
Tipo: UINT
Numero di indice del flusso da inviare alla fase di rasterizzazione (compreso tra 0 e D3D11_SO_STREAM_COUNT - 1). Impostare su D3D11_SO_NO_RASTERIZED_STREAM se non deve essere rasterizzato alcun flusso.
[in, optional] pClassLinkage
Tipo: ID3D11ClassLinkage*
Puntatore a un'interfaccia di collegamento di classe (vedere ID3D11ClassLinkage); il valore può essere NULL.
[out, optional] ppGeometryShader
Tipo: ID3D11GeometryShader**
Indirizzo di un puntatore a un'interfaccia ID3D11GeometryShader che rappresenta lo shader geometry creato. Impostare questo valore su NULL per convalidare gli altri parametri; se la convalida viene superata, il metodo restituirà S_FALSE anziché S_OK.
Valore restituito
Tipo: HRESULT
Questo metodo restituisce uno dei codici restituiti Direct3D 11.
Commenti
Per altre info sull'uso di CreateGeometryShaderWithStreamOutput, vedi Creare un oggetto Geometry-Shader con Stream Output.
Il runtime di Direct3D 11.1, disponibile a partire da Windows 8, offre le nuove funzionalità seguenti per CreateGeometryShaderWithStreamOutput.
Le istruzioni del modello di shader 5.0 seguenti sono disponibili solo per pixel shader e compute shader nel runtime di Direct3D 11.0. Per il runtime direct3D 11.1, poiché le visualizzazioni di accesso non ordinato sono disponibili in tutte le fasi dello shader, è possibile usare queste istruzioni in tutte le fasi dello shader.
Pertanto, se si usano le istruzioni del modello di shader 5.0 seguenti in un geometry shader, è possibile passare correttamente lo shader geometry compilato a pShaderBytecode. Ovvero, la chiamata a CreateGeometryShaderWithStreamOutput ha esito positivo.
Se si passa uno shader compilato a pShaderBytecode che usa una delle istruzioni seguenti in un dispositivo che non supporta UAV in ogni fase dello shader (inclusi i driver esistenti che non vengono implementati per supportare UAV in ogni fase dello shader), CreateGeometryShaderWithStreamOutput ha esito negativo. CreateGeometryShaderWithStreamOutput ha esito negativo anche se lo shader tenta di usare uno slot UAV oltre il set di slot UAV supportati dall'hardware.
- 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
- Tutte le atomiche e le atomiche immediate (ad esempio, atomic_and e imm_atomic_and)
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | d3d11.h |
Libreria | D3D11.lib |