Brenta Engine 1.2
Loading...
Searching...
No Matches
buffer.hpp
1// SPDX-License-Identifier: MIT
2// Author: Giovanni Santini
3// Mail: giovanni.santini@proton.me
4// Github: @San7o
5
6#pragma once
7
8#include <glad/glad.h> // OpenGL driver
9
10namespace brenta
11{
12
13namespace types
14{
15
29class buffer
30{
31public:
35 unsigned int id;
40 GLenum target;
41
46 {
47 }
58 buffer(GLenum input_target);
59
65 void bind();
69 void unbind();
73 void destroy();
74
75 // Getters
76
81 int get_id();
86 GLenum get_target();
87
88 // Setters
89
94 void set_id(unsigned int id);
99 void set_target(GLenum target);
100
101 // Utilities
102
114 void copy_data(GLsizeiptr size, const void *data, GLenum usage);
125 void copy_vertices(GLsizeiptr size, const void *data, GLenum usage);
135 void copy_indices(GLsizeiptr size, const void *data, GLenum usage);
136};
137
138} // namespace types
139
140} // namespace brenta
Buffer wrapper around OpenGL buffer objects.
Definition buffer.hpp:30
void copy_indices(GLsizeiptr size, const void *data, GLenum usage)
Copy data to the buffer object.
Definition buffer.cpp:23
void unbind()
Unbind the buffer object.
Definition buffer.cpp:49
void set_target(GLenum target)
Set the buffer object target.
Definition buffer.cpp:79
void destroy()
Delete the buffer object.
Definition buffer.cpp:54
void set_id(unsigned int id)
Set the buffer object id.
Definition buffer.cpp:74
void copy_vertices(GLsizeiptr size, const void *data, GLenum usage)
Copy data to the buffer object.
Definition buffer.cpp:31
void copy_data(GLsizeiptr size, const void *data, GLenum usage)
Copy data to the buffer object.
Definition buffer.cpp:18
GLenum get_target()
Get the buffer object target.
Definition buffer.cpp:69
buffer()
Default constructor, does nothing.
Definition buffer.hpp:45
unsigned int id
Buffer object id, generated by OpenGL.
Definition buffer.hpp:35
GLenum target
Buffer object target (like GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER...)
Definition buffer.hpp:40
int get_id()
Get the buffer object id.
Definition buffer.cpp:64
void bind()
Bind the buffer object.
Definition buffer.cpp:39