diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-30 18:17:35 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-05-03 10:20:47 +0000 |
commit | 03d62618692f93dfc1aa53e7e2245177432c2604 (patch) | |
tree | 010e65930c0db7ddd2080686cc63017e42320be2 | |
parent | 23b668235c9b902a2577b3ac6e369b77974382b4 (diff) |
Remove QBackendNode::updateFromPeer()
Implemented a few missing initializeFromPeer() implementations along
with the corresponding frontend node creation change creation functions.
Adapted unit tests.
Change-Id: I571e53a7b68a5544bd0e308df0baf7e52533306e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
135 files changed, 136 insertions, 734 deletions
diff --git a/src/core/nodes/qbackendnode.h b/src/core/nodes/qbackendnode.h index bcbd06e11..c3e2bd233 100644 --- a/src/core/nodes/qbackendnode.h +++ b/src/core/nodes/qbackendnode.h @@ -85,7 +85,6 @@ public: bool isEnabled() const Q_DECL_NOEXCEPT; Mode mode() const Q_DECL_NOEXCEPT; - virtual void updateFromPeer(QNode *peer) = 0; protected: Q_DECLARE_PRIVATE(QBackendNode) diff --git a/src/input/backend/abstractaxisinput.cpp b/src/input/backend/abstractaxisinput.cpp index 95665b118..c08a05b91 100644 --- a/src/input/backend/abstractaxisinput.cpp +++ b/src/input/backend/abstractaxisinput.cpp @@ -54,13 +54,6 @@ AbstractAxisInput::AbstractAxisInput() { } -void AbstractAxisInput::updateFromPeer(Qt3DCore::QNode *peer) -{ - QAbstractAxisInput *input = static_cast<QAbstractAxisInput *>(peer); - if (input->sourceDevice()) - m_sourceDevice = input->sourceDevice()->id(); -} - void AbstractAxisInput::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QAbstractAxisInputData>>(change); diff --git a/src/input/backend/abstractaxisinput_p.h b/src/input/backend/abstractaxisinput_p.h index 0f8445951..3e9b2287c 100644 --- a/src/input/backend/abstractaxisinput_p.h +++ b/src/input/backend/abstractaxisinput_p.h @@ -63,7 +63,6 @@ namespace Input { class Q_AUTOTEST_EXPORT AbstractAxisInput : public Qt3DCore::QBackendNode { public: - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; virtual void cleanup(); inline Qt3DCore::QNodeId sourceDevice() const { return m_sourceDevice; } diff --git a/src/input/backend/action.cpp b/src/input/backend/action.cpp index 98bd2e757..f843d4950 100644 --- a/src/input/backend/action.cpp +++ b/src/input/backend/action.cpp @@ -58,14 +58,6 @@ Action::Action() { } -void Action::updateFromPeer(Qt3DCore::QNode *peer) -{ - QAction *action = static_cast<QAction *>(peer); - const auto inputs = action->inputs(); - for (QAbstractActionInput *input : inputs) - m_inputs.push_back(input->id()); -} - void Action::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QActionData>>(change); diff --git a/src/input/backend/action_p.h b/src/input/backend/action_p.h index 1391b2d91..ee686413f 100644 --- a/src/input/backend/action_p.h +++ b/src/input/backend/action_p.h @@ -64,7 +64,6 @@ class Q_AUTOTEST_EXPORT Action : public Qt3DCore::QBackendNode { public: Action(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void cleanup(); inline QVector<Qt3DCore::QNodeId> inputs() const { return m_inputs; } inline bool actionTriggered() const { return m_actionTriggered; } diff --git a/src/input/backend/actioninput.cpp b/src/input/backend/actioninput.cpp index d82b3f2d4..8cacde740 100644 --- a/src/input/backend/actioninput.cpp +++ b/src/input/backend/actioninput.cpp @@ -55,14 +55,6 @@ ActionInput::ActionInput() { } -void ActionInput::updateFromPeer(Qt3DCore::QNode *peer) -{ - QActionInput *input = static_cast<QActionInput *>(peer); - m_buttons = input->buttons().toVector(); - if (input->sourceDevice()) - m_sourceDevice = input->sourceDevice()->id(); -} - void ActionInput::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QActionInputData>>(change); diff --git a/src/input/backend/actioninput_p.h b/src/input/backend/actioninput_p.h index 820bebae3..c3e80ba63 100644 --- a/src/input/backend/actioninput_p.h +++ b/src/input/backend/actioninput_p.h @@ -64,7 +64,6 @@ class Q_AUTOTEST_EXPORT ActionInput : public Qt3DCore::QBackendNode { public: ActionInput(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void cleanup(); inline QVector<int> buttons() const { return m_buttons; } diff --git a/src/input/backend/analogaxisinput.cpp b/src/input/backend/analogaxisinput.cpp index 8eb21bbcc..26611af08 100644 --- a/src/input/backend/analogaxisinput.cpp +++ b/src/input/backend/analogaxisinput.cpp @@ -55,13 +55,6 @@ AnalogAxisInput::AnalogAxisInput() { } -void AnalogAxisInput::updateFromPeer(Qt3DCore::QNode *peer) -{ - QAnalogAxisInput *input = static_cast<QAnalogAxisInput *>(peer); - m_axis = input->axis(); - AbstractAxisInput::updateFromPeer(peer); -} - void AnalogAxisInput::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QAnalogAxisInputData>>(change); diff --git a/src/input/backend/analogaxisinput_p.h b/src/input/backend/analogaxisinput_p.h index 900cba9b0..8febb10e7 100644 --- a/src/input/backend/analogaxisinput_p.h +++ b/src/input/backend/analogaxisinput_p.h @@ -63,7 +63,6 @@ class Q_AUTOTEST_EXPORT AnalogAxisInput : public AbstractAxisInput { public: AnalogAxisInput(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_FINAL; void cleanup() Q_DECL_FINAL; inline int axis() const { return m_axis; } diff --git a/src/input/backend/axis.cpp b/src/input/backend/axis.cpp index b22228f17..5c019336c 100644 --- a/src/input/backend/axis.cpp +++ b/src/input/backend/axis.cpp @@ -58,14 +58,6 @@ Axis::Axis() { } -void Axis::updateFromPeer(Qt3DCore::QNode *peer) -{ - QAxis *axis = static_cast<QAxis *>(peer); - const auto inputs = axis->inputs(); - for (QAbstractAxisInput *input : inputs) - m_inputs.push_back(input->id()); -} - void Axis::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QAxisData>>(change); diff --git a/src/input/backend/axis_p.h b/src/input/backend/axis_p.h index 264836fa6..e62f70d34 100644 --- a/src/input/backend/axis_p.h +++ b/src/input/backend/axis_p.h @@ -64,7 +64,6 @@ class Q_AUTOTEST_EXPORT Axis : public Qt3DCore::QBackendNode { public: Axis(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void cleanup(); inline QVector<Qt3DCore::QNodeId> inputs() const { return m_inputs; } inline float axisValue() const { return m_axisValue; } diff --git a/src/input/backend/axissetting.cpp b/src/input/backend/axissetting.cpp index da8371fd1..7876913b0 100644 --- a/src/input/backend/axissetting.cpp +++ b/src/input/backend/axissetting.cpp @@ -68,14 +68,6 @@ AxisSetting::AxisSetting() { } -void AxisSetting::updateFromPeer(Qt3DCore::QNode *peer) -{ - QAxisSetting *setting = static_cast<QAxisSetting *>(peer); - m_deadZoneRadius = setting->deadZoneRadius(); - m_axes = variantListToVector(setting->axes()); - m_smooth = setting->isSmoothEnabled(); -} - void AxisSetting::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QAxisSettingData>>(change); diff --git a/src/input/backend/axissetting_p.h b/src/input/backend/axissetting_p.h index be7dfc0b4..cd4959d69 100644 --- a/src/input/backend/axissetting_p.h +++ b/src/input/backend/axissetting_p.h @@ -62,8 +62,6 @@ class AxisSetting : public Qt3DCore::QBackendNode { public: AxisSetting(); - - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void cleanup(); inline float deadZoneRadius() const { return m_deadZoneRadius; } diff --git a/src/input/backend/buttonaxisinput.cpp b/src/input/backend/buttonaxisinput.cpp index bf69d17de..d4e45e547 100644 --- a/src/input/backend/buttonaxisinput.cpp +++ b/src/input/backend/buttonaxisinput.cpp @@ -55,14 +55,6 @@ ButtonAxisInput::ButtonAxisInput() { } -void ButtonAxisInput::updateFromPeer(Qt3DCore::QNode *peer) -{ - QButtonAxisInput *input = static_cast<QButtonAxisInput *>(peer); - m_scale = input->scale(); - m_buttons = input->buttons().toVector(); - AbstractAxisInput::updateFromPeer(peer); -} - void ButtonAxisInput::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QButtonAxisInputData>>(change); diff --git a/src/input/backend/buttonaxisinput_p.h b/src/input/backend/buttonaxisinput_p.h index 6537ec864..72f043bf4 100644 --- a/src/input/backend/buttonaxisinput_p.h +++ b/src/input/backend/buttonaxisinput_p.h @@ -63,7 +63,6 @@ class Q_AUTOTEST_EXPORT ButtonAxisInput : public AbstractAxisInput { public: ButtonAxisInput(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_FINAL; void cleanup() Q_DECL_FINAL; inline float scale() const { return m_scale; } diff --git a/src/input/backend/inputchord.cpp b/src/input/backend/inputchord.cpp index eaccc5d52..c711a22ab 100644 --- a/src/input/backend/inputchord.cpp +++ b/src/input/backend/inputchord.cpp @@ -59,15 +59,6 @@ InputChord::InputChord() { } -void InputChord::updateFromPeer(Qt3DCore::QNode *peer) -{ - QInputChord *input = static_cast<QInputChord *>(peer); - m_timeout = input->timeout(); - const auto chords = input->chords(); - for (QAbstractActionInput *i : chords) - m_chords.push_back(i->id()); -} - void InputChord::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QInputChordData>>(change); diff --git a/src/input/backend/inputchord_p.h b/src/input/backend/inputchord_p.h index efd48da65..db197df3c 100644 --- a/src/input/backend/inputchord_p.h +++ b/src/input/backend/inputchord_p.h @@ -64,7 +64,6 @@ class Q_AUTOTEST_EXPORT InputChord : public Qt3DCore::QBackendNode { public: InputChord(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void cleanup(); inline QVector<Qt3DCore::QNodeId> chords() const { return m_chords; } diff --git a/src/input/backend/inputsequence.cpp b/src/input/backend/inputsequence.cpp index dafe0e3fc..a140815f8 100644 --- a/src/input/backend/inputsequence.cpp +++ b/src/input/backend/inputsequence.cpp @@ -63,16 +63,6 @@ InputSequence::InputSequence() { } -void InputSequence::updateFromPeer(Qt3DCore::QNode *peer) -{ - QInputSequence *input = static_cast<QInputSequence *>(peer); - m_timeout = input->timeout(); - m_buttonInterval = input->buttonInterval(); - const auto sequences = input->sequences(); - for (QAbstractActionInput *i : sequences) - m_sequences.push_back(i->id()); -} - void InputSequence::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QInputSequenceData>>(change); diff --git a/src/input/backend/inputsequence_p.h b/src/input/backend/inputsequence_p.h index b008479e4..a76457f4e 100644 --- a/src/input/backend/inputsequence_p.h +++ b/src/input/backend/inputsequence_p.h @@ -64,7 +64,6 @@ class Q_AUTOTEST_EXPORT InputSequence : public Qt3DCore::QBackendNode { public: InputSequence(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void cleanup(); inline QVector<Qt3DCore::QNodeId> sequences() const { return m_sequences; } diff --git a/src/input/backend/inputsettings.cpp b/src/input/backend/inputsettings.cpp index 301947abb..26e1240fc 100644 --- a/src/input/backend/inputsettings.cpp +++ b/src/input/backend/inputsettings.cpp @@ -55,13 +55,6 @@ InputSettings::InputSettings() { } -void InputSettings::updateFromPeer(Qt3DCore::QNode *peer) -{ - QInputSettings *settings = static_cast<QInputSettings *>(peer); - m_eventSource = settings->eventSource(); - // Does it make sense to check for the enabled property for such a node ? -} - void InputSettings::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QInputSettingsData>>(change); diff --git a/src/input/backend/inputsettings_p.h b/src/input/backend/inputsettings_p.h index 46558229d..386716bc5 100644 --- a/src/input/backend/inputsettings_p.h +++ b/src/input/backend/inputsettings_p.h @@ -66,7 +66,6 @@ class InputSettings : public Qt3DCore::QBackendNode { public: InputSettings(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; inline QObject *eventSource() const { return m_eventSource; } protected: diff --git a/src/input/backend/keyboarddevice.cpp b/src/input/backend/keyboarddevice.cpp index c44cb3d60..70e1f9615 100644 --- a/src/input/backend/keyboarddevice.cpp +++ b/src/input/backend/keyboarddevice.cpp @@ -366,11 +366,6 @@ KeyboardDevice::KeyboardDevice() m_keyStates.keys[4] = 0; } -void KeyboardDevice::updateFromPeer(Qt3DCore::QNode *peer) -{ - QAbstractPhysicalDeviceBackendNode::updateFromPeer(peer); -} - void KeyboardDevice::cleanup() { QAbstractPhysicalDeviceBackendNode::cleanup(); diff --git a/src/input/backend/keyboarddevice_p.h b/src/input/backend/keyboarddevice_p.h index 6f37d80e5..19f90e683 100644 --- a/src/input/backend/keyboarddevice_p.h +++ b/src/input/backend/keyboarddevice_p.h @@ -70,8 +70,6 @@ class KeyboardDevice : public Qt3DInput::QAbstractPhysicalDeviceBackendNode { public: KeyboardDevice(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - void cleanup() Q_DECL_OVERRIDE; void requestFocusForInput(Qt3DCore::QNodeId inputId); diff --git a/src/input/backend/keyboardhandler.cpp b/src/input/backend/keyboardhandler.cpp index 7731f42c2..e8e0523df 100644 --- a/src/input/backend/keyboardhandler.cpp +++ b/src/input/backend/keyboardhandler.cpp @@ -61,20 +61,11 @@ KeyboardHandler::KeyboardHandler() { } -void KeyboardHandler::updateFromPeer(Qt3DCore::QNode *peer) -{ - QKeyboardHandler *input = static_cast<QKeyboardHandler *>(peer); - if (input->sourceDevice() != nullptr) - setSourcerDevice(input->sourceDevice()->id()); - m_focus = false; - if (input->focus()) - requestFocus(); -} - void KeyboardHandler::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QKeyboardHandlerData>>(change); const auto &data = typedChange->data; + setSourcerDevice(data.keyboardDeviceId); m_focus = false; if (data.focus) requestFocus(); diff --git a/src/input/backend/keyboardhandler_p.h b/src/input/backend/keyboardhandler_p.h index 495808a23..e1dfe8fa0 100644 --- a/src/input/backend/keyboardhandler_p.h +++ b/src/input/backend/keyboardhandler_p.h @@ -67,7 +67,7 @@ class KeyboardHandler : public Qt3DCore::QBackendNode { public: KeyboardHandler(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; + Qt3DCore::QNodeId keyboardDevice() const; void setInputHandler(InputHandler *handler); void setFocus(bool focus); diff --git a/src/input/backend/logicaldevice.cpp b/src/input/backend/logicaldevice.cpp index ccb6b5f37..06dbd867a 100644 --- a/src/input/backend/logicaldevice.cpp +++ b/src/input/backend/logicaldevice.cpp @@ -58,17 +58,6 @@ LogicalDevice::LogicalDevice() { } -void LogicalDevice::updateFromPeer(Qt3DCore::QNode *peer) -{ - QLogicalDevice *device = static_cast<QLogicalDevice *>(peer); - const auto axes = device->axes(); - for (QAxis *axis : axes) - m_axes.push_back(axis->id()); - const auto actions = device->actions(); - for (QAction *action : actions) - m_actions.push_back(action->id()); -} - void LogicalDevice::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QLogicalDeviceData>>(change); diff --git a/src/input/backend/logicaldevice_p.h b/src/input/backend/logicaldevice_p.h index dec5a78ef..a7fdcd0ef 100644 --- a/src/input/backend/logicaldevice_p.h +++ b/src/input/backend/logicaldevice_p.h @@ -66,8 +66,8 @@ class LogicalDevice : public Qt3DCore::QBackendNode { public: LogicalDevice(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void cleanup(); + inline QVector<Qt3DCore::QNodeId> axes() const { return m_axes; } inline QVector<Qt3DCore::QNodeId> actions() const { return m_actions; } diff --git a/src/input/backend/mousedevice.cpp b/src/input/backend/mousedevice.cpp index 07f7c1017..702628d28 100644 --- a/src/input/backend/mousedevice.cpp +++ b/src/input/backend/mousedevice.cpp @@ -41,6 +41,7 @@ #include "inputmanagers_p.h" #include "inputhandler_p.h" #include "qmousedevice.h" +#include <Qt3DInput/private/qmousedevice_p.h> #include <Qt3DCore/qnode.h> #include <Qt3DCore/qentity.h> @@ -61,11 +62,12 @@ MouseDevice::~MouseDevice() { } -void MouseDevice::updateFromPeer(Qt3DCore::QNode *peer) +void MouseDevice::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { - QAbstractPhysicalDeviceBackendNode::updateFromPeer(peer); - QMouseDevice *object = static_cast<QMouseDevice *>(peer); - m_sensitivity = object->sensitivity(); + const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QMouseDeviceData>>(change); + const auto &data = typedChange->data; + m_sensitivity = data.sensitivity; + QAbstractPhysicalDeviceBackendNode::initializeFromPeer(change); } void MouseDevice::setInputHandler(InputHandler *handler) diff --git a/src/input/backend/mousedevice_p.h b/src/input/backend/mousedevice_p.h index a0326ea19..3624aa8af 100644 --- a/src/input/backend/mousedevice_p.h +++ b/src/input/backend/mousedevice_p.h @@ -70,7 +70,6 @@ public: MouseDevice(); ~MouseDevice(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void setInputHandler(InputHandler *handler); void addMouseInput(Qt3DCore::QNodeId input); @@ -87,6 +86,8 @@ protected: void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; private: + void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_FINAL; + QVector<Qt3DCore::QNodeId> m_mouseInputs; InputHandler *m_inputHandler; diff --git a/src/input/backend/mousehandler.cpp b/src/input/backend/mousehandler.cpp index 12da2be8c..f4e3a45a0 100644 --- a/src/input/backend/mousehandler.cpp +++ b/src/input/backend/mousehandler.cpp @@ -65,13 +65,6 @@ MouseHandler::~MouseHandler() { } -void MouseHandler::updateFromPeer(Qt3DCore::QNode *peer) -{ - QMouseHandler *input = static_cast<QMouseHandler *>(peer); - if (input->sourceDevice() != nullptr) - setDevice(input->sourceDevice()->id()); -} - void MouseHandler::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QMouseHandlerData>>(change); diff --git a/src/input/backend/mousehandler_p.h b/src/input/backend/mousehandler_p.h index 7faca5da7..b2ae4f9ed 100644 --- a/src/input/backend/mousehandler_p.h +++ b/src/input/backend/mousehandler_p.h @@ -67,7 +67,6 @@ public: MouseHandler(); ~MouseHandler(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; Qt3DCore::QNodeId mouseDevice() const; void setInputHandler(InputHandler *handler); void mouseEvent(const QMouseEventPtr &event); diff --git a/src/input/backend/qabstractphysicaldevicebackendnode.cpp b/src/input/backend/qabstractphysicaldevicebackendnode.cpp index 9a33654fb..4b95d3e86 100644 --- a/src/input/backend/qabstractphysicaldevicebackendnode.cpp +++ b/src/input/backend/qabstractphysicaldevicebackendnode.cpp @@ -150,19 +150,20 @@ QAbstractPhysicalDeviceBackendNode::QAbstractPhysicalDeviceBackendNode(QAbstract { } -void QAbstractPhysicalDeviceBackendNode::updateFromPeer(Qt3DCore::QNode *peer) -{ - Q_D(QAbstractPhysicalDeviceBackendNode); - QAbstractPhysicalDevice *physicalDevice = static_cast<QAbstractPhysicalDevice *>(peer); - const auto axisSettings = physicalDevice->axisSettings(); - for (QAxisSetting *axisSetting : axisSettings) { - // Each axis setting can apply to more than one axis. If an axis is - // mentioned in more than one setting, we use the last one - const auto axisIds = variantListToVector(axisSetting->axes()); - for (int axisId : axisIds) - d->addAxisSetting(axisId, axisSetting->id()); - } -} +// TODO: Fold this into a job as described below +//void QAbstractPhysicalDeviceBackendNode::updateFromPeer(Qt3DCore::QNode *peer) +//{ +// Q_D(QAbstractPhysicalDeviceBackendNode); +// QAbstractPhysicalDevice *physicalDevice = static_cast<QAbstractPhysicalDevice *>(peer); +// const auto axisSettings = physicalDevice->axisSettings(); +// for (QAxisSetting *axisSetting : axisSettings) { +// // Each axis setting can apply to more than one axis. If an axis is +// // mentioned in more than one setting, we use the last one +// const auto axisIds = variantListToVector(axisSetting->axes()); +// for (int axisId : axisIds) +// d->addAxisSetting(axisId, axisSetting->id()); +// } +//} void QAbstractPhysicalDeviceBackendNode::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { diff --git a/src/input/backend/qabstractphysicaldevicebackendnode_p.h b/src/input/backend/qabstractphysicaldevicebackendnode_p.h index ce61d3ab1..aa789fe27 100644 --- a/src/input/backend/qabstractphysicaldevicebackendnode_p.h +++ b/src/input/backend/qabstractphysicaldevicebackendnode_p.h @@ -69,7 +69,6 @@ class QT3DINPUTSHARED_PRIVATE_EXPORT QAbstractPhysicalDeviceBackendNode : public { public: explicit QAbstractPhysicalDeviceBackendNode(QBackendNode::Mode mode); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; virtual void cleanup(); void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; diff --git a/src/logic/handler.cpp b/src/logic/handler.cpp index e1a8a6b34..777637640 100644 --- a/src/logic/handler.cpp +++ b/src/logic/handler.cpp @@ -52,11 +52,6 @@ Handler::Handler() { } -void Handler::updateFromPeer(Qt3DCore::QNode *peer) -{ - Q_UNUSED(peer); -} - void Handler::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { Q_UNUSED(change); diff --git a/src/logic/handler_p.h b/src/logic/handler_p.h index b3eaff7db..7b1fad788 100644 --- a/src/logic/handler_p.h +++ b/src/logic/handler_p.h @@ -67,8 +67,6 @@ class Handler : public Qt3DCore::QBackendNode public: Handler(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - void setManager(Manager *manager) { m_logicManager = manager; } Manager *logicManager() const { return m_logicManager; } diff --git a/src/render/backend/cameralens.cpp b/src/render/backend/cameralens.cpp index df1b3e29e..0447f5800 100644 --- a/src/render/backend/cameralens.cpp +++ b/src/render/backend/cameralens.cpp @@ -67,12 +67,6 @@ void CameraLens::cleanup() QBackendNode::setEnabled(false); } -void CameraLens::updateFromPeer(Qt3DCore::QNode *peer) -{ - QCameraLens *lens = static_cast<QCameraLens *>(peer); - setProjection(lens->projectionMatrix()); -} - void CameraLens::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QCameraLensData>>(change); diff --git a/src/render/backend/cameralens_p.h b/src/render/backend/cameralens_p.h index cceb23223..e5268da53 100644 --- a/src/render/backend/cameralens_p.h +++ b/src/render/backend/cameralens_p.h @@ -70,8 +70,6 @@ public: ~CameraLens(); void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - void setProjection(const QMatrix4x4 &projection); inline QMatrix4x4 projection() const { return m_projection; } diff --git a/src/render/backend/computecommand.cpp b/src/render/backend/computecommand.cpp index d17d4d173..018833bba 100644 --- a/src/render/backend/computecommand.cpp +++ b/src/render/backend/computecommand.cpp @@ -41,6 +41,7 @@ #include <Qt3DCore/qnode.h> #include <Qt3DCore/qnodepropertychange.h> #include <Qt3DRender/qcomputecommand.h> +#include <Qt3DRender/private/qcomputecommand_p.h> #include <Qt3DRender/private/abstractrenderer_p.h> QT_BEGIN_NAMESPACE @@ -69,12 +70,13 @@ void ComputeCommand::cleanup() m_workGroups[2] = 1; } -void ComputeCommand::updateFromPeer(Qt3DCore::QNode *peer) +void ComputeCommand::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { - QComputeCommand *computeCommand = static_cast<QComputeCommand *>(peer); - m_workGroups[0] = computeCommand->workGroupX(); - m_workGroups[1] = computeCommand->workGroupY(); - m_workGroups[2] = computeCommand->workGroupZ(); + const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QComputeCommandData>>(change); + const auto &data = typedChange->data; + m_workGroups[0] = data.workGroupX; + m_workGroups[1] = data.workGroupY; + m_workGroups[2] = data.workGroupZ; if (m_renderer != nullptr) BackendNode::markDirty(AbstractRenderer::ComputeDirty); } diff --git a/src/render/backend/computecommand_p.h b/src/render/backend/computecommand_p.h index e407da0ae..c50354d37 100644 --- a/src/render/backend/computecommand_p.h +++ b/src/render/backend/computecommand_p.h @@ -68,8 +68,6 @@ public: ~ComputeCommand(); void cleanup(); - - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; inline int x() const Q_DECL_NOEXCEPT { return m_workGroups[0]; } @@ -77,6 +75,7 @@ public: inline int z() const Q_DECL_NOEXCEPT { return m_workGroups[2]; } private: + void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_OVERRIDE; int m_workGroups[3]; }; diff --git a/src/render/backend/entity.cpp b/src/render/backend/entity.cpp index 37dea8c8d..5de5d44da 100644 --- a/src/render/backend/entity.cpp +++ b/src/render/backend/entity.cpp @@ -142,40 +142,6 @@ void Entity::setHandle(HEntity handle) m_handle = handle; } -void Entity::updateFromPeer(Qt3DCore::QNode *peer) -{ - QEntity *entity = static_cast<QEntity *>(peer); - QEntityPrivate *entityPrivate = static_cast<QEntityPrivate *>(QNodePrivate::get(entity)); - const QNodeId parentEntityId = entityPrivate->parentEntityId(); - - m_objectName = peer->objectName(); - m_worldTransform = m_nodeManagers->worldMatrixManager()->getOrAcquireHandle(peerId()); - - // TO DO: Suboptimal -> Maybe have a Hash<QComponent, QEntityList> instead - m_transformComponent = QNodeId(); - m_materialComponent = QNodeId(); - m_cameraComponent = QNodeId(); - m_geometryRendererComponent = QNodeId(); - m_objectPickerComponent = QNodeId(); - m_boundingVolumeDebugComponent = QNodeId(); - m_layerComponents.clear(); - m_shaderDataComponents.clear(); - m_lightComponents.clear(); - m_localBoundingVolume.reset(new Sphere(peerId())); - m_worldBoundingVolume.reset(new Sphere(peerId())); - m_worldBoundingVolumeWithChildren.reset(new Sphere(peerId())); - - const auto components = entity->components(); - for (QComponent *comp : components) - addComponent(comp); - - if (!parentEntityId.isNull()) { - setParentHandle(m_nodeManagers->renderNodesManager()->lookupHandle(parentEntityId)); - } else { - qCDebug(Render::RenderNodes) << Q_FUNC_INFO << "No parent entity found for Entity" << peerId(); - } -} - void Entity::initializeFromPeer(const QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<QNodeCreatedChange<Qt3DCore::QEntityData>>(change); diff --git a/src/render/backend/entity_p.h b/src/render/backend/entity_p.h index 65389295c..f2aa65501 100644 --- a/src/render/backend/entity_p.h +++ b/src/render/backend/entity_p.h @@ -90,7 +90,6 @@ public: void setParentHandle(HEntity parentHandle); void setNodeManagers(NodeManagers *manager); void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void dump() const; diff --git a/src/render/backend/layer.cpp b/src/render/backend/layer.cpp index 19eaa40f7..8799a3112 100644 --- a/src/render/backend/layer.cpp +++ b/src/render/backend/layer.cpp @@ -63,17 +63,8 @@ Layer::~Layer() void Layer::cleanup() { - QBackendNode::setEnabled(false); -} - -void Layer::updateFromPeer(Qt3DCore::QNode *peer) -{ - QLayer *layer = static_cast<QLayer *>(peer); - m_layers = layer->names(); m_layerIds.clear(); - m_layerIds.reserve(m_layers.size()); - for (const QString &name : qAsConst(m_layers)) - m_layerIds.push_back(StringToInt::lookupId(name)); + QBackendNode::setEnabled(false); } void Layer::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) @@ -81,6 +72,7 @@ void Layer::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QLayerData>>(change); const auto &data = typedChange->data; m_layers = data.names; + m_layerIds.reserve(m_layers.size()); for (const QString &name : qAsConst(m_layers)) m_layerIds.push_back(StringToInt::lookupId(name)); } diff --git a/src/render/backend/layer_p.h b/src/render/backend/layer_p.h index 1705f7e63..69ef02f81 100644 --- a/src/render/backend/layer_p.h +++ b/src/render/backend/layer_p.h @@ -72,8 +72,6 @@ public: ~Layer(); void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - QStringList layers() const; QVector<int> layerIds() const Q_DECL_NOEXCEPT { return m_layerIds; } void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; diff --git a/src/render/backend/rendersettings.cpp b/src/render/backend/rendersettings.cpp index 94cd165da..63be00563 100644 --- a/src/render/backend/rendersettings.cpp +++ b/src/render/backend/rendersettings.cpp @@ -57,15 +57,6 @@ RenderSettings::RenderSettings() cleanup(); } -void RenderSettings::updateFromPeer(Qt3DCore::QNode *peer) -{ - QRenderSettings *settings = static_cast<QRenderSettings *>(peer); - m_pickMethod = settings->pickingSettings()->pickMethod(); - m_pickResultMode = settings->pickingSettings()->pickResultMode(); - m_activeFrameGraph = settings->activeFrameGraph()->id(); - m_renderPolicy = settings->renderPolicy(); -} - void RenderSettings::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderSettingsData>>(change); diff --git a/src/render/backend/rendersettings_p.h b/src/render/backend/rendersettings_p.h index 0b680f7fa..643959a8f 100644 --- a/src/render/backend/rendersettings_p.h +++ b/src/render/backend/rendersettings_p.h @@ -67,7 +67,6 @@ class RenderSettings : public BackendNode public: RenderSettings(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void cleanup(); void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; diff --git a/src/render/backend/rendertarget.cpp b/src/render/backend/rendertarget.cpp index 3e9d2c83a..4521852c3 100644 --- a/src/render/backend/rendertarget.cpp +++ b/src/render/backend/rendertarget.cpp @@ -58,15 +58,6 @@ RenderTarget::RenderTarget() { } -void RenderTarget::updateFromPeer(Qt3DCore::QNode *peer) -{ - QRenderTarget *target = static_cast<QRenderTarget *>(peer); - m_renderOutputs.clear(); - const auto outputs = target->outputs(); - for (QRenderTargetOutput *att : outputs) - appendRenderOutput(att->id()); -} - void RenderTarget::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderTargetData>>(change); @@ -76,6 +67,7 @@ void RenderTarget::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr void RenderTarget::cleanup() { + m_renderOutputs.clear(); QBackendNode::setEnabled(false); } diff --git a/src/render/backend/rendertarget_p.h b/src/render/backend/rendertarget_p.h index 6481b60ba..df73cab9a 100644 --- a/src/render/backend/rendertarget_p.h +++ b/src/render/backend/rendertarget_p.h @@ -69,8 +69,6 @@ class RenderTarget : public BackendNode { public: RenderTarget(); - - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void cleanup(); void appendRenderOutput(Qt3DCore::QNodeId outputId); diff --git a/src/render/backend/rendertargetoutput.cpp b/src/render/backend/rendertargetoutput.cpp index 917a6c332..4b4c1e65a 100644 --- a/src/render/backend/rendertargetoutput.cpp +++ b/src/render/backend/rendertargetoutput.cpp @@ -40,6 +40,7 @@ #include <Qt3DRender/private/rendertargetoutput_p.h> #include <Qt3DCore/qnodepropertychange.h> #include <Qt3DRender/qtexture.h> +#include <Qt3DRender/private/qrendertargetoutput_p.h> #include <QVariant> QT_BEGIN_NAMESPACE @@ -54,16 +55,15 @@ RenderTargetOutput::RenderTargetOutput() { } -void RenderTargetOutput::updateFromPeer(Qt3DCore::QNode *peer) +void RenderTargetOutput::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { - QRenderTargetOutput *attachment = static_cast<QRenderTargetOutput *>(peer); - - m_attachmentData.m_mipLevel = attachment->mipLevel(); - m_attachmentData.m_layer = attachment->layer(); - m_attachmentData.m_point = attachment->attachmentPoint(); - m_attachmentData.m_face = attachment->face(); - if (attachment->texture()) - m_attachmentData.m_textureUuid = attachment->texture()->id(); + const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderTargetOutputData>>(change); + const auto &data = typedChange->data; + m_attachmentData.m_point = data.attachmentPoint; + m_attachmentData.m_mipLevel = data.mipLevel; + m_attachmentData.m_layer = data.layer; + m_attachmentData.m_face = data.face; + m_attachmentData.m_textureUuid = data.textureId; } Qt3DCore::QNodeId RenderTargetOutput::textureUuid() const diff --git a/src/render/backend/rendertargetoutput_p.h b/src/render/backend/rendertargetoutput_p.h index fb881e873..14daa84e9 100644 --- a/src/render/backend/rendertargetoutput_p.h +++ b/src/render/backend/rendertargetoutput_p.h @@ -70,8 +70,6 @@ class RenderTargetOutput : public BackendNode public: RenderTargetOutput(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - Qt3DCore::QNodeId textureUuid() const; int mipLevel() const; int layer() const; @@ -82,6 +80,7 @@ public: Attachment attachment() const; private: + void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_FINAL; Qt3DCore::QNodeId m_attachmentUuid; Attachment m_attachmentData; }; diff --git a/src/render/backend/transform.cpp b/src/render/backend/transform.cpp index f639fda98..719eab1a7 100644 --- a/src/render/backend/transform.cpp +++ b/src/render/backend/transform.cpp @@ -59,16 +59,6 @@ Transform::Transform() { } -void Transform::updateFromPeer(Qt3DCore::QNode *peer) -{ - Qt3DCore::QTransform *transform = static_cast<Qt3DCore::QTransform *>(peer); - - m_rotation = transform->rotation(); - m_scale = transform->scale3D(); - m_translation = transform->translation(); - updateMatrix(); -} - void Transform::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QTransformData>>(change); diff --git a/src/render/backend/transform_p.h b/src/render/backend/transform_p.h index 3c64d6106..a36005d2d 100644 --- a/src/render/backend/transform_p.h +++ b/src/render/backend/transform_p.h @@ -70,7 +70,6 @@ class Transform : public BackendNode public: Transform(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; QMatrix4x4 transformMatrix() const; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; diff --git a/src/render/framegraph/cameraselectornode.cpp b/src/render/framegraph/cameraselectornode.cpp index aaea9c41a..09095ff7c 100644 --- a/src/render/framegraph/cameraselectornode.cpp +++ b/src/render/framegraph/cameraselectornode.cpp @@ -57,14 +57,6 @@ CameraSelector::CameraSelector() { } -void CameraSelector::updateFromPeer(Qt3DCore::QNode *peer) -{ - QCameraSelector *selector = static_cast<QCameraSelector *>(peer); - m_cameraUuid = QNodeId(); - if (selector->camera() != nullptr) - m_cameraUuid = selector->camera()->id(); -} - void CameraSelector::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { FrameGraphNode::initializeFromPeer(change); diff --git a/src/render/framegraph/cameraselectornode_p.h b/src/render/framegraph/cameraselectornode_p.h index 8d6def2cd..e20d0cf8e 100644 --- a/src/render/framegraph/cameraselectornode_p.h +++ b/src/render/framegraph/cameraselectornode_p.h @@ -69,8 +69,6 @@ class CameraSelector : public FrameGraphNode public: CameraSelector(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; Qt3DCore::QNodeId cameraUuid() const; diff --git a/src/render/framegraph/clearbuffers.cpp b/src/render/framegraph/clearbuffers.cpp index 7b6bc4c83..2908dc03c 100644 --- a/src/render/framegraph/clearbuffers.cpp +++ b/src/render/framegraph/clearbuffers.cpp @@ -56,15 +56,6 @@ ClearBuffers::ClearBuffers() { } -void ClearBuffers::updateFromPeer(Qt3DCore::QNode *peer) -{ - QClearBuffers *clearBuffers = static_cast<QClearBuffers *>(peer); - m_type = clearBuffers->buffers(); - m_clearColor = clearBuffers->clearColor(); - m_clearDepthValue = clearBuffers->clearDepthValue(); - m_clearStencilValue = clearBuffers->clearStencilValue(); -} - void ClearBuffers::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { FrameGraphNode::initializeFromPeer(change); diff --git a/src/render/framegraph/clearbuffers_p.h b/src/render/framegraph/clearbuffers_p.h index f53bde2db..4b2f262bd 100644 --- a/src/render/framegraph/clearbuffers_p.h +++ b/src/render/framegraph/clearbuffers_p.h @@ -67,7 +67,6 @@ class ClearBuffers : public FrameGraphNode public: ClearBuffers(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; QClearBuffers::BufferType type() const; QColor clearColor() const; diff --git a/src/render/framegraph/dispatchcompute.cpp b/src/render/framegraph/dispatchcompute.cpp index 5cd8e9e45..3cebb7e02 100644 --- a/src/render/framegraph/dispatchcompute.cpp +++ b/src/render/framegraph/dispatchcompute.cpp @@ -66,14 +66,6 @@ void DispatchCompute::cleanup() m_workGroups[2] = 1; } -void DispatchCompute::updateFromPeer(Qt3DCore::QNode *peer) -{ - QDispatchCompute *computeDispatch = static_cast<QDispatchCompute *>(peer); - m_workGroups[0] = computeDispatch->workGroupX(); - m_workGroups[1] = computeDispatch->workGroupY(); - m_workGroups[2] = computeDispatch->workGroupZ(); -} - void DispatchCompute::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { FrameGraphNode::initializeFromPeer(change); diff --git a/src/render/framegraph/dispatchcompute_p.h b/src/render/framegraph/dispatchcompute_p.h index 7b611f34d..724bce742 100644 --- a/src/render/framegraph/dispatchcompute_p.h +++ b/src/render/framegraph/dispatchcompute_p.h @@ -68,7 +68,6 @@ public: void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; inline int x() const Q_DECL_NOEXCEPT { return m_workGroups[0]; } inline int y() const Q_DECL_NOEXCEPT { return m_workGroups[1]; } diff --git a/src/render/framegraph/frustumculling.cpp b/src/render/framegraph/frustumculling.cpp index 6ccb9ed11..dea5840ba 100644 --- a/src/render/framegraph/frustumculling.cpp +++ b/src/render/framegraph/frustumculling.cpp @@ -56,11 +56,6 @@ FrustumCulling::~FrustumCulling() { } -void FrustumCulling::updateFromPeer(Qt3DCore::QNode *peer) -{ - Q_UNUSED(peer) -} - } // namespace Render } // namespace Qt3DRender diff --git a/src/render/framegraph/frustumculling_p.h b/src/render/framegraph/frustumculling_p.h index 1f87100b4..7f9959c6e 100644 --- a/src/render/framegraph/frustumculling_p.h +++ b/src/render/framegraph/frustumculling_p.h @@ -64,8 +64,6 @@ class FrustumCulling : public FrameGraphNode public: FrustumCulling(); ~FrustumCulling(); - - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; }; } // namespace Render diff --git a/src/render/framegraph/layerfilternode.cpp b/src/render/framegraph/layerfilternode.cpp index 998a320f0..6a61151fb 100644 --- a/src/render/framegraph/layerfilternode.cpp +++ b/src/render/framegraph/layerfilternode.cpp @@ -55,12 +55,6 @@ LayerFilterNode::LayerFilterNode() { } -void LayerFilterNode::updateFromPeer(Qt3DCore::QNode *peer) -{ - QLayerFilter *layerFilter = static_cast<QLayerFilter *>(peer); - setLayers(layerFilter->layers()); -} - void LayerFilterNode::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { FrameGraphNode::initializeFromPeer(change); diff --git a/src/render/framegraph/layerfilternode_p.h b/src/render/framegraph/layerfilternode_p.h index a559864ba..6056a2a2f 100644 --- a/src/render/framegraph/layerfilternode_p.h +++ b/src/render/framegraph/layerfilternode_p.h @@ -69,7 +69,6 @@ class LayerFilterNode : public FrameGraphNode public: LayerFilterNode(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; QStringList layers() const; QVector<int> layerIds() const Q_DECL_NOEXCEPT { return m_layerIds; } diff --git a/src/render/framegraph/nodraw.cpp b/src/render/framegraph/nodraw.cpp index 771ebc7b6..96af7ca4c 100644 --- a/src/render/framegraph/nodraw.cpp +++ b/src/render/framegraph/nodraw.cpp @@ -57,11 +57,6 @@ NoDraw::~NoDraw() { } -void NoDraw::updateFromPeer(Qt3DCore::QNode *peer) -{ - Q_UNUSED(peer) -} - } // namespace Render } // namespace Qt3DRender diff --git a/src/render/framegraph/nodraw_p.h b/src/render/framegraph/nodraw_p.h index 46c42c77a..ae9fa6713 100644 --- a/src/render/framegraph/nodraw_p.h +++ b/src/render/framegraph/nodraw_p.h @@ -64,8 +64,6 @@ class NoDraw : public FrameGraphNode public: NoDraw(); ~NoDraw(); - - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; }; } // namespace Render diff --git a/src/render/framegraph/renderpassfilternode.cpp b/src/render/framegraph/renderpassfilternode.cpp index 32a478cee..e5d143fb1 100644 --- a/src/render/framegraph/renderpassfilternode.cpp +++ b/src/render/framegraph/renderpassfilternode.cpp @@ -58,25 +58,13 @@ RenderPassFilter::RenderPassFilter() { } -void RenderPassFilter::updateFromPeer(Qt3DCore::QNode *peer) -{ - QRenderPassFilter *filter = static_cast<QRenderPassFilter *>(peer); - m_filters.clear(); - m_parameterPack.clear(); - const auto criteria = filter->matchAny(); - for (QFilterKey *criterion : criteria) - appendFilter(criterion->id()); - const auto parameters = filter->parameters(); - for (QParameter *p : parameters) - m_parameterPack.appendParameter(p->id()); -} - void RenderPassFilter::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { FrameGraphNode::initializeFromPeer(change); const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderPassFilterData>>(change); const auto &data = typedChange->data; m_filters = data.matchIds; + m_parameterPack.clear(); m_parameterPack.setParameters(data.parameterIds); } diff --git a/src/render/framegraph/renderpassfilternode_p.h b/src/render/framegraph/renderpassfilternode_p.h index 4047beb89..ee9137b04 100644 --- a/src/render/framegraph/renderpassfilternode_p.h +++ b/src/render/framegraph/renderpassfilternode_p.h @@ -67,13 +67,11 @@ class QHandle; namespace Render { -class RenderPassFilter - : public Render::FrameGraphNode +class RenderPassFilter : public Render::FrameGraphNode { public: RenderPassFilter(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; QVector<Qt3DCore::QNodeId> filters() const; QVector<Qt3DCore::QNodeId> parameters() const; void appendFilter(Qt3DCore::QNodeId criterionId); diff --git a/src/render/framegraph/rendersurfaceselector.cpp b/src/render/framegraph/rendersurfaceselector.cpp index 9c77a6024..894fbb815 100644 --- a/src/render/framegraph/rendersurfaceselector.cpp +++ b/src/render/framegraph/rendersurfaceselector.cpp @@ -80,22 +80,6 @@ RenderSurfaceSelector::RenderSurfaceSelector() { } -void RenderSurfaceSelector::updateFromPeer(Qt3DCore::QNode *peer) -{ - QRenderSurfaceSelector *selector = static_cast<QRenderSurfaceSelector *>(peer); - m_surface = surfaceFromQObject(selector->surface()); - setRenderTargetSize(selector->externalRenderTargetSize()); - if (m_surface) { - if (m_surface->surfaceClass() == QSurface::Window) { - QWindow *window = static_cast<QWindow *>(m_surface); - m_width = window->width(); - m_height = window->height(); - if (window->screen()) - m_devicePixelRatio = window->screen()->devicePixelRatio(); - } - } -} - void RenderSurfaceSelector::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { FrameGraphNode::initializeFromPeer(change); diff --git a/src/render/framegraph/rendersurfaceselector_p.h b/src/render/framegraph/rendersurfaceselector_p.h index a623d9b34..6602cd18b 100644 --- a/src/render/framegraph/rendersurfaceselector_p.h +++ b/src/render/framegraph/rendersurfaceselector_p.h @@ -68,7 +68,6 @@ public: QSize renderTargetSize() const; void setRenderTargetSize(const QSize &size) { m_renderTargetSize = size; } - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; QSurface *surface() const { return m_surface; } diff --git a/src/render/framegraph/rendertargetselectornode.cpp b/src/render/framegraph/rendertargetselectornode.cpp index b1bc6f976..a29230c11 100644 --- a/src/render/framegraph/rendertargetselectornode.cpp +++ b/src/render/framegraph/rendertargetselectornode.cpp @@ -59,15 +59,6 @@ RenderTargetSelector::RenderTargetSelector() : { } -void RenderTargetSelector::updateFromPeer(Qt3DCore::QNode *peer) -{ - QRenderTargetSelector *selector = static_cast<QRenderTargetSelector *>(peer); - m_renderTargetUuid = QNodeId(); - if (selector->target() != nullptr) - m_renderTargetUuid = selector->target()->id(); - m_outputs = selector->outputs(); -} - void RenderTargetSelector::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { FrameGraphNode::initializeFromPeer(change); diff --git a/src/render/framegraph/rendertargetselectornode_p.h b/src/render/framegraph/rendertargetselectornode_p.h index 5d932c6ee..359a433ec 100644 --- a/src/render/framegraph/rendertargetselectornode_p.h +++ b/src/render/framegraph/rendertargetselectornode_p.h @@ -66,7 +66,6 @@ class RenderTargetSelector : public FrameGraphNode public: RenderTargetSelector(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; Qt3DCore::QNodeId renderTargetUuid() const { return m_renderTargetUuid; } diff --git a/src/render/framegraph/sortpolicy.cpp b/src/render/framegraph/sortpolicy.cpp index f04243d6a..697bc0476 100644 --- a/src/render/framegraph/sortpolicy.cpp +++ b/src/render/framegraph/sortpolicy.cpp @@ -53,14 +53,6 @@ SortPolicy::SortPolicy() { } -void SortPolicy::updateFromPeer(Qt3DCore::QNode *peer) -{ - QSortPolicy *sortPolicy = static_cast<QSortPolicy *>(peer); - m_sortTypes.clear(); - Q_FOREACH (QSortPolicy::SortType c, sortPolicy->sortTypes()) - m_sortTypes.append(c); -} - void SortPolicy::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) { QNodePropertyChangePtr propertyChange = qSharedPointerCast<QNodePropertyChange>(e); diff --git a/src/render/framegraph/sortpolicy_p.h b/src/render/framegraph/sortpolicy_p.h index 749965b47..32d2888c3 100644 --- a/src/render/framegraph/sortpolicy_p.h +++ b/src/render/framegraph/sortpolicy_p.h @@ -65,7 +65,6 @@ class SortPolicy : public FrameGraphNode public: SortPolicy(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; QVector<Qt3DRender::QSortPolicy::SortType> sortTypes() const; diff --git a/src/render/framegraph/statesetnode.cpp b/src/render/framegraph/statesetnode.cpp index ecc72217f..e0dc9b45d 100644 --- a/src/render/framegraph/statesetnode.cpp +++ b/src/render/framegraph/statesetnode.cpp @@ -63,15 +63,6 @@ StateSetNode::~StateSetNode() { } -void StateSetNode::updateFromPeer(Qt3DCore::QNode *peer) -{ - QRenderStateSet *stateSet = static_cast<QRenderStateSet*>(peer); - - const auto renderStates = stateSet->renderStates(); - for (QRenderState *renderState : renderStates) - appendRenderState(renderState->id()); -} - void StateSetNode::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { FrameGraphNode::initializeFromPeer(change); diff --git a/src/render/framegraph/statesetnode_p.h b/src/render/framegraph/statesetnode_p.h index 189e326e8..bb7b88603 100644 --- a/src/render/framegraph/statesetnode_p.h +++ b/src/render/framegraph/statesetnode_p.h @@ -66,8 +66,6 @@ public: StateSetNode(); ~StateSetNode(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - protected: void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; diff --git a/src/render/framegraph/techniquefilternode.cpp b/src/render/framegraph/techniquefilternode.cpp index 79c249c85..08a7600c7 100644 --- a/src/render/framegraph/techniquefilternode.cpp +++ b/src/render/framegraph/techniquefilternode.cpp @@ -59,19 +59,6 @@ TechniqueFilter::TechniqueFilter() { } -void TechniqueFilter::updateFromPeer(Qt3DCore::QNode *peer) -{ - QTechniqueFilter *filter = static_cast<QTechniqueFilter *>(peer); - m_filters.clear(); - m_parameterPack.clear(); - const auto criteria = filter->matchAll(); - for (QFilterKey *criterion : criteria) - appendFilter(criterion->id()); - const auto parameters = filter->parameters(); - for (QParameter *p : parameters) - m_parameterPack.appendParameter(p->id()); -} - void TechniqueFilter::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { FrameGraphNode::initializeFromPeer(change); diff --git a/src/render/framegraph/techniquefilternode_p.h b/src/render/framegraph/techniquefilternode_p.h index 61b7a4b6d..091dc1cf7 100644 --- a/src/render/framegraph/techniquefilternode_p.h +++ b/src/render/framegraph/techniquefilternode_p.h @@ -75,7 +75,6 @@ class TechniqueFilter { public: TechniqueFilter(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; QVector<Qt3DCore::QNodeId> parameters() const; diff --git a/src/render/framegraph/viewportnode.cpp b/src/render/framegraph/viewportnode.cpp index e0b3d62bc..55d7d16c1 100644 --- a/src/render/framegraph/viewportnode.cpp +++ b/src/render/framegraph/viewportnode.cpp @@ -58,15 +58,6 @@ ViewportNode::ViewportNode() { } -void ViewportNode::updateFromPeer(Qt3DCore::QNode *peer) -{ - QViewport *viewport = static_cast<QViewport *>(peer); - setXMin(viewport->normalizedRect().x()); - setXMax(viewport->normalizedRect().width()); - setYMin(viewport->normalizedRect().y()); - setYMax(viewport->normalizedRect().height()); -} - void ViewportNode::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { FrameGraphNode::initializeFromPeer(change); diff --git a/src/render/framegraph/viewportnode_p.h b/src/render/framegraph/viewportnode_p.h index c20d05767..882aa4d86 100644 --- a/src/render/framegraph/viewportnode_p.h +++ b/src/render/framegraph/viewportnode_p.h @@ -69,8 +69,6 @@ class ViewportNode : public FrameGraphNode public: ViewportNode(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - float xMin() const; void setXMin(float xMin); diff --git a/src/render/frontend/qcomputecommand.cpp b/src/render/frontend/qcomputecommand.cpp index 41883f76a..2e1ea7421 100644 --- a/src/render/frontend/qcomputecommand.cpp +++ b/src/render/frontend/qcomputecommand.cpp @@ -102,6 +102,17 @@ void QComputeCommand::setWorkGroupZ(int workGroupZ) } } +Qt3DCore::QNodeCreatedChangeBasePtr QComputeCommand::createNodeCreationChange() const +{ + auto creationChange = Qt3DCore::QNodeCreatedChangePtr<QComputeCommandData>::create(this); + auto &data = creationChange->data; + Q_D(const QComputeCommand); + data.workGroupX = d->m_workGroupX; + data.workGroupY = d->m_workGroupY; + data.workGroupZ = d->m_workGroupZ; + return creationChange; +} + } // Render QT_END_NAMESPACE diff --git a/src/render/frontend/qcomputecommand.h b/src/render/frontend/qcomputecommand.h index d901321de..e497574d0 100644 --- a/src/render/frontend/qcomputecommand.h +++ b/src/render/frontend/qcomputecommand.h @@ -76,8 +76,7 @@ Q_SIGNALS: private: Q_DECLARE_PRIVATE(QComputeCommand) - - // TODO: Handle creation changes + Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE; }; } // Qt3DRender diff --git a/src/render/frontend/qcomputecommand_p.h b/src/render/frontend/qcomputecommand_p.h index 536008e7e..3b595ef99 100644 --- a/src/render/frontend/qcomputecommand_p.h +++ b/src/render/frontend/qcomputecommand_p.h @@ -67,6 +67,13 @@ public: int m_workGroupZ; }; +struct QComputeCommandData +{ + int workGroupX; + int workGroupY; + int workGroupZ; +}; + } // Qt3DRender QT_END_NAMESPACE diff --git a/src/render/frontend/qrendertargetoutput.cpp b/src/render/frontend/qrendertargetoutput.cpp index 1f7a7ea5d..213422226 100644 --- a/src/render/frontend/qrendertargetoutput.cpp +++ b/src/render/frontend/qrendertargetoutput.cpp @@ -36,8 +36,9 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "qrendertargetoutput_p.h" + #include "qrendertargetoutput.h" +#include "qrendertargetoutput_p.h" #include "qtexture.h" #include <Qt3DCore/qnodepropertychange.h> @@ -145,6 +146,19 @@ QAbstractTexture::CubeMapFace QRenderTargetOutput::face() const return d->m_face; } +Qt3DCore::QNodeCreatedChangeBasePtr QRenderTargetOutput::createNodeCreationChange() const +{ + auto creationChange = Qt3DCore::QNodeCreatedChangePtr<QRenderTargetOutputData>::create(this); + auto &data = creationChange->data; + Q_D(const QRenderTargetOutput); + data.textureId = qIdForNode(texture()); + data.attachmentPoint = d->m_attachmentPoint; + data.mipLevel = d->m_mipLevel; + data.layer = d->m_layer; + data.face = d->m_face; + return creationChange; +} + } // namespace Qt3DRender QT_END_NAMESPACE diff --git a/src/render/frontend/qrendertargetoutput.h b/src/render/frontend/qrendertargetoutput.h index a56644028..15a6f7321 100644 --- a/src/render/frontend/qrendertargetoutput.h +++ b/src/render/frontend/qrendertargetoutput.h @@ -110,6 +110,7 @@ protected: explicit QRenderTargetOutput(QRenderTargetOutputPrivate &dd, Qt3DCore::QNode *parent = nullptr); private: + Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE; Q_DECLARE_PRIVATE(QRenderTargetOutput) }; diff --git a/src/render/frontend/qrendertargetoutput_p.h b/src/render/frontend/qrendertargetoutput_p.h index a91abc053..abd352ac9 100644 --- a/src/render/frontend/qrendertargetoutput_p.h +++ b/src/render/frontend/qrendertargetoutput_p.h @@ -74,6 +74,15 @@ public: QAbstractTexture::CubeMapFace m_face; }; +struct QRenderTargetOutputData +{ + Qt3DCore::QNodeId textureId; + QRenderTargetOutput::AttachmentPoint attachmentPoint; + int mipLevel; + int layer; + QAbstractTexture::CubeMapFace face; +}; + } // namespace Qt3DRender QT_END_NAMESPACE diff --git a/src/render/geometry/attribute.cpp b/src/render/geometry/attribute.cpp index ebf4dae8d..7e63f6ecf 100644 --- a/src/render/geometry/attribute.cpp +++ b/src/render/geometry/attribute.cpp @@ -83,25 +83,6 @@ void Attribute::cleanup() m_nameId = 0; } -void Attribute::updateFromPeer(Qt3DCore::QNode *peer) -{ - QAttribute *attribute = static_cast<QAttribute *>(peer); - if (attribute) { - m_vertexDataType = attribute->vertexBaseType(); - m_vertexSize = attribute->vertexSize(); - m_count = attribute->count(); - m_byteOffset = attribute->byteOffset(); - m_byteStride = attribute->byteStride(); - m_divisor = attribute->divisor(); - m_attributeType = attribute->attributeType(); - m_name = attribute->name(); - m_nameId = StringToInt::lookupId(m_name); - if (attribute->buffer()) - m_bufferId = attribute->buffer()->id(); - m_attributeDirty = true; - } -} - void Attribute::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QAttributeData>>(change); diff --git a/src/render/geometry/attribute_p.h b/src/render/geometry/attribute_p.h index 8115deafc..6364639dd 100644 --- a/src/render/geometry/attribute_p.h +++ b/src/render/geometry/attribute_p.h @@ -68,7 +68,6 @@ public: void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; inline Qt3DCore::QNodeId bufferId() const { return m_bufferId; } diff --git a/src/render/geometry/buffer.cpp b/src/render/geometry/buffer.cpp index a53bec0fc..c392b5961 100644 --- a/src/render/geometry/buffer.cpp +++ b/src/render/geometry/buffer.cpp @@ -96,22 +96,6 @@ void Buffer::executeFunctor() } } -void Buffer::updateFromPeer(Qt3DCore::QNode *peer) -{ - QBuffer *buffer = static_cast<QBuffer *>(peer); - if (buffer != nullptr) { - m_type = buffer->type(); - m_usage = buffer->usage(); - m_data = buffer->data(); - m_functor = buffer->dataGenerator(); - // Add to dirty list in the manager - if (m_functor && m_manager != nullptr) - m_manager->addDirtyBuffer(peerId()); - m_bufferDirty = true; - m_syncData = buffer->isSyncData(); - } -} - void Buffer::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QBufferData>>(change); diff --git a/src/render/geometry/buffer_p.h b/src/render/geometry/buffer_p.h index 87938aba9..d6bfe1d8f 100644 --- a/src/render/geometry/buffer_p.h +++ b/src/render/geometry/buffer_p.h @@ -70,7 +70,6 @@ public: ~Buffer(); void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; void setManager(BufferManager *manager); diff --git a/src/render/geometry/geometry.cpp b/src/render/geometry/geometry.cpp index 4bf9fd21a..b136c380b 100644 --- a/src/render/geometry/geometry.cpp +++ b/src/render/geometry/geometry.cpp @@ -70,19 +70,6 @@ void Geometry::cleanup() m_boundingPositionAttribute = Qt3DCore::QNodeId(); } -void Geometry::updateFromPeer(Qt3DCore::QNode *peer) -{ - QGeometry *geometry = static_cast<QGeometry *>(peer); - if (geometry != nullptr) { - m_attributes.reserve(geometry->attributes().size()); - Q_FOREACH (QAttribute *attribute, geometry->attributes()) - m_attributes.push_back(attribute->id()); - m_geometryDirty = true; - if (geometry->boundingVolumePositionAttribute() != nullptr) - m_boundingPositionAttribute = geometry->boundingVolumePositionAttribute()->id(); - } -} - void Geometry::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QGeometryData>>(change); diff --git a/src/render/geometry/geometry_p.h b/src/render/geometry/geometry_p.h index 364977c0c..41d54cb54 100644 --- a/src/render/geometry/geometry_p.h +++ b/src/render/geometry/geometry_p.h @@ -68,7 +68,6 @@ public: void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; inline QVector<Qt3DCore::QNodeId> attributes() const { return m_attributes; } diff --git a/src/render/geometry/geometryrenderer.cpp b/src/render/geometry/geometryrenderer.cpp index 08329c0d6..5ebbd0128 100644 --- a/src/render/geometry/geometryrenderer.cpp +++ b/src/render/geometry/geometryrenderer.cpp @@ -75,6 +75,7 @@ GeometryRenderer::~GeometryRenderer() void GeometryRenderer::cleanup() { + BackendNode::setEnabled(false); m_instanceCount = 0; m_vertexCount = 0; m_indexOffset = 0; @@ -95,27 +96,6 @@ void GeometryRenderer::setManager(GeometryRendererManager *manager) m_manager = manager; } -void GeometryRenderer::updateFromPeer(Qt3DCore::QNode *peer) -{ - QGeometryRenderer *geometryRenderer = static_cast<QGeometryRenderer *>(peer); - if (geometryRenderer) { - m_instanceCount = geometryRenderer->instanceCount(); - m_vertexCount = geometryRenderer->vertexCount(); - m_indexOffset = geometryRenderer->indexOffset(); - m_firstInstance = geometryRenderer->firstInstance(); - m_restartIndexValue = geometryRenderer->restartIndexValue(); - m_verticesPerPatch = geometryRenderer->verticesPerPatch(); - m_primitiveRestartEnabled = geometryRenderer->primitiveRestartEnabled(); - m_primitiveType = geometryRenderer->primitiveType(); - if (geometryRenderer->geometry() != nullptr) - m_geometryId = geometryRenderer->geometry()->id(); - m_geometryFactory = geometryRenderer->geometryFactory(); - if (m_geometryFactory && m_manager != nullptr) - m_manager->addDirtyGeometryRenderer(peerId()); - m_dirty = true; - } -} - void GeometryRenderer::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QGeometryRendererData>>(change); diff --git a/src/render/geometry/geometryrenderer_p.h b/src/render/geometry/geometryrenderer_p.h index 66ac172b6..640840962 100644 --- a/src/render/geometry/geometryrenderer_p.h +++ b/src/render/geometry/geometryrenderer_p.h @@ -73,7 +73,6 @@ public: void cleanup(); void setManager(GeometryRendererManager *manager); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; void executeFunctor(); diff --git a/src/render/io/scene.cpp b/src/render/io/scene.cpp index cd0190c2a..f88b0ad48 100644 --- a/src/render/io/scene.cpp +++ b/src/render/io/scene.cpp @@ -61,14 +61,6 @@ Scene::Scene() { } -void Scene::updateFromPeer(Qt3DCore::QNode *peer) -{ - QSceneLoader *loader = static_cast<QSceneLoader *>(peer); - - m_source = loader->source(); - m_sceneManager->addSceneData(m_source, peerId()); -} - void Scene::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QSceneLoaderData>>(change); diff --git a/src/render/io/scene_p.h b/src/render/io/scene_p.h index c340b5106..f9513095b 100644 --- a/src/render/io/scene_p.h +++ b/src/render/io/scene_p.h @@ -71,9 +71,6 @@ class Scene : public BackendNode public: Scene(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - - // QObserverInterface interface void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; QUrl source() const; void setSceneSubtree(Qt3DCore::QEntity *subTree); diff --git a/src/render/lights/light.cpp b/src/render/lights/light.cpp index cd43c0f9c..7491b8b77 100644 --- a/src/render/lights/light.cpp +++ b/src/render/lights/light.cpp @@ -53,14 +53,6 @@ using namespace Qt3DCore; namespace Qt3DRender { namespace Render { -void Light::updateFromPeer(QNode *node) -{ - QAbstractLight *light = static_cast<QAbstractLight *>(node); - QShaderData *shaderData = light->findChild<QShaderData *>(); - if (shaderData != nullptr) - m_shaderDataId = shaderData->id(); -} - QNodeId Light::shaderData() const { return m_shaderDataId; diff --git a/src/render/lights/light_p.h b/src/render/lights/light_p.h index 552b8fee6..31901bf11 100644 --- a/src/render/lights/light_p.h +++ b/src/render/lights/light_p.h @@ -64,8 +64,6 @@ class NodeManagers; class Q_AUTOTEST_EXPORT Light : public BackendNode { public: - void updateFromPeer(Qt3DCore::QNode *node) Q_DECL_OVERRIDE; - Qt3DCore::QNodeId shaderData() const; private: diff --git a/src/render/materialsystem/effect.cpp b/src/render/materialsystem/effect.cpp index 550481044..0ca045839 100644 --- a/src/render/materialsystem/effect.cpp +++ b/src/render/materialsystem/effect.cpp @@ -71,20 +71,6 @@ void Effect::cleanup() QBackendNode::setEnabled(false); } -void Effect::updateFromPeer(Qt3DCore::QNode *peer) -{ - QEffect *effect = static_cast<QEffect *>(peer); - - m_techniques.clear(); - m_parameterPack.clear(); - - Q_FOREACH (QTechnique *t, effect->techniques()) - appendRenderTechnique(t->id()); - - Q_FOREACH (QParameter *p, effect->parameters()) - m_parameterPack.appendParameter(p->id()); -} - void Effect::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QEffectData>>(change); diff --git a/src/render/materialsystem/effect_p.h b/src/render/materialsystem/effect_p.h index 0afda1a35..50d470d8e 100644 --- a/src/render/materialsystem/effect_p.h +++ b/src/render/materialsystem/effect_p.h @@ -70,7 +70,6 @@ public: ~Effect(); void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; void appendRenderTechnique(Qt3DCore::QNodeId t); diff --git a/src/render/materialsystem/filterkey.cpp b/src/render/materialsystem/filterkey.cpp index 2965f9a44..9ae658ef7 100644 --- a/src/render/materialsystem/filterkey.cpp +++ b/src/render/materialsystem/filterkey.cpp @@ -62,14 +62,6 @@ void FilterKey::cleanup() { } -void FilterKey::updateFromPeer(Qt3DCore::QNode *peer) -{ - QFilterKey *criterion = static_cast<QFilterKey *>(peer); - - m_value = criterion->value(); - m_name = criterion->name(); -} - void FilterKey::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QFilterKeyData>>(change); diff --git a/src/render/materialsystem/filterkey_p.h b/src/render/materialsystem/filterkey_p.h index cdbe18078..8291e32f0 100644 --- a/src/render/materialsystem/filterkey_p.h +++ b/src/render/materialsystem/filterkey_p.h @@ -68,7 +68,6 @@ public: FilterKey(); ~FilterKey(); void cleanup(); - void updateFromPeer(Qt3DCore::QNode *criterion) Q_DECL_OVERRIDE; QVariant criterionValue() const; QString criterionName() const; diff --git a/src/render/materialsystem/material.cpp b/src/render/materialsystem/material.cpp index 34e23a3fb..4c0116dee 100644 --- a/src/render/materialsystem/material.cpp +++ b/src/render/materialsystem/material.cpp @@ -74,16 +74,6 @@ void Material::cleanup() m_parameterPack.clear(); } -void Material::updateFromPeer(Qt3DCore::QNode *node) -{ - QMaterial *mat = static_cast<QMaterial *>(node); - m_parameterPack.clear(); - if (mat->effect() != nullptr) - m_effectUuid = mat->effect()->id(); - Q_FOREACH (QParameter *p, mat->parameters()) - m_parameterPack.appendParameter(p->id()); -} - void Material::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QMaterialData>>(change); diff --git a/src/render/materialsystem/material_p.h b/src/render/materialsystem/material_p.h index f531a9522..b415e2975 100644 --- a/src/render/materialsystem/material_p.h +++ b/src/render/materialsystem/material_p.h @@ -79,7 +79,6 @@ public: ~Material(); void cleanup(); - void updateFromPeer(Qt3DCore::QNode* mat) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; QVector<Qt3DCore::QNodeId> parameters() const; diff --git a/src/render/materialsystem/parameter.cpp b/src/render/materialsystem/parameter.cpp index 611fec0b1..36d3db7fb 100644 --- a/src/render/materialsystem/parameter.cpp +++ b/src/render/materialsystem/parameter.cpp @@ -62,14 +62,6 @@ Parameter::Parameter() { } -void Parameter::updateFromPeer(Qt3DCore::QNode *peer) -{ - QParameter *param = static_cast<QParameter *>(peer); - m_name = param->name(); - m_nameId = StringToInt::lookupId(m_name); - m_value = static_cast<QParameterPrivate *>(QNodePrivate::get(param))->m_backendValue; -} - void Parameter::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QParameterData>>(change); diff --git a/src/render/materialsystem/parameter_p.h b/src/render/materialsystem/parameter_p.h index 08d7f5f86..0f4f83a52 100644 --- a/src/render/materialsystem/parameter_p.h +++ b/src/render/materialsystem/parameter_p.h @@ -69,7 +69,6 @@ class Parameter : public BackendNode public: Parameter(); - void updateFromPeer(Qt3DCore::QNode* mat) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; QString name() const; diff --git a/src/render/materialsystem/renderpass.cpp b/src/render/materialsystem/renderpass.cpp index 6bca1ce21..617085a24 100644 --- a/src/render/materialsystem/renderpass.cpp +++ b/src/render/materialsystem/renderpass.cpp @@ -72,24 +72,6 @@ void RenderPass::cleanup() { } -void RenderPass::updateFromPeer(Qt3DCore::QNode *peer) -{ - QRenderPass *pass = static_cast<QRenderPass *>(peer); - - m_parameterPack.clear(); - - if (pass->shaderProgram() != nullptr) - m_shaderUuid = pass->shaderProgram()->id(); - // The RenderPass clones frontend bindings in case the frontend ever removes them - // TO DO: We probably need a QParameterMapper manager - Q_FOREACH (QFilterKey *c, pass->filterKeys()) - appendFilterKey(c->id()); - Q_FOREACH (QRenderState *renderState, pass->renderStates()) - appendRenderState(renderState->id()); - Q_FOREACH (QParameter *p, pass->parameters()) - m_parameterPack.appendParameter(p->id()); -} - void RenderPass::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderPassData>>(change); diff --git a/src/render/materialsystem/renderpass_p.h b/src/render/materialsystem/renderpass_p.h index 67aa015b9..ce2b851b9 100644 --- a/src/render/materialsystem/renderpass_p.h +++ b/src/render/materialsystem/renderpass_p.h @@ -80,7 +80,6 @@ public: void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; Qt3DCore::QNodeId shaderProgram() const; diff --git a/src/render/materialsystem/shader.cpp b/src/render/materialsystem/shader.cpp index 87dce2111..78a49ac0c 100644 --- a/src/render/materialsystem/shader.cpp +++ b/src/render/materialsystem/shader.cpp @@ -95,23 +95,6 @@ void Shader::cleanup() m_uniformBlocks.clear(); } -void Shader::updateFromPeer(Qt3DCore::QNode *peer) -{ - QShaderProgram *shader = static_cast<QShaderProgram *>(peer); - - for (int i = QShaderProgram::Vertex; i <= QShaderProgram::Compute; ++i) { - m_shaderCode[i].clear(); - } - - m_isLoaded = false; - - for (int i = QShaderProgram::Vertex; i <= QShaderProgram::Compute; ++i) { - QShaderProgram::ShaderType type = static_cast<const QShaderProgram::ShaderType>(i); - m_shaderCode[i] = shader->shaderCode(type); - } - updateDNA(); -} - void Shader::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QShaderProgramData>>(change); diff --git a/src/render/materialsystem/shader_p.h b/src/render/materialsystem/shader_p.h index 77d6fb75e..0bf0c528f 100644 --- a/src/render/materialsystem/shader_p.h +++ b/src/render/materialsystem/shader_p.h @@ -80,7 +80,6 @@ public: void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void updateUniforms(GraphicsContext *ctx, const ShaderParameterPack &pack); void setFragOutputs(const QHash<QString, int> &fragOutputs); diff --git a/src/render/materialsystem/shaderdata.cpp b/src/render/materialsystem/shaderdata.cpp index 17b50ad74..179ea4300 100644 --- a/src/render/materialsystem/shaderdata.cpp +++ b/src/render/materialsystem/shaderdata.cpp @@ -118,15 +118,6 @@ ShaderData *ShaderData::lookupResource(QNodeId id) return ShaderData::lookupResource(m_managers, id); } -void ShaderData::updateFromPeer(Qt3DCore::QNode *peer) -{ - m_properties.clear(); - const QShaderData *shaderData = static_cast<const QShaderData *>(peer); - m_propertyReader = shaderData->propertyReader(); - if (!m_propertyReader.isNull()) - readPeerProperties(const_cast<QShaderData *>(shaderData)); -} - // Call by cleanup job (single thread) void ShaderData::clearUpdatedProperties() { diff --git a/src/render/materialsystem/shaderdata_p.h b/src/render/materialsystem/shaderdata_p.h index 6b3ba488e..27339cedd 100644 --- a/src/render/materialsystem/shaderdata_p.h +++ b/src/render/materialsystem/shaderdata_p.h @@ -91,7 +91,6 @@ public: // Called by FrameCleanupJob static void cleanup(NodeManagers *managers); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void setManagers(NodeManagers *managers); protected: diff --git a/src/render/materialsystem/technique.cpp b/src/render/materialsystem/technique.cpp index 65a36e438..02a56ffb7 100644 --- a/src/render/materialsystem/technique.cpp +++ b/src/render/materialsystem/technique.cpp @@ -79,28 +79,6 @@ void Technique::cleanup() m_filterKeyList.clear(); } -void Technique::updateFromPeer(Qt3DCore::QNode *peer) -{ - m_parameterPack.clear(); - m_renderPasses.clear(); - m_filterKeyList.clear(); - - QTechnique *technique = static_cast<QTechnique *>(peer); - - if (technique != nullptr) { - Q_FOREACH (QParameter *p, technique->parameters()) - m_parameterPack.appendParameter(p->id()); - Q_FOREACH (QRenderPass *rPass, technique->renderPasses()) - appendRenderPass(rPass->id()); - Q_FOREACH (QFilterKey *filterKey, technique->filterKeys()) - appendFilterKey(filterKey->id()); - - // Copy GraphicsApiFilter info from frontend GraphicsApiFilter - QGraphicsApiFilter *peerFilter = technique->graphicsApiFilter(); - m_graphicsApiFilterData = QGraphicsApiFilterPrivate::get(peerFilter)->m_data; - } -} - void Technique::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QTechniqueData>>(change); diff --git a/src/render/materialsystem/technique_p.h b/src/render/materialsystem/technique_p.h index b911e3871..541076a0b 100644 --- a/src/render/materialsystem/technique_p.h +++ b/src/render/materialsystem/technique_p.h @@ -80,8 +80,6 @@ public: ~Technique(); void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; QVector<Qt3DCore::QNodeId> parameters() const; diff --git a/src/render/picking/objectpicker.cpp b/src/render/picking/objectpicker.cpp index c50030af2..89ee9aad0 100644 --- a/src/render/picking/objectpicker.cpp +++ b/src/render/picking/objectpicker.cpp @@ -73,16 +73,6 @@ void ObjectPicker::cleanup() m_dragEnabled = false; } -void ObjectPicker::updateFromPeer(Qt3DCore::QNode *peer) -{ - QObjectPicker *picker = static_cast<QObjectPicker *>(peer); - if (picker) { - m_hoverEnabled = picker->isHoverEnabled(); - m_dragEnabled = picker->isDragEnabled(); - m_isDirty = true; - } -} - void ObjectPicker::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QObjectPickerData>>(change); diff --git a/src/render/picking/objectpicker_p.h b/src/render/picking/objectpicker_p.h index f0040589a..f116aa332 100644 --- a/src/render/picking/objectpicker_p.h +++ b/src/render/picking/objectpicker_p.h @@ -69,7 +69,6 @@ public: ~ObjectPicker(); void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_FINAL; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_FINAL; bool isDirty() const; bool isPressed() const; diff --git a/src/render/renderstates/renderstatenode.cpp b/src/render/renderstates/renderstatenode.cpp index ae1cc90e7..40c064dac 100644 --- a/src/render/renderstates/renderstatenode.cpp +++ b/src/render/renderstates/renderstatenode.cpp @@ -64,14 +64,6 @@ void RenderStateNode::cleanup() } } -void RenderStateNode::updateFromPeer(Qt3DCore::QNode *peer) -{ - cleanup(); - - QRenderState *renderState = static_cast<QRenderState *>(peer); - m_impl = RenderStateImpl::getOrCreateState(renderState); -} - void RenderStateNode::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { cleanup(); diff --git a/src/render/renderstates/renderstatenode_p.h b/src/render/renderstates/renderstatenode_p.h index cc6a101d5..9bcb1d91a 100644 --- a/src/render/renderstates/renderstatenode_p.h +++ b/src/render/renderstates/renderstatenode_p.h @@ -62,7 +62,6 @@ public: RenderStateNode(); virtual ~RenderStateNode(); - virtual void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; virtual void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; void apply(GraphicsContext* gc) const { m_impl->apply(gc); } diff --git a/src/render/texture/texture.cpp b/src/render/texture/texture.cpp index af1e2db7c..d83008776 100644 --- a/src/render/texture/texture.cpp +++ b/src/render/texture/texture.cpp @@ -127,35 +127,6 @@ void Texture::cleanup() } // AspectThread -void Texture::updateFromPeer(Qt3DCore::QNode *peer) -{ - QAbstractTexture *texture = static_cast<QAbstractTexture *>(peer); - - QMutexLocker lock(&m_lock); - if (texture != nullptr) { - m_isDirty = true; - m_width = texture->width(); - m_height = texture->height(); - m_depth = texture->depth(); - m_generateMipMaps = texture->generateMipMaps(); - m_target = texture->target(); - m_format = texture->format(); - m_magnificationFilter = texture->magnificationFilter(); - m_minificationFilter = texture->minificationFilter(); - m_wrapModeX = texture->wrapMode()->x(); - m_wrapModeY = texture->wrapMode()->y(); - m_wrapModeZ = texture->wrapMode()->z(); - m_maximumAnisotropy = texture->maximumAnisotropy(); - m_comparisonFunction = texture->comparisonFunction(); - m_comparisonMode = texture->comparisonMode(); - m_layers = texture->layers(); - m_dataFunctor = texture->dataGenerator(); - - if (m_dataFunctor) - addToPendingTextureJobs(); - } -} - void Texture::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QAbstractTextureData>>(change); diff --git a/src/render/texture/texture_p.h b/src/render/texture/texture_p.h index 7ca6e3a08..4b14304f0 100644 --- a/src/render/texture/texture_p.h +++ b/src/render/texture/texture_p.h @@ -81,8 +81,6 @@ public: ~Texture(); void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; - QOpenGLTexture* getOrCreateGLTexture() ; GLint textureId(); diff --git a/src/render/texture/textureimage.cpp b/src/render/texture/textureimage.cpp index 0c5af7b00..a5ac33187 100644 --- a/src/render/texture/textureimage.cpp +++ b/src/render/texture/textureimage.cpp @@ -79,27 +79,6 @@ void TextureImage::cleanup() m_dna = 0; } -void TextureImage::updateFromPeer(Qt3DCore::QNode *peer) -{ - QAbstractTextureImage *textureImage = static_cast<QAbstractTextureImage *>(peer); - m_layer = textureImage->layer(); - m_mipLevel = textureImage->mipLevel(); - m_face = textureImage->face(); - m_generator = textureImage->dataGenerator(); - // Notify the Texture that we are one of its TextureImage - if (!peer->parentNode()) { - qWarning() << "Not QAbstractTexture parent found"; - } else { - m_textureProviderId = peer->parentNode()->id(); - m_textureProvider = m_textureManager->lookupHandle(m_textureProviderId); - Texture *txt = m_textureManager->data(m_textureProvider); - // Notify the Texture that it has a new TextureImage and needs an update - txt->addTextureImageData(m_textureImageManager->lookupHandle(peerId())); - if (txt != nullptr) - txt->addToPendingTextureJobs(); - } -} - void TextureImage::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QAbstractTextureImageData>>(change); diff --git a/src/render/texture/textureimage_p.h b/src/render/texture/textureimage_p.h index 900ee208f..9ddfbe288 100644 --- a/src/render/texture/textureimage_p.h +++ b/src/render/texture/textureimage_p.h @@ -75,7 +75,6 @@ class TextureImage : public BackendNode public: TextureImage(); void cleanup(); - void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; int m_layer; diff --git a/tests/auto/core/qchangearbiter/tst_qchangearbiter.cpp b/tests/auto/core/qchangearbiter/tst_qchangearbiter.cpp index 4881bb63c..3496f19a4 100644 --- a/tests/auto/core/qchangearbiter/tst_qchangearbiter.cpp +++ b/tests/auto/core/qchangearbiter/tst_qchangearbiter.cpp @@ -161,9 +161,6 @@ public: : Qt3DCore::QBackendNode(ReadWrite) {} - void updateFromPeer(Qt3DCore::QNode *) Q_DECL_OVERRIDE - {} - // QObserverInterface interface void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE { diff --git a/tests/auto/input/abstractaxisinput/tst_abstractaxisinput.cpp b/tests/auto/input/abstractaxisinput/tst_abstractaxisinput.cpp index 09c3ef24a..441e2aee7 100644 --- a/tests/auto/input/abstractaxisinput/tst_abstractaxisinput.cpp +++ b/tests/auto/input/abstractaxisinput/tst_abstractaxisinput.cpp @@ -107,11 +107,10 @@ private Q_SLOTS: axisInput.setSourceDevice(&sourceDevice); // WHEN - backendAxisInput.updateFromPeer(&axisInput); + simulateInitialization(&axisInput, &backendAxisInput); backendAxisInput.cleanup(); // THEN - QVERIFY(backendAxisInput.peerId().isNull()); QCOMPARE(backendAxisInput.isEnabled(), false); QCOMPARE(backendAxisInput.sourceDevice(), Qt3DCore::QNodeId()); } diff --git a/tests/auto/input/action/tst_action.cpp b/tests/auto/input/action/tst_action.cpp index a8efaaf3d..f74491af4 100644 --- a/tests/auto/input/action/tst_action.cpp +++ b/tests/auto/input/action/tst_action.cpp @@ -90,18 +90,17 @@ private Q_SLOTS: QCOMPARE(backendAction.inputs().size(), 0); // GIVEN - Qt3DInput::QAction axis; + Qt3DInput::QAction action; Qt3DInput::QActionInput axisInput; - axis.addInput(&axisInput); + action.addInput(&axisInput); // WHEN - backendAction.updateFromPeer(&axis); + simulateInitialization(&action, &backendAction); backendAction.setActionTriggered(true); backendAction.cleanup(); // THEN - QVERIFY(backendAction.peerId().isNull()); QCOMPARE(backendAction.actionTriggered(), false); QCOMPARE(backendAction.isEnabled(), false); QCOMPARE(backendAction.inputs().size(), 0); diff --git a/tests/auto/input/analogaxisinput/tst_analogaxisinput.cpp b/tests/auto/input/analogaxisinput/tst_analogaxisinput.cpp index 99110116c..8a9d02d3b 100644 --- a/tests/auto/input/analogaxisinput/tst_analogaxisinput.cpp +++ b/tests/auto/input/analogaxisinput/tst_analogaxisinput.cpp @@ -81,11 +81,10 @@ private Q_SLOTS: axisInput.setSourceDevice(&sourceDevice); // WHEN - backendAxisInput.updateFromPeer(&axisInput); + simulateInitialization(&axisInput, &backendAxisInput); backendAxisInput.cleanup(); // THEN - QVERIFY(backendAxisInput.peerId().isNull()); QCOMPARE(backendAxisInput.axis(), 0); QCOMPARE(backendAxisInput.isEnabled(), false); QCOMPARE(backendAxisInput.sourceDevice(), Qt3DCore::QNodeId()); diff --git a/tests/auto/input/axis/tst_axis.cpp b/tests/auto/input/axis/tst_axis.cpp index eb3371b08..552ca4855 100644 --- a/tests/auto/input/axis/tst_axis.cpp +++ b/tests/auto/input/axis/tst_axis.cpp @@ -97,12 +97,11 @@ private Q_SLOTS: axis.addInput(&axisInput); // WHEN - backendAxis.updateFromPeer(&axis); + simulateInitialization(&axis, &backendAxis); backendAxis.setAxisValue(883.0f); backendAxis.cleanup(); // THEN - QVERIFY(backendAxis.peerId().isNull()); QCOMPARE(backendAxis.axisValue(), 0.0f); QCOMPARE(backendAxis.isEnabled(), false); QCOMPARE(backendAxis.inputs().size(), 0); diff --git a/tests/auto/input/buttonaxisinput/tst_buttonaxisinput.cpp b/tests/auto/input/buttonaxisinput/tst_buttonaxisinput.cpp index 4c455af79..2cff02aaa 100644 --- a/tests/auto/input/buttonaxisinput/tst_buttonaxisinput.cpp +++ b/tests/auto/input/buttonaxisinput/tst_buttonaxisinput.cpp @@ -85,11 +85,10 @@ private Q_SLOTS: axisInput.setSourceDevice(&sourceDevice); // WHEN - backendAxisInput.updateFromPeer(&axisInput); + simulateInitialization(&axisInput, &backendAxisInput); backendAxisInput.cleanup(); // THEN - QVERIFY(backendAxisInput.peerId().isNull()); QCOMPARE(backendAxisInput.scale(), 0.0f); QVERIFY(backendAxisInput.buttons().isEmpty()); QCOMPARE(backendAxisInput.isEnabled(), false); diff --git a/tests/auto/render/attribute/tst_attribute.cpp b/tests/auto/render/attribute/tst_attribute.cpp index 9e3c3228c..89175ceeb 100644 --- a/tests/auto/render/attribute/tst_attribute.cpp +++ b/tests/auto/render/attribute/tst_attribute.cpp @@ -111,11 +111,10 @@ private Q_SLOTS: attribute.setBuffer(&buffer); // WHEN - renderAttribute.updateFromPeer(&attribute); + simulateInitialization(&attribute, &renderAttribute); renderAttribute.cleanup(); // THEN - QVERIFY(renderAttribute.peerId().isNull()); QVERIFY(renderAttribute.bufferId().isNull()); QVERIFY(renderAttribute.name().isEmpty()); QCOMPARE(renderAttribute.isDirty(), false); diff --git a/tests/auto/render/buffer/tst_buffer.cpp b/tests/auto/render/buffer/tst_buffer.cpp index b26bf8007..13c76ae31 100644 --- a/tests/auto/render/buffer/tst_buffer.cpp +++ b/tests/auto/render/buffer/tst_buffer.cpp @@ -94,6 +94,7 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::Buffer renderBuffer; + Qt3DRender::Render::BufferManager bufferManager; // THEN QCOMPARE(renderBuffer.isDirty(), false); @@ -110,7 +111,8 @@ private Q_SLOTS: buffer.setDataGenerator(Qt3DRender::QBufferDataGeneratorPtr(new TestFunctor(73))); // WHEN - renderBuffer.updateFromPeer(&buffer); + renderBuffer.setManager(&bufferManager); + simulateInitialization(&buffer, &renderBuffer); renderBuffer.cleanup(); // THEN diff --git a/tests/auto/render/framegraphnode/tst_framegraphnode.cpp b/tests/auto/render/framegraphnode/tst_framegraphnode.cpp index 62f768b96..d3a1a2e98 100644 --- a/tests/auto/render/framegraphnode/tst_framegraphnode.cpp +++ b/tests/auto/render/framegraphnode/tst_framegraphnode.cpp @@ -33,7 +33,6 @@ class MyFrameGraphNode : public Qt3DRender::Render::FrameGraphNode { public: - void updateFromPeer(Qt3DCore::QNode *) Q_DECL_FINAL {} void setEnabled(bool enabled) { FrameGraphNode::setEnabled(enabled); diff --git a/tests/auto/render/geometry/tst_geometry.cpp b/tests/auto/render/geometry/tst_geometry.cpp index 004fb8590..1d84b85ff 100644 --- a/tests/auto/render/geometry/tst_geometry.cpp +++ b/tests/auto/render/geometry/tst_geometry.cpp @@ -105,7 +105,7 @@ private Q_SLOTS: geometry.addAttribute(&attr4); // WHEN - renderGeometry.updateFromPeer(&geometry); + simulateInitialization(&geometry, &renderGeometry); renderGeometry.cleanup(); // THEN diff --git a/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp b/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp index cd2c7de76..efc687dda 100644 --- a/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp +++ b/tests/auto/render/geometryrenderer/tst_geometryrenderer.cpp @@ -121,6 +121,7 @@ private Q_SLOTS: { // GIVEN Qt3DRender::Render::GeometryRenderer renderGeometryRenderer; + Qt3DRender::Render::GeometryRendererManager geometryRendererManager; // THEN QVERIFY(renderGeometryRenderer.peerId().isNull()); @@ -154,11 +155,11 @@ private Q_SLOTS: geometryRenderer.setEnabled(true); // WHEN - renderGeometryRenderer.updateFromPeer(&geometryRenderer); + renderGeometryRenderer.setManager(&geometryRendererManager); + simulateInitialization(&geometryRenderer, &renderGeometryRenderer); renderGeometryRenderer.cleanup(); // THEN - QVERIFY(renderGeometryRenderer.peerId().isNull()); QVERIFY(renderGeometryRenderer.geometryId().isNull()); QCOMPARE(renderGeometryRenderer.isDirty(), false); QCOMPARE(renderGeometryRenderer.instanceCount(), 0); diff --git a/tests/auto/render/objectpicker/tst_objectpicker.cpp b/tests/auto/render/objectpicker/tst_objectpicker.cpp index abd37fdf0..abe80a967 100644 --- a/tests/auto/render/objectpicker/tst_objectpicker.cpp +++ b/tests/auto/render/objectpicker/tst_objectpicker.cpp @@ -72,11 +72,10 @@ private Q_SLOTS: picker.setHoverEnabled(true); // WHEN - objectPicker.updateFromPeer(&picker); + simulateInitialization(&picker, &objectPicker); objectPicker.cleanup(); // THEN - QVERIFY(objectPicker.peerId().isNull()); QCOMPARE(objectPicker.isHoverEnabled(), false); QCOMPARE(objectPicker.isDirty(), false); } diff --git a/tests/auto/render/renderviewutils/renderviewutils.pro b/tests/auto/render/renderviewutils/renderviewutils.pro index c45313023..4c4134440 100644 --- a/tests/auto/render/renderviewutils/renderviewutils.pro +++ b/tests/auto/render/renderviewutils/renderviewutils.pro @@ -7,3 +7,5 @@ QT += core-private 3dcore 3dcore-private 3drender 3drender-private testlib CONFIG += testcase SOURCES += tst_renderviewutils.cpp + +include(../../core/common/common.pri) diff --git a/tests/auto/render/renderviewutils/tst_renderviewutils.cpp b/tests/auto/render/renderviewutils/tst_renderviewutils.cpp index adb7b6c97..ea9cdef0a 100644 --- a/tests/auto/render/renderviewutils/tst_renderviewutils.cpp +++ b/tests/auto/render/renderviewutils/tst_renderviewutils.cpp @@ -27,7 +27,7 @@ ****************************************************************************/ #include <QtTest/QTest> - +#include <qbackendnodetester.h> #include <Qt3DRender/private/renderviewjobutils_p.h> #include <Qt3DRender/private/shaderdata_p.h> #include <Qt3DRender/private/managers_p.h> @@ -35,7 +35,7 @@ #include <Qt3DRender/qshaderdata.h> -class tst_RenderViewUtils : public QObject +class tst_RenderViewUtils : public Qt3DCore::QBackendNodeTester { Q_OBJECT private Q_SLOTS: @@ -45,6 +45,23 @@ private Q_SLOTS: void topLevelStructValue_data(); void topLevelStructValue(); void topLevelDynamicProperties(); + +private: + void initBackendShaderData(Qt3DRender::QShaderData *frontend, + Qt3DRender::Render::ShaderDataManager *manager) + { + // Create children first + Q_FOREACH (QObject *c, frontend->children()) { + Qt3DRender::QShaderData *cShaderData = qobject_cast<Qt3DRender::QShaderData *>(c); + if (cShaderData) + initBackendShaderData(cShaderData, manager); + } + + // Create backend element for frontend one + Qt3DRender::Render::ShaderData *backend = manager->getOrCreateResource(frontend->id()); + // Init the backend element + simulateInitialization(frontend, backend); + } }; class ScalarShaderData : public Qt3DRender::QShaderData @@ -268,27 +285,6 @@ private: Qt3DRender::QShaderData *m_inner; }; -namespace { - -void initBackendShaderData(Qt3DRender::QShaderData *frontend, - Qt3DRender::Render::ShaderDataManager *manager) -{ - // Create children first - Q_FOREACH (QObject *c, frontend->children()) { - Qt3DRender::QShaderData *cShaderData = qobject_cast<Qt3DRender::QShaderData *>(c); - if (cShaderData) - initBackendShaderData(cShaderData, manager); - } - - // Create backend element for frontend one - Qt3DRender::Render::ShaderData *backend = manager->getOrCreateResource(frontend->id()); - // Init the backend element - backend->updateFromPeer(frontend); -} - -} // anonymous - - void tst_RenderViewUtils::topLevelScalarValueNoUniforms() { QScopedPointer<ScalarShaderData> shaderData(new ScalarShaderData()); diff --git a/tests/auto/render/shader/shader.pro b/tests/auto/render/shader/shader.pro index 8d0dd99a5..7c908e0f6 100644 --- a/tests/auto/render/shader/shader.pro +++ b/tests/auto/render/shader/shader.pro @@ -7,3 +7,5 @@ QT += core-private 3dcore 3dcore-private 3drender 3drender-private testlib CONFIG += testcase SOURCES += tst_shader.cpp + +include(../../core/common/common.pri) diff --git a/tests/auto/render/shader/tst_shader.cpp b/tests/auto/render/shader/tst_shader.cpp index ecee84c1f..95576afe0 100644 --- a/tests/auto/render/shader/tst_shader.cpp +++ b/tests/auto/render/shader/tst_shader.cpp @@ -27,10 +27,11 @@ ****************************************************************************/ #include <QtTest/QTest> +#include <qbackendnodetester.h> #include <Qt3DRender/private/shader_p.h> #include <Qt3DRender/qshaderprogram.h> -class tst_RenderShader : public QObject +class tst_RenderShader : public Qt3DCore::QBackendNodeTester { Q_OBJECT private slots: @@ -87,7 +88,7 @@ void tst_RenderShader::matchesFrontendPeer() Qt3DRender::QShaderProgram *frontend = createFrontendShader(); Qt3DRender::Render::Shader *backend = new Qt3DRender::Render::Shader(); - backend->updateFromPeer(frontend); + simulateInitialization(frontend, backend); QCOMPARE(backend->isLoaded(), false); QVERIFY(backend->dna() != 0U); @@ -101,7 +102,7 @@ void tst_RenderShader::cleanupLeavesACoherentState() Qt3DRender::QShaderProgram *frontend = createFrontendShader(); Qt3DRender::Render::Shader *shader = new Qt3DRender::Render::Shader(); - shader->updateFromPeer(frontend); + simulateInitialization(frontend, shader); shader->cleanup(); |