//接下来是读取纹理代码。这跟前面纹理影射教程中的一模一样。 //下面的代码同样对之前教程的代码改动很小。如果你不清楚下面每行的用途,回头复习一下。 //注意TextureImage[ ]将保存2个rgb图像记录。复查处理读取或存储纹理的纹理很重要。一个错误的数字可能导致内存溢出或崩溃! void MyGLWidget::loadGLTexture() { QImage fontImage(":/image/Font.bmp"); fontImage = fontImage.convertToFormat(QImage::Format_RGB888); fontImage = fontImage.mirrored(); glGenTextures(1, &m_texture[0]); glBindTexture(GL_TEXTURE_2D, m_texture[0]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, fontImage.width(), fontImage.height(), 0, GL_RGB, GL_UNSIGNED_BYTE, fontImage.bits()); }
void MainMenu::paintEvent(QPaintEvent *) { QImage fontImage(":/new/prefix1/Images/swagdog.jpg"); QPainter painter(this); painter.drawImage(0, 0, fontImage.scaled(this->size())); }