Я заметил, что мои треугольники не отображаются, когда у меня есть массив вершин и индексов в другом файле.cpp, я предполагаю, что неправильно передаю массивы, но не могу найти какое-либо решение своей проблемы.
Файл Objects.h
class Vertex
{
public:
void GenVBO(unsigned int VBO)
{
glGenBuffers(1, &VBO);
glBindVertexArray(VBO);
}
void GenVAO(unsigned int VAO, float Vertices[])
{
glGenVertexArrays(1, &VAO);
glBindBuffer(GL_ARRAY_BUFFER, VAO);
glBufferData(GL_ARRAY_BUFFER, sizeof(Vertices), Vertices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
glEnableVertexAttribArray(0);
}
void GenEBO(unsigned int EBO,unsigned int Indices[])
{
glGenBuffers(1, &EBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(Indices), Indices, GL_STATIC_DRAW);
}
};
Файл Objects.cpp
unsigned int VBO;
unsigned int VAO;
unsigned int EBO;
float Vertices[] =
{
0.3f, 0.3f, 0.0f,
0.3f, -0.3f, 0.0f,
-0.3f, -0.3f, 0.0f,
-0.3f, 0.3f, 0.0f
};
unsigned int Indices[] =
{
0, 1, 3,
1, 2, 3
};
void InitDraw()
{
Vertex theVertex;
theVertex.GenVBO(VBO);
theVertex.GenVAO(VAO,Vertices);
theVertex.GenEBO(EBO,Indices);
}
Когда я включаю свой массив Vertices и массив индексов в свой .H файл, рисуется квадрат.
VBO
иVAO
по значению, а не по ссылке? - person genpfault   schedule 06.07.2021