86 QSSGExtensionId extensionId = QQuick3DExtensionHelpers::getExtensionId(*m_ext);
87 Q_ASSERT(!QQuick3DExtensionHelpers::isNull(extensionId));
98 data.scheduleRenderResults(QSSGFrameData::RenderResults(m_builtInPass));
101 QSSGFrameData::Result extResult = data.getRenderResult(m_builtInPass);
102 if (extResult.texture) {
103 QSSGRenderExtensionHelpers::registerRenderResult(data, extensionId, extResult.texture);
176QSSGRenderGraphObject *QQuick3DRenderOutputProvider::updateSpatialNode(QSSGRenderGraphObject *node)
180 node =
new QSSGRenderOutputProviderExtension(
this);
182 QQuick3DTextureProviderExtension::updateSpatialNode(node);
184 QSSGRenderOutputProviderExtension *providerNode =
static_cast<QSSGRenderOutputProviderExtension *>(node);
186 if (m_dirtyAttributes & TextureSourceDirty) {
187 providerNode->m_isDirty =
true;
188 switch (m_textureSource) {
189 case QQuick3DRenderOutputProvider::TextureSource::None:
191 case QQuick3DRenderOutputProvider::TextureSource::AoTexture:
192 providerNode->m_sourceType = QSSGRenderOutputProviderExtension::SourceType::BuiltInPass;
193 providerNode->m_builtInPass = QSSGFrameData::RenderResult::AoTexture;
195 case QQuick3DRenderOutputProvider::TextureSource::DepthTexture:
196 providerNode->m_sourceType = QSSGRenderOutputProviderExtension::SourceType::BuiltInPass;
197 providerNode->m_builtInPass = QSSGFrameData::RenderResult::DepthTexture;
199 case QQuick3DRenderOutputProvider::TextureSource::ScreenTexture:
200 providerNode->m_sourceType = QSSGRenderOutputProviderExtension::SourceType::BuiltInPass;
201 providerNode->m_builtInPass = QSSGFrameData::RenderResult::ScreenTexture;
206 m_dirtyAttributes = 0;
230void QQuick3DRenderOutputProvider::setTextureSource(TextureSource newTextureSource)
232 if (m_textureSource == newTextureSource)
234 m_textureSource = newTextureSource;
235 emit textureSourceChanged();
236 markDirty(TextureSourceDirty);