переименовал класс VBO в BO

This commit is contained in:
Ковалев Роман Евгеньевич 2022-11-14 20:16:02 +03:00 committed by R.E. Kovalev
parent a2898c2203
commit 05c6dfe4c3
4 changed files with 18 additions and 18 deletions

View File

@ -27,12 +27,12 @@ enum BUFFER_TYPE { VERTEX = GL_ARRAY_BUFFER
};
// Объект вершинного буфера
class VBO
class BO
{
public:
VBO(BUFFER_TYPE type, void (*attrib_config)() = 0); // Создает пустой буфер, привязывает к активному VAO
VBO(BUFFER_TYPE type, const void *data, int size, void (*attrib_config)() = 0); // Создает , привязывает к активному VAO и загружает туда данные
~VBO(); // Уничтожает буфер
BO(BUFFER_TYPE type, void (*attrib_config)() = 0); // Создает пустой буфер, привязывает к активному VAO
BO(BUFFER_TYPE type, const void *data, int size, void (*attrib_config)() = 0); // Создает , привязывает к активному VAO и загружает туда данные
~BO(); // Уничтожает буфер
void load(const void *data, int size, GLuint mode = GL_STATIC_DRAW); // Загрузка вершин в
void use();

View File

@ -41,8 +41,8 @@ class Model : public Movable
private:
VAO *vao;
VBO *vertex_vbo, *index_vbo; // вершинный и индексный
VBO *normals_vbo, *texCoords_vbo; // буферы с нормалями и текстурными координатами
BO *vertex_vbo, *index_vbo; // вершинный и индексный
BO *normals_vbo, *texCoords_vbo; // буферы с нормалями и текстурными координатами
GLuint verteces_count; // Количество вершин
GLuint first_index, indices_count; // Первый и количество индексов
Texture texture_diffuse; // Диффузная текстура

View File

@ -32,7 +32,7 @@ GLuint VAO::get_handler()
}
// Создает пустой буфер, привязывает к активному VAO, если нужно конфигурирует атрибуты
VBO::VBO(BUFFER_TYPE t, void (*attrib_config)()) : type(t)
BO::BO(BUFFER_TYPE t, void (*attrib_config)()) : type(t)
{
glGenBuffers(1, &handler); // Генерация одного объекта буфера вершин
glBindBuffer(type, handler); // Привязка элементного буфера
@ -42,24 +42,24 @@ VBO::VBO(BUFFER_TYPE t, void (*attrib_config)()) : type(t)
}
// Создает буфер, привязывает к активному VAO и загружает туда данные, если нужно конфигурирует атрибуты
VBO::VBO(BUFFER_TYPE t, const void *data, int size, void (*attrib_config)()) : VBO(t, attrib_config)
BO::BO(BUFFER_TYPE t, const void *data, int size, void (*attrib_config)()) : BO(t, attrib_config)
{
load(data, size);
}
// Уничтожает буфер
VBO::~VBO()
BO::~BO()
{
glDeleteBuffers(1, &handler);
}
// Загрузка вершин в буфер
void VBO::load(const void *data, int size, GLuint mode)
void BO::load(const void *data, int size, GLuint mode)
{
glBufferData(type, size, data, mode);
}
void VBO::use()
void BO::use()
{
glBindBuffer(type, handler); // Привязка элементного буфера
}

View File

@ -77,7 +77,7 @@ void vertex_attrib_config()
{
// Включаем необходимый атрибут у выбранного VAO
glEnableVertexAttribArray(0);
// Устанавливаем связь между VAO и привязанным VBO
// Устанавливаем связь между VAO и привязанным BO
glVertexAttribPointer( 0 // индекс атрибута, должен совпадать с Layout шейдера
, 3 // количество компонент одного элемента
, GL_FLOAT // тип
@ -95,7 +95,7 @@ void Model::load_verteces(glm::vec3* verteces, GLuint count)
// Если до этого такого буфера не было - создаем его, иначе используем
if (!vertex_vbo)
vertex_vbo = new VBO(VERTEX, vertex_attrib_config);
vertex_vbo = new BO(VERTEX, vertex_attrib_config);
else
vertex_vbo->use();
@ -113,7 +113,7 @@ void Model::load_indices(GLuint* indices, GLuint count)
// Если до этого такого буфера не было - создаем его, иначе используем
if (!index_vbo)
index_vbo = new VBO(ELEMENT);
index_vbo = new BO(ELEMENT);
else
index_vbo->use();
@ -128,7 +128,7 @@ void texCoords_attrib_config()
{
// Включаем необходимый атрибут у выбранного VAO
glEnableVertexAttribArray(1);
// Устанавливаем связь между VAO и привязанным VBO
// Устанавливаем связь между VAO и привязанным BO
glVertexAttribPointer( 1 // индекс атрибута, должен совпадать с Layout шейдера
, 2 // количество компонент одного элемента
, GL_FLOAT // тип
@ -146,7 +146,7 @@ void Model::load_texCoords(glm::vec2* texCoords, GLuint count)
// Если до этого такого буфера не было - создаем его, иначе используем
if (!texCoords_vbo)
texCoords_vbo = new VBO(VERTEX, texCoords_attrib_config);
texCoords_vbo = new BO(VERTEX, texCoords_attrib_config);
else
texCoords_vbo->use();
@ -160,7 +160,7 @@ void normals_attrib_config()
{
// Включаем необходимый атрибут у выбранного VAO
glEnableVertexAttribArray(2);
// Устанавливаем связь между VAO и привязанным VBO
// Устанавливаем связь между VAO и привязанным BO
glVertexAttribPointer( 2 // индекс атрибута, должен совпадать с Layout шейдера
, 3 // количество компонент одного элемента
, GL_FLOAT // тип
@ -178,7 +178,7 @@ void Model::load_normals(glm::vec3* normals, GLuint count)
// Если до этого такого буфера не было - создаем его, иначе используем
if (!normals_vbo)
normals_vbo = new VBO(VERTEX, normals_attrib_config);
normals_vbo = new BO(VERTEX, normals_attrib_config);
else
normals_vbo->use();