Método ID3D10Device::CreateInputLayout (d3d10.h)
Crie um objeto de layout de entrada para descrever os dados de buffer de entrada para o estágio input-assembler.
Sintaxe
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*
Uma matriz dos tipos de dados de entrada de estágio do assembler de entrada; cada tipo é descrito por uma descrição de elemento (consulte D3D10_INPUT_ELEMENT_DESC).
[in] NumElements
Tipo: UINT
O número de tipos de dados de entrada na matriz de elementos de entrada.
[in] pShaderBytecodeWithInputSignature
Tipo: const void*
Um ponteiro para o sombreador compilado. Para obter esse ponteiro, consulte Obtendo um ponteiro para um sombreador compilado. O código do sombreador compilado contém uma assinatura de entrada validada na matriz de elementos. Consulte Observações.
[in] BytecodeLength
Tipo: SIZE_T
Tamanho do sombreador compilado.
[out] ppInputLayout
Tipo: ID3D10InputLayout**
Um ponteiro para o objeto de layout de entrada criado (consulte Interface ID3D10InputLayout). Para validar os outros parâmetros de entrada, defina esse ponteiro como NULL e verifique se o método retorna S_FALSE.
Valor retornado
Tipo: HRESULT
Se o método for bem-sucedido, o código de retorno será S_OK. Consulte Códigos de retorno do Direct3D 10 para obter códigos de erro com falha.
Comentários
Depois de criar um objeto de layout de entrada, ele deve ser associado ao estágio input-assembler antes de chamar uma API de desenho. Consulte Introdução com o Input-Assembler Stage (Direct3D 10) para obter o código de exemplo.
Depois que um objeto de layout de entrada é criado a partir de uma assinatura de sombreador, o objeto de layout de entrada pode ser reutilizado com qualquer outro sombreador que tenha uma assinatura de entrada idêntica (semântica incluída). Isso pode simplificar a criação de objetos de layout de entrada quando você estiver trabalhando com muitos sombreadores com entradas idênticas.
Se um tipo de dados na declaração de layout de entrada não corresponder ao tipo de dados em uma assinatura de entrada de sombreador, CreateInputLayout gerará um aviso durante a compilação. O aviso é simplesmente chamar a atenção para o fato de que os dados podem ser reinterpretados quando lidos de um registro. Você pode ignorar esse aviso (se a reinterpretação for intencional) ou fazer com que os tipos de dados correspondam em ambas as declarações para eliminar o aviso. A visão geral das Regras de Conversão de Dados descreve as regras aplicadas à conversão de tipo de dados.
Diferenças entre o Direct3D 9 e o Direct3D 10: Mapear os dados de vértice para as entradas do sombreador com um layout de entrada é uma nova maneira de fazer coisas no Direct3D 10 que melhora o desempenho. No Direct3D 10, os dados de vértice são mapeados para as entradas do sombreador quando o objeto de layout de entrada é criado, enquanto no Direct3D 9 esse mapeamento foi feito em Tempo de desenho com base nas declarações de vértice associadas no momento, buffers de vértice e sombreadores de vértice. Fazer esse mapeamento quando o objeto de layout de entrada é criado reduz ou elimina o trabalho de vinculação extra para drivers em Tempo de desenho porque esse novo mapeamento não é mais necessário. |
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | d3d10.h |
Biblioteca | D3D10.lib |