diff options
Diffstat (limited to 'examples/quick/scenegraph/rendernode/customrenderitem.cpp')
-rw-r--r-- | examples/quick/scenegraph/rendernode/customrenderitem.cpp | 53 |
1 files changed, 1 insertions, 52 deletions
diff --git a/examples/quick/scenegraph/rendernode/customrenderitem.cpp b/examples/quick/scenegraph/rendernode/customrenderitem.cpp index 124a57a5d6..dbb9ee79e8 100644 --- a/examples/quick/scenegraph/rendernode/customrenderitem.cpp +++ b/examples/quick/scenegraph/rendernode/customrenderitem.cpp @@ -56,10 +56,8 @@ void CustomRenderNode::render(const RenderState *state) if (!ri) return; - m_api = ri->graphicsAPI(); - if (!m_renderer) { - switch (m_api) { + switch (ri->graphicsAPI()) { case QSGRendererInterface::OpenGL: #ifndef QT_NO_OPENGL m_renderer = new OpenGLRenderer(m_item, this); @@ -97,13 +95,6 @@ CustomRenderItem::CustomRenderItem(QQuickItem *parent) { // Our item shows something so set the flag. setFlag(ItemHasContents); - - // We want the graphics API type to be exposed to QML. The value is easy to - // get during rendering on the render thread in CustomRenderNode::render(), - // but is more tricky here since the item gets a window associated later, - // which in turn will get the underlying scenegraph started at some later - // point. So defer. - connect(this, &QQuickItem::windowChanged, this, &CustomRenderItem::onWindowChanged); } QSGNode *CustomRenderItem::updatePaintNode(QSGNode *node, UpdatePaintNodeData *) @@ -114,45 +105,3 @@ QSGNode *CustomRenderItem::updatePaintNode(QSGNode *node, UpdatePaintNodeData *) return n; } - -void CustomRenderItem::onWindowChanged(QQuickWindow *w) -{ - if (w) { - if (w->isSceneGraphInitialized()) - updateGraphicsAPI(); - else - connect(w, &QQuickWindow::sceneGraphInitialized, this, &CustomRenderItem::updateGraphicsAPI); - } else { - updateGraphicsAPI(); - } -} - -void CustomRenderItem::updateGraphicsAPI() -{ - QString newAPI; - if (!window()) { - newAPI = QLatin1String("[no window]"); - } else { - QSGRendererInterface *ri = window()->rendererInterface(); - if (!ri) { - newAPI = QLatin1String("[no renderer interface]"); - } else { - switch (ri->graphicsAPI()) { - case QSGRendererInterface::OpenGL: - newAPI = QLatin1String("OpenGL"); - break; - case QSGRendererInterface::Direct3D12: - newAPI = QLatin1String("D3D12"); - break; - default: - newAPI = QString(QLatin1String("[unsupported graphics API %1]")).arg(ri->graphicsAPI()); - break; - } - } - } - - if (newAPI != m_api) { - m_api = newAPI; - emit graphicsAPIChanged(); - } -} |