При передаче в массив вершин не отображаются объекты

Я заметил, что мои треугольники не отображаются, когда у меня есть массив вершин и индексов в другом файле.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 файл, рисуется квадрат.


person user12826193    schedule 06.07.2021    source источник
comment
Почему вы передаете такие вещи, как VBO и VAO по значению, а не по ссылке?   -  person genpfault    schedule 06.07.2021