-1

目前正在尝试使用土壤库制作天空盒。但是,我收到这两个错误并且不知道为什么或如何解决它们......如果有人可以提供任何帮助或建议,将不胜感激!

GLuint textureCon;

int widthX, heightY;
unsigned char* imageInfo;

std::list<int> faces;
faces.push_back(6);

glBindTexture(GL_TEXTURE_CUBE_MAP, textureCon);

for (GLuint i = 0; i < faces.size(); i++)
{
    imageInfo = SOIL_load_image(faces[i], &widthX, &heightY, 0, SOIL_LOAD_RGB);
    glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, widthX, heightY, 0, GL_RGB, GL_UNSIGNED_BYTE, imageInfo);
}

错误信息

我说faces[i]的是 E0349 错误发生的地方,说方括号与运算符不匹配?但我认为这就是如何使用列表?再次感谢任何帮助!

4

1 回答 1

1

我想你在这里误解了一些事情。

1) push_back 只将一个元素推入容器中,例如: push_back(6) 会将 6 个元素推入容器,而不是您需要的 6 个元素。

2) std::list 没有定义 [] 运算符,它不是为了那个。如果您需要访问每个元素,我建议您使用具有 [] 运算符的 std::vector 代替。

于 2017-12-27T14:07:58.753 回答