-
Notifications
You must be signed in to change notification settings - Fork 0
/
IndexBuffer.cpp
42 lines (33 loc) · 874 Bytes
/
IndexBuffer.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "IndexBuffer.h"
IndexBuffer::IndexBuffer(Renderer* renderer): m_renderer(renderer)
{
}
bool IndexBuffer::Load(void* list_indices, UINT size_list)
{
D3D11_BUFFER_DESC desc = {};
memset(((&desc)), 0, ((sizeof(desc))));
desc.Usage = D3D11_USAGE_DEFAULT;
desc.ByteWidth = size_list * 4;
desc.BindFlags = D3D11_BIND_INDEX_BUFFER;
desc.CPUAccessFlags = 0;
desc.MiscFlags = 0;
D3D11_SUBRESOURCE_DATA data = {};
data.pSysMem = list_indices;
this->m_size_list = size_list;
auto hr = m_renderer->GetDevice()->CreateBuffer(&desc, &data, &m_buffer);
return hr >= 0x0L ? true : false;
}
void IndexBuffer::Release()
{
IndexBuffer::~IndexBuffer();
delete this;
}
IndexBuffer::~IndexBuffer() = default;
ID3D11Buffer* IndexBuffer::GetBuffer()
{
return this->m_buffer.Get();
}
unsigned int IndexBuffer::GetIndexListSize() const
{
return this->m_size_list;
}