QOpenGLShaderProgram
是 Qt 中用于管理 OpenGL 着色器程序的一个类。它封装了着色器的编译、链接和使用过程,使得 OpenGL 着色器程序的管理更加简单和高效。通过 QOpenGLShaderProgram
,你可以轻松地创建、使用和管理顶点着色器和片段着色器。
主要功能和方法
- addShader:向程序添加一个着色器。
- addShaderFromSourceCode:从源代码字符串添加一个着色器。
- addShaderFromSourceFile:从文件中加载并添加一个着色器。
- link:链接所有添加到程序中的着色器。
- bind:绑定这个程序,使其成为当前的活动程序。
- release:释放这个程序,使其不再是当前的活动程序。
- setUniformValue:设置统一变量(uniform)的值。
典型使用步骤
- 创建
QOpenGLShaderProgram
实例。 - 添加顶点着色器和片段着色器。
- 链接程序。
- 在渲染循环中绑定和释放程序。
可以将顶点着色器和片段着色器添加到资源文件中
可以通过addShaderFromSourceFile添加顶点着色器和片段着色器。
QOpenGLShaderProgram shaderProgram; // 着色器程序
shaderProgram.addShaderFromSourceFile(QOpenGLShader::Vertex,":/shaders/shapes.vert");
shaderProgram.addShaderFromSourceFile(QOpenGLShader::Fragment,":/shaders/shapes.frag");
shaderProgram.link();