Método ID3D10Device::CreateInputLayout (d3d10.h)
Cree un objeto de diseño de entrada para describir los datos del búfer de entrada para la fase del ensamblador de entrada.
Sintaxis
HRESULT CreateInputLayout(
[in] const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
[in] UINT NumElements,
[in] const void *pShaderBytecodeWithInputSignature,
[in] SIZE_T BytecodeLength,
[out] ID3D10InputLayout **ppInputLayout
);
Parámetros
[in] pInputElementDescs
Tipo: const D3D10_INPUT_ELEMENT_DESC*
Matriz de los tipos de datos de entrada de la fase de ensamblador de entrada; cada tipo se describe mediante una descripción del elemento (vea D3D10_INPUT_ELEMENT_DESC).
[in] NumElements
Tipo: UINT
Número de tipos de datos de entrada en la matriz de elementos de entrada.
[in] pShaderBytecodeWithInputSignature
Tipo: const void*
Puntero al sombreador compilado. Para obtener este puntero, consulte Obtención de un puntero a un sombreador compilado. El código del sombreador compilado contiene una firma de entrada que se valida con la matriz de elementos. Vea Notas.
[in] BytecodeLength
Tipo: SIZE_T
Tamaño del sombreador compilado.
[out] ppInputLayout
Tipo: ID3D10InputLayout**
Puntero al objeto de diseño de entrada creado (vea ID3D10InputLayout Interface). Para validar los demás parámetros de entrada, establezca este puntero en NULL y compruebe que el método devuelve S_FALSE.
Valor devuelto
Tipo: HRESULT
Si el método se realiza correctamente, el código devuelto se S_OK. Consulta Códigos de retorno de Direct3D 10 para ver los códigos de error con errores.
Comentarios
Después de crear un objeto de diseño de entrada, debe enlazarse a la fase del ensamblador de entrada antes de llamar a una API draw. Consulta Introducción con la fase de Input-Assembler (Direct3D 10) para obtener código de ejemplo.
Una vez creado un objeto de diseño de entrada a partir de una firma de sombreador, el objeto de diseño de entrada se puede reutilizar con cualquier otro sombreador que tenga una firma de entrada idéntica (semántica incluida). Esto puede simplificar la creación de objetos de diseño de entrada cuando se trabaja con muchos sombreadores con entradas idénticas.
Si un tipo de datos de la declaración de diseño de entrada no coincide con el tipo de datos de una firma de entrada de sombreador, CreateInputLayout generará una advertencia durante la compilación. La advertencia es simplemente llamar la atención sobre el hecho de que los datos se pueden reinterpretar cuando se leen desde un registro. Puede omitir esta advertencia (si la reinterpretación es intencionada) o hacer que los tipos de datos coincidan en ambas declaraciones para eliminar la advertencia. En la introducción a las reglas de conversión de datos se describen las reglas aplicadas para la conversión de tipos de datos.
Diferencias entre Direct3D 9 y Direct3D 10: Asignar los datos de vértices a las entradas del sombreador con un diseño de entrada es una nueva forma de hacer cosas en Direct3D 10 que mejora el rendimiento. En Direct3D 10, los datos de vértices se asignan a las entradas del sombreador cuando se crea el objeto de diseño de entrada, mientras que en Direct3D 9, esta asignación se realizó en Draw time en función de las declaraciones de vértices enlazadas actualmente, los búferes de vértices y los sombreadores de vértices. Al realizar esta asignación cuando se crea el objeto de diseño de entrada, se reduce o se elimina el trabajo de vinculación adicional para los controladores en tiempo de dibujo, ya que esta nueva asignación ya no es necesaria. |
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d10.h |
Library | D3D10.lib |