Brenta Engine
1.1
Loading...
Searching...
No Matches
vao.hpp
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
#pragma once
28
29
#include "buffer.hpp"
30
31
#include <glad/glad.h>
/* OpenGL driver */
32
33
namespace
brenta
34
{
35
36
namespace
types
37
{
38
44
class
vao
45
{
46
public
:
50
unsigned
int
vao_id
;
51
57
vao
()
58
{
59
}
65
void
init
();
66
71
unsigned
int
get_vao
();
75
void
bind
();
79
void
unbind
();
83
void
destroy
();
97
void
set_vertex_data
(
buffer
buffer
,
unsigned
int
index, GLint size,
98
GLenum type, GLboolean is_normalized, GLsizei stride,
99
const
void
*pointer);
100
};
101
102
}
// namespace types
103
104
}
// namespace brenta
brenta::types::buffer
Buffer wrapper around OpenGL buffer objects.
Definition
buffer.hpp:50
brenta::types::vao
Vertex Array Object (VAO)
Definition
vao.hpp:45
brenta::types::vao::bind
void bind()
Bind the VAO.
Definition
vao.cpp:49
brenta::types::vao::set_vertex_data
void set_vertex_data(buffer buffer, unsigned int index, GLint size, GLenum type, GLboolean is_normalized, GLsizei stride, const void *pointer)
Set the vertex data.
Definition
vao.cpp:64
brenta::types::vao::vao_id
unsigned int vao_id
Vertex Array Object (VAO)
Definition
vao.hpp:50
brenta::types::vao::get_vao
unsigned int get_vao()
Get the VAO.
Definition
vao.cpp:39
brenta::types::vao::unbind
void unbind()
Unbind the VAO.
Definition
vao.cpp:59
brenta::types::vao::init
void init()
Init Constructor.
Definition
vao.cpp:33
brenta::types::vao::destroy
void destroy()
Delete the VAO.
Definition
vao.cpp:76
brenta::types::vao::vao
vao()
Empty Constructor.
Definition
vao.hpp:57
engine
headers
vao.hpp
Generated by
1.10.0