目前正在尝试使用土壤库制作一个天空盒。但是,我得到了这两个错误,并且不知道为什么或要做什么来修复它们......如果有人可以提供任何帮助或建议,将不胜感激!
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错误,说方括号与运算符不匹配?但我认为这是如何使用列表?
再次感谢任何帮助!
答案 0 :(得分:1)
我认为你在这里误解了一些事情。
1)push_back只将一个元素推入一个容器,例如:push_back(6)将6推入容器而不是6个元素。
2)std :: list doens定义了[]运算符,它并不意味着它。如果你需要访问每个元素,我建议你使用std :: vector而不是[]运算符。