переименовал класс 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: public:
VBO(BUFFER_TYPE type, void (*attrib_config)() = 0); // Создает пустой буфер, привязывает к активному VAO BO(BUFFER_TYPE type, void (*attrib_config)() = 0); // Создает пустой буфер, привязывает к активному VAO
VBO(BUFFER_TYPE type, const void *data, int size, void (*attrib_config)() = 0); // Создает , привязывает к активному VAO и загружает туда данные BO(BUFFER_TYPE type, const void *data, int size, void (*attrib_config)() = 0); // Создает , привязывает к активному VAO и загружает туда данные
~VBO(); // Уничтожает буфер ~BO(); // Уничтожает буфер
void load(const void *data, int size, GLuint mode = GL_STATIC_DRAW); // Загрузка вершин в void load(const void *data, int size, GLuint mode = GL_STATIC_DRAW); // Загрузка вершин в
void use(); void use();

View File

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

View File

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

View File

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