Compartir a través de


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.

Windows Phone 8: se admite esta API.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d3d11.h
Library D3D11.lib

Consulte también

ID3D11Device