2D_Game_Engine
Loading...
Searching...
No Matches
src
vertexarray.cpp
Go to the documentation of this file.
1
#include <pch.hpp>
2
#include <
vertexarray.hpp
>
3
4
VertexArray::VertexArray
(){
5
glGenVertexArrays(1,&m_ID);
6
glBindVertexArray(m_ID);
7
}
8
9
VertexArray::~VertexArray
(){
10
glDeleteVertexArrays(1,&m_ID);
11
}
12
13
void
VertexArray::AddBuffer
(
const
VertexBuffer
&vb,
const
VertexBufferLayout
&layout){
14
Bind
();
15
vb.
Bind
();
16
unsigned
int
offset=0;
17
const
auto
&elements=layout.
GetElements
();
18
for
(
unsigned
int
i
=0;
i
<elements.size();
i
++){
19
const
auto
&element=elements[
i
];
20
glEnableVertexAttribArray(
i
);
21
glVertexAttribPointer(
i
,element.count,element.type,element.normalized,layout.
GetStride
(),(
const
void
*)offset);
22
offset+=element.count*
VertexBufferElement::GetSizeOfType
(element.type);
23
}
24
}
25
26
void
VertexArray::DisableAttribs
(
const
VertexBufferLayout
&layout){
27
const
auto
&elements=layout.
GetElements
();
28
for
(
unsigned
int
i
=0;
i
<elements.size();
i
++)
29
glDisableVertexAttribArray(
i
);
30
}
31
32
void
VertexArray::Bind
()
const
{
33
glBindVertexArray(m_ID);
34
}
35
36
void
VertexArray::Unbind
()
const
{
37
glBindVertexArray(0);
38
}
VertexArray::Unbind
void Unbind() const
Definition
vertexarray.cpp:36
VertexArray::~VertexArray
~VertexArray()
Definition
vertexarray.cpp:9
VertexArray::AddBuffer
void AddBuffer(const VertexBuffer &vb, const VertexBufferLayout &layout)
Definition
vertexarray.cpp:13
VertexArray::DisableAttribs
void DisableAttribs(const VertexBufferLayout &layout)
Definition
vertexarray.cpp:26
VertexArray::VertexArray
VertexArray()
Definition
vertexarray.cpp:4
VertexArray::Bind
void Bind() const
Definition
vertexarray.cpp:32
VertexBufferLayout
Definition
vertexbufferlayout.hpp:23
VertexBufferLayout::GetElements
const std::vector< VertexBufferElement > & GetElements() const
Definition
vertexbufferlayout.hpp:28
VertexBufferLayout::GetStride
unsigned int GetStride() const
Definition
vertexbufferlayout.hpp:29
VertexBuffer
Definition
vertexbuffer.hpp:6
VertexBuffer::Bind
void Bind() const
Definition
vertexbuffer.cpp:14
i
int i
Definition
sceneserializer.cpp:451
VertexBufferElement::GetSizeOfType
static unsigned int GetSizeOfType(unsigned int type)
Definition
vertexbufferlayout.hpp:8
vertexarray.hpp
Generated by
1.10.0