Método ID3D11Device::CreateGeometryShaderWithStreamOutput (d3d11.h)
Crea un sombreador de geometría que puede escribir en búferes de salida de streaming.
Sintaxis
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
);
Parámetros
[in] pShaderBytecode
Tipo: const void*
Puntero al sombreador de geometría compilado para un sombreador de geometría estándar más salida de flujo. Para obtener información sobre cómo obtener este puntero, vea Obtener un puntero a un sombreador compilado.
Para crear la salida del flujo sin usar un sombreador de geometría, pase un puntero a la firma de salida de la fase anterior. Para obtener esta firma de salida, llame a la función del compilador D3DGetOutputSignatureBlob . También puede pasar un puntero al sombreador compilado para la fase anterior (por ejemplo, la fase del sombreador de vértices o de sombreador de dominio). Este sombreador compilado proporciona la firma de salida para los datos.
[in] BytecodeLength
Tipo: SIZE_T
Tamaño del sombreador de geometría compilado.
[in, optional] pSODeclaration
Tipo: const D3D11_SO_DECLARATION_ENTRY*
Puntero a una matriz de D3D11_SO_DECLARATION_ENTRY . No puede ser NULL si NumEntries > 0.
[in] NumEntries
Tipo: UINT
Número de entradas de la declaración de salida del flujo ( oscila entre 0 y D3D11_SO_STREAM_COUNT * D3D11_SO_OUTPUT_COMPONENT_COUNT ).
[in, optional] pBufferStrides
Tipo: const UINT*
Matriz de pasos de búfer; cada paso es el tamaño de un elemento para ese búfer.
[in] NumStrides
Tipo: UINT
Número de pasos (o búferes) en pBufferStrides (oscila entre 0 y D3D11_SO_BUFFER_SLOT_COUNT).
[in] RasterizedStream
Tipo: UINT
Número de índice de la secuencia que se va a enviar a la fase de rasterizador (oscila entre 0 y D3D11_SO_STREAM_COUNT - 1). Establézcalo en D3D11_SO_NO_RASTERIZED_STREAM si no se va a rasterizar ninguna secuencia.
[in, optional] pClassLinkage
Tipo: ID3D11ClassLinkage*
Puntero a una interfaz de vinculación de clases (vea ID3D11ClassLinkage); el valor puede ser NULL.
[out, optional] ppGeometryShader
Tipo: ID3D11GeometryShader**
Dirección de un puntero a una interfaz ID3D11GeometryShader , que representa el sombreador de geometría que se creó. Establézcalo en NULL para validar los demás parámetros; si se supera la validación, el método devolverá S_FALSE en lugar de S_OK.
Valor devuelto
Tipo: HRESULT
Este método devuelve uno de los códigos de retorno de Direct3D 11.
Comentarios
Para obtener más información sobre el uso de CreateGeometryShaderWithStreamOutput, vea Crear un objeto Geometry-Shader con Stream salida.
El entorno de ejecución de Direct3D 11.1, que está disponible a partir de Windows 8, proporciona la siguiente nueva funcionalidad para CreateGeometryShaderWithStreamOutput.
Las siguientes instrucciones del modelo de sombreador 5.0 están disponibles solo para sombreadores de píxeles y sombreadores de proceso en el entorno de ejecución de Direct3D 11.0. Para el entorno de ejecución de Direct3D 11.1, porque las vistas de acceso desordenadas (UAV) están disponibles en todas las fases del sombreador, puede usar estas instrucciones en todas las fases del sombreador.
Por lo tanto, si usa las siguientes instrucciones del modelo de sombreador 5.0 en un sombreador de geometría, puede pasar correctamente el sombreador de geometría compilado a pShaderBytecode. Es decir, la llamada a CreateGeometryShaderWithStreamOutput se realiza correctamente.
Si pasa un sombreador compilado a pShaderBytecode que usa cualquiera de las siguientes instrucciones en un dispositivo que no admite UMV en cada fase del sombreador (incluidos los controladores existentes que no se implementan para admitir UMV en cada fase del sombreador), se produce un error en CreateGeometryShaderWithStreamOutput . CreateGeometryShaderWithStreamOutput también produce un error si el sombreador intenta usar una ranura UAV más allá del conjunto de ranuras UAV que admite el 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
- Todos los atómicos e inmediatos (por ejemplo, atomic_and y imm_atomic_and)
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | d3d11.h |
Library | D3D11.lib |