Brenta Engine
1.0
Loading...
Searching...
No Matches
vao.cpp
1
/*
2
* MIT License
3
*
4
* Copyright (c) 2024 Giovanni Santini
5
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to deal
8
* in the Software without restriction, including without limitation the rights
9
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
* copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in
14
all
15
* copies or substantial portions of the Software.
16
*
17
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
* SOFTWARE.
24
*
25
*/
26
27
#include "vao.hpp"
28
29
#include "engine_logger.hpp"
30
31
using namespace
Brenta::Types;
32
33
void
VAO::Init
()
34
{
35
glGenVertexArrays(1, &
vao
);
36
Bind
();
37
}
38
39
unsigned
int
VAO::GetVAO
()
40
{
41
if
(
vao
== 0)
42
{
43
ERROR(
"VAO not initialized"
);
44
return
0;
45
}
46
return
vao
;
47
}
48
49
void
VAO::Bind
()
50
{
51
if
(
vao
== 0)
52
{
53
ERROR(
"VAO not initialized"
);
54
return
;
55
}
56
glBindVertexArray(
vao
);
57
}
58
59
void
VAO::Unbind
()
60
{
61
glBindVertexArray(0);
62
}
63
64
void
VAO::SetVertexData
(
Buffer
buffer,
unsigned
int
index, GLint size,
65
GLenum type, GLboolean normalized, GLsizei stride,
66
const
void
*pointer)
67
{
68
Bind
();
69
buffer.
Bind
();
70
glVertexAttribPointer(index, size, type, normalized, stride, pointer);
71
glEnableVertexAttribArray(index);
72
buffer.
Unbind
();
73
Unbind
();
74
}
75
76
void
VAO::Delete
()
77
{
78
if
(
vao
== 0)
79
{
80
ERROR(
"VAO not initialized"
);
81
return
;
82
}
83
glDeleteVertexArrays(1, &
vao
);
84
}
Brenta::Types::Buffer
Buffer wrapper around OpenGL buffer objects.
Definition
buffer.hpp:50
Brenta::Types::Buffer::Bind
void Bind()
Bind the buffer object.
Definition
buffer.cpp:62
Brenta::Types::Buffer::Unbind
void Unbind()
Unbind the buffer object.
Definition
buffer.cpp:72
Brenta::Types::VAO::Init
void Init()
Init Constructor.
Definition
vao.cpp:33
Brenta::Types::VAO::GetVAO
unsigned int GetVAO()
Get the VAO.
Definition
vao.cpp:39
Brenta::Types::VAO::Unbind
void Unbind()
Unbind the VAO.
Definition
vao.cpp:59
Brenta::Types::VAO::Bind
void Bind()
Bind the VAO.
Definition
vao.cpp:49
Brenta::Types::VAO::Delete
void Delete()
Delete the VAO.
Definition
vao.cpp:76
Brenta::Types::VAO::SetVertexData
void SetVertexData(Buffer buffer, unsigned int index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)
Set the vertex data.
Definition
vao.cpp:64
Brenta::Types::VAO::vao
unsigned int vao
Vertex Array Object (VAO)
Definition
vao.hpp:50
engine
sources
vao.cpp
Generated by
1.10.0