diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-02 12:03:54 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-10 21:09:11 +0000 |
commit | 66ff055ea6f3f9d6875b90e2219b71c6313b28b4 (patch) | |
tree | 68ba86aae68ea71ef4614e86a0d0c01b881494aa /src | |
parent | bd3935d53f8e40f4e6d70995bdcecc80a8685bff (diff) |
Do enabled state and parent/child relationship init in framegraph base
Move this out of the creation functor as the peerId is not set at this
point which breaks the setParentId() function. Move this to the
initializeFromPeer() function and have each FrameGraphNode type call
the base class implementation to set the basic stuff up.
With this change, the main loop now runs through using the QT3D_NO_CLONE
env var. However, it does not render again, yet.
Change-Id: Ied12deb4732b5c103e647cc4cfea935114ea31ca
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/render/framegraph/cameraselectornode.cpp | 1 | ||||
-rw-r--r-- | src/render/framegraph/clearbuffers.cpp | 1 | ||||
-rw-r--r-- | src/render/framegraph/dispatchcompute.cpp | 1 | ||||
-rw-r--r-- | src/render/framegraph/framegraphnode.cpp | 7 | ||||
-rw-r--r-- | src/render/framegraph/framegraphnode_p.h | 3 | ||||
-rw-r--r-- | src/render/framegraph/layerfilternode.cpp | 1 | ||||
-rw-r--r-- | src/render/framegraph/renderpassfilternode.cpp | 1 | ||||
-rw-r--r-- | src/render/framegraph/rendersurfaceselector.cpp | 1 | ||||
-rw-r--r-- | src/render/framegraph/rendertargetselectornode.cpp | 1 | ||||
-rw-r--r-- | src/render/framegraph/statesetnode.cpp | 1 | ||||
-rw-r--r-- | src/render/framegraph/techniquefilternode.cpp | 1 | ||||
-rw-r--r-- | src/render/framegraph/viewportnode.cpp | 1 |
12 files changed, 18 insertions, 2 deletions
diff --git a/src/render/framegraph/cameraselectornode.cpp b/src/render/framegraph/cameraselectornode.cpp index f95fe61d4..d16dbc4cd 100644 --- a/src/render/framegraph/cameraselectornode.cpp +++ b/src/render/framegraph/cameraselectornode.cpp @@ -68,6 +68,7 @@ void CameraSelector::updateFromPeer(Qt3DCore::QNode *peer) void CameraSelector::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QCameraSelectorData>>(change); const auto &data = typedChange->data; m_cameraUuid = data.cameraId; diff --git a/src/render/framegraph/clearbuffers.cpp b/src/render/framegraph/clearbuffers.cpp index 1a70e0f55..9fc175469 100644 --- a/src/render/framegraph/clearbuffers.cpp +++ b/src/render/framegraph/clearbuffers.cpp @@ -68,6 +68,7 @@ void ClearBuffers::updateFromPeer(Qt3DCore::QNode *peer) void ClearBuffers::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QClearBuffersData>>(change); const auto &data = typedChange->data; m_type = data.buffersType; diff --git a/src/render/framegraph/dispatchcompute.cpp b/src/render/framegraph/dispatchcompute.cpp index fc6ced899..837272eff 100644 --- a/src/render/framegraph/dispatchcompute.cpp +++ b/src/render/framegraph/dispatchcompute.cpp @@ -76,6 +76,7 @@ void DispatchCompute::updateFromPeer(Qt3DCore::QNode *peer) void DispatchCompute::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QDispatchComputeData>>(change); const auto &data = typedChange->data; m_workGroups[0] = data.workGroupX; diff --git a/src/render/framegraph/framegraphnode.cpp b/src/render/framegraph/framegraphnode.cpp index b1b5256d6..b25361035 100644 --- a/src/render/framegraph/framegraphnode.cpp +++ b/src/render/framegraph/framegraphnode.cpp @@ -65,6 +65,13 @@ FrameGraphNode::~FrameGraphNode() { } +void FrameGraphNode::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) +{ + // Set up the parent child relationship and enabled state + setParentId(change->parentId()); + setEnabled(change->isNodeEnabled()); +} + void FrameGraphNode::setFrameGraphManager(FrameGraphManager *manager) { if (m_manager != manager) diff --git a/src/render/framegraph/framegraphnode_p.h b/src/render/framegraph/framegraphnode_p.h index e4ab5784c..3429da1ba 100644 --- a/src/render/framegraph/framegraphnode_p.h +++ b/src/render/framegraph/framegraphnode_p.h @@ -111,6 +111,7 @@ public: protected: FrameGraphNode(FrameGraphNodeType nodeType); + void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_OVERRIDE; private: FrameGraphNodeType m_nodeType; @@ -179,8 +180,6 @@ protected: Backend *backend = new Backend(); backend->setFrameGraphManager(m_manager); backend->setRenderer(m_renderer); - backend->setEnabled(change->isNodeEnabled()); - backend->setParentId(change->parentId()); m_manager->appendNode(change->subjectId(), backend); return backend; } diff --git a/src/render/framegraph/layerfilternode.cpp b/src/render/framegraph/layerfilternode.cpp index aaba46def..4b593d7f5 100644 --- a/src/render/framegraph/layerfilternode.cpp +++ b/src/render/framegraph/layerfilternode.cpp @@ -64,6 +64,7 @@ void LayerFilterNode::updateFromPeer(Qt3DCore::QNode *peer) void LayerFilterNode::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QLayerFilterData>>(change); const auto &data = typedChange->data; setLayers(data.layers); diff --git a/src/render/framegraph/renderpassfilternode.cpp b/src/render/framegraph/renderpassfilternode.cpp index c8bd81b4f..d29aa6880 100644 --- a/src/render/framegraph/renderpassfilternode.cpp +++ b/src/render/framegraph/renderpassfilternode.cpp @@ -72,6 +72,7 @@ void RenderPassFilter::updateFromPeer(Qt3DCore::QNode *peer) void RenderPassFilter::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderPassFilterData>>(change); const auto &data = typedChange->data; setEnabled(change->isNodeEnabled()); diff --git a/src/render/framegraph/rendersurfaceselector.cpp b/src/render/framegraph/rendersurfaceselector.cpp index 96b31c0e3..495327650 100644 --- a/src/render/framegraph/rendersurfaceselector.cpp +++ b/src/render/framegraph/rendersurfaceselector.cpp @@ -99,6 +99,7 @@ void RenderSurfaceSelector::updateFromPeer(Qt3DCore::QNode *peer) void RenderSurfaceSelector::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderSurfaceSelectorData>>(change); const auto &data = typedChange->data; setEnabled(change->isNodeEnabled()); diff --git a/src/render/framegraph/rendertargetselectornode.cpp b/src/render/framegraph/rendertargetselectornode.cpp index e892c3ccd..584c9ddca 100644 --- a/src/render/framegraph/rendertargetselectornode.cpp +++ b/src/render/framegraph/rendertargetselectornode.cpp @@ -71,6 +71,7 @@ void RenderTargetSelector::updateFromPeer(Qt3DCore::QNode *peer) void RenderTargetSelector::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderTargetSelectorData>>(change); const auto &data = typedChange->data; setEnabled(change->isNodeEnabled()); diff --git a/src/render/framegraph/statesetnode.cpp b/src/render/framegraph/statesetnode.cpp index 723dbb376..5c5b0ce6f 100644 --- a/src/render/framegraph/statesetnode.cpp +++ b/src/render/framegraph/statesetnode.cpp @@ -73,6 +73,7 @@ void StateSetNode::updateFromPeer(Qt3DCore::QNode *peer) void StateSetNode::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderStateSetData>>(change); const auto &data = typedChange->data; setEnabled(change->isNodeEnabled()); diff --git a/src/render/framegraph/techniquefilternode.cpp b/src/render/framegraph/techniquefilternode.cpp index c57692015..b19d63341 100644 --- a/src/render/framegraph/techniquefilternode.cpp +++ b/src/render/framegraph/techniquefilternode.cpp @@ -73,6 +73,7 @@ void TechniqueFilter::updateFromPeer(Qt3DCore::QNode *peer) void TechniqueFilter::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QTechniqueFilterData>>(change); const auto &data = typedChange->data; m_filters = data.matchIds; diff --git a/src/render/framegraph/viewportnode.cpp b/src/render/framegraph/viewportnode.cpp index 5d4930328..abd6dac49 100644 --- a/src/render/framegraph/viewportnode.cpp +++ b/src/render/framegraph/viewportnode.cpp @@ -70,6 +70,7 @@ void ViewportNode::updateFromPeer(Qt3DCore::QNode *peer) void ViewportNode::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QViewportData>>(change); const auto &data = typedChange->data; m_xMin = data.normalizedRect.x(); |