|
|
@@ -97,7 +97,6 @@ void WidgetGL4::initializeGL()
|
|
|
return;
|
|
|
}
|
|
|
/* 创建纹理 */
|
|
|
-
|
|
|
glGenTextures(1, &m_texture1);
|
|
|
glBindTexture(GL_TEXTURE_2D, m_texture1);
|
|
|
/* 设置纹理参数 */
|
|
|
@@ -108,6 +107,25 @@ void WidgetGL4::initializeGL()
|
|
|
/* 将纹理图片数据传递给OpenGL */
|
|
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image.width(), image.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, image.bits());
|
|
|
glGenerateMipmap(GL_TEXTURE_2D);
|
|
|
+
|
|
|
+ /* 创建第二个纹理 */
|
|
|
+ QImage image2;
|
|
|
+ image2.load(":/image/awesomeface.png");
|
|
|
+ glGenTextures(1, &m_texture2);
|
|
|
+ glBindTexture(GL_TEXTURE_2D, m_texture2);
|
|
|
+ /* 设置纹理参数 */
|
|
|
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
|
|
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
|
|
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
|
|
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
|
|
+ /* 将纹理图片数据传递给OpenGL */
|
|
|
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image2.width(), image2.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, image2.bits());
|
|
|
+ glGenerateMipmap(GL_TEXTURE_2D);
|
|
|
+
|
|
|
+ /* 设置纹理单元 */
|
|
|
+ m_shader->use();
|
|
|
+ m_shader->setInt("ourTexture1", 0);
|
|
|
+ m_shader->setInt("ourTexture2", 1);
|
|
|
}
|
|
|
|
|
|
void WidgetGL4::resizeGL(int w, int h)
|
|
|
@@ -125,7 +143,10 @@ void WidgetGL4::paintGL()
|
|
|
/* 绘制四边形 */
|
|
|
m_shader->use();
|
|
|
glBindVertexArray(m_VAO);
|
|
|
+ glActiveTexture(GL_TEXTURE0);
|
|
|
glBindTexture(GL_TEXTURE_2D, m_texture1);
|
|
|
+ glActiveTexture(GL_TEXTURE1);
|
|
|
+ glBindTexture(GL_TEXTURE_2D, m_texture2);
|
|
|
|
|
|
// glDrawArrays(GL_TRIANGLES, 0, 6);
|
|
|
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
|