Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
Buffer.h
Ir a la documentación de este archivo.
1
6#pragma once
7#include "Prerequisites.h"
8#include "MeshComponent.h"
9
10class Device;
11class DeviceContext;
12
27class
28Buffer {
29public:
33 Buffer() = default;
34
39 ~Buffer() = default;
40
55 HRESULT
56 init(Device& device, const MeshComponent& mesh, unsigned int bindFlag);
57
70 HRESULT
71 init(Device& device, unsigned int ByteWidth);
72
89 void
90 update(DeviceContext& deviceContext,
91 ID3D11Resource* pDstResource,
92 unsigned int DstSubresource,
93 const D3D11_BOX* pDstBox,
94 const void* pSrcData,
95 unsigned int SrcRowPitch,
96 unsigned int SrcDepthPitch);
97
115 void
116 render(DeviceContext& deviceContext,
117 unsigned int StartSlot,
118 unsigned int NumBuffers,
119 bool setPixelShader = false,
120 DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN);
121
129 void
130 destroy();
131
142 HRESULT
143 createBuffer(Device& device,
144 D3D11_BUFFER_DESC& desc,
145 D3D11_SUBRESOURCE_DATA* initData);
146
147public:
148 ID3D11Buffer* m_buffer = nullptr;
149private:
158 unsigned int m_stride = 0;
159
164 unsigned int m_offset = 0;
165
169 unsigned int m_bindFlag = 0;
170};
171
172
Declara la API de MeshComponent dentro del subsistema Core.
Declara la API de Prerequisites dentro del subsistema Core.
Encapsula un ID3D11Buffer para vértices, índices o constantes, incluyendo creación, actualización y enlace.
Definition Buffer.h:28
unsigned int m_offset
Desplazamiento inicial en bytes (para Vertex Buffer).
Definition Buffer.h:164
void update(DeviceContext &deviceContext, ID3D11Resource *pDstResource, unsigned int DstSubresource, const D3D11_BOX *pDstBox, const void *pSrcData, unsigned int SrcRowPitch, unsigned int SrcDepthPitch)
Actualiza el contenido del buffer (típicamente mediante UpdateSubresource).
Definition Buffer.cpp:76
HRESULT createBuffer(Device &device, D3D11_BUFFER_DESC &desc, D3D11_SUBRESOURCE_DATA *initData)
Crea un buffer genérico con una D3D11_BUFFER_DESC y datos iniciales opcionales.
Definition Buffer.cpp:141
HRESULT init(Device &device, const MeshComponent &mesh, unsigned int bindFlag)
Inicializa el buffer como Vertex o Index Buffer usando un MeshComponent.
Definition Buffer.cpp:11
unsigned int m_bindFlag
Bandera de enlace (D3D11_BIND_* ) que define el rol del buffer.
Definition Buffer.h:169
ID3D11Buffer * m_buffer
Definition Buffer.h:148
Buffer()=default
Constructor por defecto (no crea recursos).
void render(DeviceContext &deviceContext, unsigned int StartSlot, unsigned int NumBuffers, bool setPixelShader=false, DXGI_FORMAT format=DXGI_FORMAT_UNKNOWN)
Enlaza el buffer a la etapa correspondiente del pipeline para el frame de render.
Definition Buffer.cpp:102
unsigned int m_stride
Recurso COM de D3D11 administrado por la clase.
Definition Buffer.h:158
void destroy()
Libera el ID3D11Buffer y resetea los metadatos internos.
Definition Buffer.cpp:136
~Buffer()=default
Destructor por defecto.
Encapsula un ID3D11Device y facilita la creación de recursos gráficos en Direct3D 11.
Definition Device.h:21
Componente ECS que almacena la información de geometría (malla) de un actor.