summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-04-02 12:03:54 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-04-10 21:09:11 +0000
commit66ff055ea6f3f9d6875b90e2219b71c6313b28b4 (patch)
tree68ba86aae68ea71ef4614e86a0d0c01b881494aa /src
parentbd3935d53f8e40f4e6d70995bdcecc80a8685bff (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.cpp1
-rw-r--r--src/render/framegraph/clearbuffers.cpp1
-rw-r--r--src/render/framegraph/dispatchcompute.cpp1
-rw-r--r--src/render/framegraph/framegraphnode.cpp7
-rw-r--r--src/render/framegraph/framegraphnode_p.h3
-rw-r--r--src/render/framegraph/layerfilternode.cpp1
-rw-r--r--src/render/framegraph/renderpassfilternode.cpp1
-rw-r--r--src/render/framegraph/rendersurfaceselector.cpp1
-rw-r--r--src/render/framegraph/rendertargetselectornode.cpp1
-rw-r--r--src/render/framegraph/statesetnode.cpp1
-rw-r--r--src/render/framegraph/techniquefilternode.cpp1
-rw-r--r--src/render/framegraph/viewportnode.cpp1
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();