class classOne
{
ILuint id;
unsigned char* data()
{
ilBindImage(id);
return ilGetData();
}
}
class classTwo
{
void method(classOne& some)
{
(...)
glTexStorage2D(GL_TEXTURE_2D, 8, GL_RGB8, w, h);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w, h, GL_BGR, GL_UNSIGNED_BYTE, some.data());
glGenerateMipmap(GL_TEXTURE_2D);
}
}
当我的程序进入glTexSubImage2D时出现“访问冲突”错误。我做错了什么?
我已将GL_PIXEL_UNPACK_ALIGNMENT设置为1.虽然我试试这个
auto pdata = new unsigned char[some.dataSize()];
memcpy(data,some.data(),some.dataSize())
然后将pdata传递给glTexSubImage2D - 一切似乎都没问题......
答案 0 :(得分:0)
我似乎设置了错误的图像格式 - GL_RGBA8 / GL_BGRA,而它必须是我的代码示例中的GL_RGB8 / GL_BGR。我欺骗了自己。