我的问题很简单。我正在尝试通过函数传递一个int数组。 但另一方面出了问题。我没有从中得到数据。
创建一些2个数据数组并将它们发送到网格类。
GLfloat vertices[] = { 0.5f, 0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
-0.5f, -0.5f, 0.0f,
-0.5f, 0.5f, 0.0f };
GLuint indices[] = { 0, 1, 3,
1, 2, 3 };
Mesh mesh;
mesh.SetVertices(vertices);
mesh.SetIndices(indices);
这是我的标题:
void SetVertices(GLfloat* vertices);
void SetIndices(GLuint* indices);
我的cpp:
void Mesh::SetVertices(GLfloat* vertices) {
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); }
void Mesh::SetIndices(GLuint* indices) {
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW); }
我还测试了它直接在SetVertices / SetIndices方法中存储数组,并且工作得很好。
干杯M.