Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
InputLayout.cpp
Ir a la documentación de este archivo.
1
6#include "InputLayout.h"
7#include "Device.h"
8#include "DeviceContext.h"
9
10HRESULT
12 const D3D11_INPUT_ELEMENT_DESC* layoutDesc,
13 UINT layoutCount,
14 ID3DBlob* vertexShaderData)
15{
16 if (!layoutDesc || layoutCount == 0) {
17 ERROR("InputLayout", "init", "Layout descriptor is empty.");
18 return E_INVALIDARG;
19 }
20
21 if (!vertexShaderData) {
22 ERROR("InputLayout", "init", "VertexShaderData is nullptr.");
23 return E_POINTER;
24 }
25
26 HRESULT hr = device.CreateInputLayout(layoutDesc, layoutCount,
27 vertexShaderData->GetBufferPointer(),
28 vertexShaderData->GetBufferSize(),
30
31 if (FAILED(hr)) {
32 ERROR("InputLayout", "init",
33 ("Failed to create InputLayout. HRESULT: " + std::to_string(hr)).c_str());
34 return hr;
35 }
36
37 return S_OK;
38}
39
40void
42 // Método vacío, se puede utilizar en caso de necesitar cambios dinámicos en el layout
43}
44
45void
47 if (!m_inputLayout) {
48 ERROR("InputLayout", "render", "InputLayout is nullptr");
49 return;
50 }
51
52 deviceContext.m_deviceContext->IASetInputLayout(m_inputLayout);
53}
54
55void
59
60
Declara la API de DeviceContext dentro del subsistema Core.
Declara la API de Device dentro del subsistema Core.
Declara la API de InputLayout dentro del subsistema Core.
#define SAFE_RELEASE(x)
#define ERROR(classObj, method, errorMSG)
ID3D11DeviceContext * m_deviceContext
Puntero al contexto inmediato de Direct3D 11.
Encapsula un ID3D11Device y facilita la creación de recursos gráficos en Direct3D 11.
Definition Device.h:21
HRESULT CreateInputLayout(const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs, unsigned int NumElements, const void *pShaderBytecodeWithInputSignature, unsigned int BytecodeLength, ID3D11InputLayout **ppInputLayout)
Crea un Input Layout.
Definition Device.cpp:133
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.
ID3D11InputLayout * m_inputLayout
Recurso COM de Direct3D 11 que representa el Input Layout.
Definition InputLayout.h:93
void update()
Actualiza parámetros internos del Input Layout.
void render(DeviceContext &deviceContext)
Aplica el Input Layout al contexto de dispositivo.