我正在准备一个桌面应用程序来绘制一些2D图.我正在使用C++:Qt 5和visual studio 2013.我创建了一个简单的GUI并将myQOpenGLWidget放入其中.我已经使用自己的openGl着色器绘制了图形,轴和刻度.一切正常,现在我想将描述添加到我的轴和刻度线,以使图形可以分析.就像在OpenGL中一样,没有用于渲染文本的专用函数,我想出了使用QPainter对象只是为了已经创建的绘图添加了所需的描述.以下是开始的问题......
这是我的QopenGLWidget实现的功能:
void GLWidget::initializeGL() {
initializeOpenGLFunctions();
glEnable(GL_POINT_SPRITE);
glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
vertexShad = new QOpenGLShader(QOpenGLShader::Vertex);
fragmentShad = new QOpenGLShader(QOpenGLShader::Fragment);
bool flag = vertexShad->compileSourceFile(QString("vs.glsl"));
if (flag) printf("compiled vertex Shader\n");
flag = fragmentShad->compileSourceFile(QString("fs.glsl"));
if (flag) printf("compiled fragment Shader\n");
flag = program.addShader(vertexShad);
if (flag) printf("linked vertex Shader\n");
flag = false;
flag =program.addShader(fragmentShad);
if (flag) printf("linked fragment Shader\n");
program.link();
program.bind();
}
Run Code Online (Sandbox Code Playgroud)
paintGL:
void GLWidget::paintGL() {
painter = new QPainter(this);
painter->beginNativePainting();
glViewport(0, 0, this->width(), this->height());
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
drawAxes();
glViewport(MARGIN, …Run Code Online (Sandbox Code Playgroud)