Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
Referencia de la clase InputLayout

Encapsula un ID3D11InputLayout que describe el formato de los vértices para el pipeline de entrada. Más...

#include <InputLayout.h>

Métodos públicos

void destroy ()
 Libera el recurso ID3D11InputLayout y deja la instancia en estado no inicializado.
 
HRESULT init (Device &device, const D3D11_INPUT_ELEMENT_DESC *layoutDesc, UINT layoutCount, ID3DBlob *vertexShaderData)
 Inicializa el Input Layout a partir de una descripción y bytecode de Vertex Shader.
 
 InputLayout ()=default
 Constructor por defecto.
 
void render (DeviceContext &deviceContext)
 Aplica el Input Layout al contexto de dispositivo.
 
void update ()
 Actualiza parámetros internos del Input Layout.
 
 ~InputLayout ()=default
 Destructor por defecto.
 

Atributos públicos

ID3D11InputLayout * m_inputLayout = nullptr
 Recurso COM de Direct3D 11 que representa el Input Layout.
 

Descripción detallada

Un Input Layout en Direct3D 11 define cómo se interpretan los datos de un Vertex Buffer (posición, normales, UVs, colores, etc.) y cómo se asignan a las entradas de un Vertex Shader.

Esta clase administra la creación, uso y destrucción del recurso ID3D11InputLayout.

Definición en la línea 21 del archivo InputLayout.h.

Documentación de constructores y destructores

◆ InputLayout()

InputLayout::InputLayout ( )
default

◆ ~InputLayout()

InputLayout::~InputLayout ( )
default

No libera automáticamente el recurso COM; llamar a destroy().

Documentación de funciones miembro

◆ destroy()

void InputLayout::destroy ( )

Idempotente: puede llamarse múltiples veces de forma segura.

Postcondición
m_inputLayout == nullptr.

Definición en la línea 56 del archivo InputLayout.cpp.

Hace referencia a m_inputLayout y SAFE_RELEASE.

Referenciado por ShaderProgram::destroy().

◆ init()

HRESULT InputLayout::init ( Device device,
const D3D11_INPUT_ELEMENT_DESC *  layoutDesc,
UINT  layoutCount,
ID3DBlob *  vertexShaderData 
)

Crea un ID3D11InputLayout utilizando un arreglo de D3D11_INPUT_ELEMENT_DESC y el bytecode compilado de un Vertex Shader que define la firma de entrada.

Parámetros
deviceDispositivo con el que se crea el recurso.
LayoutVector con la descripción de los elementos de entrada (semánticas, formato, offset, etc.).
VertexShaderDataBytecode compilado del Vertex Shader que contiene la firma de entrada.
Devuelve
S_OK si la creación fue exitosa; código HRESULT en caso de error.
Postcondición
Si retorna S_OK, m_inputLayout != nullptr.

Definición en la línea 11 del archivo InputLayout.cpp.

Hace referencia a Device::CreateInputLayout(), ERROR y m_inputLayout.

Referenciado por ShaderProgram::CreateInputLayout().

◆ render()

void InputLayout::render ( DeviceContext deviceContext)

Asigna el ID3D11InputLayout al pipeline gráfico a través de ID3D11DeviceContext::IASetInputLayout.

Parámetros
deviceContextContexto donde se establecerá el Input Layout.
Precondición
m_inputLayout debe haberse creado con init().

Definición en la línea 46 del archivo InputLayout.cpp.

Hace referencia a ERROR, DeviceContext::m_deviceContext y m_inputLayout.

Referenciado por ShaderProgram::render().

◆ update()

void InputLayout::update ( )

Método de marcador, útil si en el futuro se desea recrear o modificar dinámicamente el Input Layout.

Nota
Actualmente no realiza ninguna operación.

Definición en la línea 41 del archivo InputLayout.cpp.

Documentación de datos miembro

◆ m_inputLayout

ID3D11InputLayout* InputLayout::m_inputLayout = nullptr

Válido tras init(); nullptr después de destroy().

Definición en la línea 93 del archivo InputLayout.h.

Referenciado por destroy(), init(), render() y ShaderProgram::render().


La documentación de esta clase está generada de los siguientes archivos: