QOpenGLShaderProgram, 绘制一个空心矩形, 边框为红色
时间: 2023-05-22 11:05:56 浏览: 71
。请问这段代码应该怎么写?
很高兴为您解答。这段代码可以参考下面的示例:
```
QOpenGLShaderProgram program;
program.addShaderFromSourceCode(QOpenGLShader::Vertex, "attribute vec2 aPos;\nvoid main() {\n gl_Position = vec4(aPos, 0.0, 1.0);\n}");
program.addShaderFromSourceCode(QOpenGLShader::Fragment, "void main() {\n gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n}");
program.link();
program.bind();
GLfloat vertices[] = {
-0.5, 0.5,
0.5, 0.5,
0.5, -0.5,
-0.5, -0.5,
};
int vertexLoc = program.attributeLocation("aPos");
glVertexAttribPointer(vertexLoc, 2, GL_FLOAT, GL_FALSE, 0, vertices);
glEnableVertexAttribArray(vertexLoc);
glDrawArrays(GL_LINES, 0, 8);
glDisableVertexAttribArray(vertexLoc);
```
在这段代码中,我们通过设置顶点着色器和片元着色器来绘制一个红色的空心矩形。具体可以参考上面的代码示例。