添加文本会停止渲染自定义GL项目

时间:2015-10-16 23:11:34

标签: c++ opengl qml qt5 qtquick2

我正在渲染自定义OpenGL项目,最重要的是我想添加一些小部件。

到目前为止,它运作良好。这就是它的样子。

enter image description here

但是,现在我尝试通过以下方式向OpenGL添加Text项:

Rectangle{
    id: logoTextBox
    x: logoButton.x + logoButton.width
    y: logoButton.y
    width: 200
    height: logoButton.height
    color: "#EEEEEE"

    Text{
        id: logoVersionBlurb
        y: 10
        x: 10
        font.pointSize: 8
        text: "Ver 1.0"
        color: "black"
    }

    Text{
        id: logoNameBlurb
        y: 20
        x: 10
        font.pointSize:  14
        font.bold: true
        text: "Please work"
    }
}

它看起来像这样: enter image description here

我仍然想要渲染OpenGL,但我希望Text显示在它上面。有什么想法吗?

我在QML中创建我的GLContext

MyGLWidget{
   id: glWidget
}

这是C ++文件中的相关方法

void MyGLWidget::sync()
{
    if (!m_renderer) {
        m_renderer = new MyGLRenderer();
        connect(window(), SIGNAL(beforeRendering()), m_renderer, SLOT(paint()), Qt::DirectConnection);
    }
    m_renderer->setViewportSize(window()->size() * window()->devicePixelRatio());
}

1 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案。我将文本的renderType设置为NativeRendering,这导致Triangle正确呈现。

    Text{
        id:sizeDialogXText
        color: "white"
        y: sizeDialogTitleText.y + 20
        x: sizeDialogTitleText.x
        text: "X"
        font.pointSize: 12
        renderType: Text.NativeRendering //This is the important line
    }