0
我正在使用Qt Creator(C++),並且正在創建一個GLWidget。我需要使用一些紋理。在Qt中最簡單的方法是使用QGLWidget函數bindTexture(QImage)。當我嘗試使用這種方法綁定紋理時,我的QGLWidget行爲異常 - 它什麼也沒有顯示(儘管我多次調用updateGL()),但它的顏色清晰。當我添加一個具有以前綁定紋理的項目時,它開始正常工作。這是我如何initialiazing紋理:Qt 5 OpenGL綁定紋理導致werid bug
void GLWidget::initializeGL()
{
qglClearColor(Qt::white);
glEnable(GL_BLEND);
glEnable(GL_TEXTURE_2D);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
generateGrid(0.025);
//**deleting lines below solves this problem... but then I can't use textures!**
mvTextureID.push_back(bindTexture(QImage("and.png")));
mvRedTextureID.push_back(bindTexture(QImage("and_red.png")));
mvTextureID.push_back(bindTexture(QImage("nand.png")));
mvRedTextureID.push_back(bindTexture(QImage("nand_red.png")));
}
我濫用方法bindTexture?爲什麼在GLWidget開始執行之前,我必須實際使用綁定紋理之一?