diff options
Diffstat (limited to 'examples/quick/scenegraph/rhitextureitem/rhitextureitem.cpp')
-rw-r--r-- | examples/quick/scenegraph/rhitextureitem/rhitextureitem.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/examples/quick/scenegraph/rhitextureitem/rhitextureitem.cpp b/examples/quick/scenegraph/rhitextureitem/rhitextureitem.cpp index 92615a4d5b..99e2f79dc3 100644 --- a/examples/quick/scenegraph/rhitextureitem/rhitextureitem.cpp +++ b/examples/quick/scenegraph/rhitextureitem/rhitextureitem.cpp @@ -4,12 +4,14 @@ #include "rhitextureitem.h" #include <QFile> +//! [nodector] RhiItemNode::RhiItemNode(RhiItem *item) : m_item(item) { m_window = m_item->window(); connect(m_window, &QQuickWindow::beforeRendering, this, &RhiItemNode::render, Qt::DirectConnection); +//! [nodector] connect(m_window, &QQuickWindow::screenChanged, this, [this]() { if (m_window->effectiveDevicePixelRatio() != m_dpr) m_item->update(); @@ -21,6 +23,7 @@ QSGTexture *RhiItemNode::texture() const return m_sgTexture.get(); } +//! [nodesync] void RhiItemNode::sync() { if (!m_rhi) { @@ -56,7 +59,9 @@ void RhiItemNode::sync() m_renderer->synchronize(m_item); } +//! [nodesync] +//! [noderender] void RhiItemNode::render() { // called before Qt Quick starts recording its main render pass @@ -86,6 +91,7 @@ void RhiItemNode::render() markDirty(QSGNode::DirtyMaterial); emit textureChanged(); } +//! [noderender] void RhiItemNode::scheduleUpdate() { @@ -213,6 +219,7 @@ static QShader getShader(const QString &name) return QShader(); } +//! [exampleinit] void ExampleRhiItemRenderer::initialize(QRhi *rhi, QRhiTexture *outputTexture) { m_rhi = rhi; @@ -247,6 +254,7 @@ void ExampleRhiItemRenderer::initialize(QRhi *rhi, QRhiTexture *outputTexture) const quint32 vbufSize = vsize + nsize; scene.vbuf.reset(m_rhi->newBuffer(QRhiBuffer::Immutable, QRhiBuffer::VertexBuffer, vbufSize)); scene.vbuf->create(); +//! [exampleinit] scene.resourceUpdates = m_rhi->nextResourceUpdateBatch(); scene.resourceUpdates->uploadStaticBuffer(scene.vbuf.get(), 0, vsize, m_vertices.constData()); @@ -284,6 +292,7 @@ void ExampleRhiItemRenderer::initialize(QRhi *rhi, QRhiTexture *outputTexture) } } +//! [examplesync] void ExampleRhiItemRenderer::synchronize(RhiItem *rhiItem) { // called on the render thread (if there is one), while the main (gui) thread is blocked @@ -292,7 +301,9 @@ void ExampleRhiItemRenderer::synchronize(RhiItem *rhiItem) if (item->angle() != scene.logoAngle) scene.logoAngle = item->angle(); } +//! [examplesync] +//! [examplerender] void ExampleRhiItemRenderer::render(QRhiCommandBuffer *cb) { QRhiResourceUpdateBatch *rub = scene.resourceUpdates; @@ -320,6 +331,7 @@ void ExampleRhiItemRenderer::render(QRhiCommandBuffer *cb) cb->endPass(); } +//! [examplerender] void ExampleRhiItemRenderer::createGeometry() { |