summaryrefslogtreecommitdiffstats
path: root/src/render/frontend/qblendstate.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2014-09-29 17:19:36 +0200
committerSean Harmer <sean.harmer@kdab.com>2014-10-03 21:18:41 +0200
commit7b26f6a1746419161a8f875e341b3e31220f4141 (patch)
treef784e568015e1f7f199abb388b97fefdb158c84e /src/render/frontend/qblendstate.cpp
parentc16689bb1ccf31416df7b8c69fe032898cf87dec (diff)
QNode refactoring
Move almost everything to private classes. Assimp loading restored. All examples working. QNode hierachy is now handled through QObject::setParent, addChild, removeChild are part of the private api. Note: commented QChangeArbiter unit tests as they can no longer work with this patch and will restore them when QChangeArbiter will have been made private. Task-number: QTBUG-41470 Task-number: QTBUG-41523 Change-Id: I4430974b3aa7f3744c38714b451b122e0cb4d0c9 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/frontend/qblendstate.cpp')
-rw-r--r--src/render/frontend/qblendstate.cpp37
1 files changed, 18 insertions, 19 deletions
diff --git a/src/render/frontend/qblendstate.cpp b/src/render/frontend/qblendstate.cpp
index a69397d54..ada1eac95 100644
--- a/src/render/frontend/qblendstate.cpp
+++ b/src/render/frontend/qblendstate.cpp
@@ -41,6 +41,7 @@
****************************************************************************/
#include "qblendstate.h"
+#include "qrenderstate_p.h"
#include <Qt3DCore/qscenepropertychange.h>
#include <private/qnode_p.h>
@@ -48,11 +49,11 @@ QT_BEGIN_NAMESPACE
namespace Qt3D {
-class QBlendStatePrivate : public QNodePrivate
+class QBlendStatePrivate : public QRenderStatePrivate
{
public:
QBlendStatePrivate(QBlendState *qq)
- : QNodePrivate(qq)
+ : QRenderStatePrivate(qq)
, m_srcRGB(QBlendState::Zero)
, m_srcAlpha(QBlendState::Zero)
, m_dstRGB(QBlendState::Zero)
@@ -60,6 +61,8 @@ public:
{
}
+ void copy(const QNodePrivate *ref) Q_DECL_OVERRIDE;
+
Q_DECLARE_PUBLIC(QBlendState)
QBlendState::Blending m_srcRGB;
@@ -73,17 +76,14 @@ QBlendState::QBlendState(QNode *parent)
{
}
-void QBlendState::copy(const QNode *ref)
+void QBlendStatePrivate::copy(const QNodePrivate *ref)
{
- QRenderState::copy(ref);
- Q_D(QBlendState);
- const QBlendState *refState = qobject_cast<const QBlendState *>(ref);
- if (refState != Q_NULLPTR) {
- d->m_srcRGB = refState->srcRGB();
- d->m_srcAlpha = refState->srcAlpha();
- d->m_dstAlpha = refState->dstAlpha();
- d->m_dstRGB = refState->dstRGB();
- }
+ QRenderStatePrivate::copy(ref);
+ const QBlendStatePrivate *refState = static_cast<const QBlendStatePrivate *>(ref);
+ m_srcRGB = refState->m_srcRGB;
+ m_srcAlpha = refState->m_srcAlpha;
+ m_dstAlpha = refState->m_dstAlpha;
+ m_dstRGB = refState->m_dstRGB;
}
QBlendState::Blending QBlendState::srcRGB() const
@@ -102,7 +102,7 @@ void QBlendState::setSrcRGB(QBlendState::Blending srcRGB)
QScenePropertyChangePtr propertyChange(new QScenePropertyChange(NodeUpdated, this));
propertyChange->setPropertyName(QByteArrayLiteral("srcRGB"));
propertyChange->setValue(d->m_srcRGB);
- notifyObservers(propertyChange);
+ d->notifyObservers(propertyChange);
}
}
}
@@ -123,7 +123,7 @@ void QBlendState::setDstRGB(QBlendState::Blending dstRGB)
QScenePropertyChangePtr propertyChange(new QScenePropertyChange(NodeUpdated, this));
propertyChange->setPropertyName(QByteArrayLiteral("dstRGB"));
propertyChange->setValue(d->m_dstRGB);
- notifyObservers(propertyChange);
+ d->notifyObservers(propertyChange);
}
}
}
@@ -144,7 +144,7 @@ void QBlendState::setSrcAlpha(QBlendState::Blending srcAlpha)
QScenePropertyChangePtr propertyChange(new QScenePropertyChange(NodeUpdated, this));
propertyChange->setPropertyName(QByteArrayLiteral("srcAlpha"));
propertyChange->setValue(d->m_srcAlpha);
- notifyObservers(propertyChange);
+ d->notifyObservers(propertyChange);
}
}
}
@@ -165,16 +165,15 @@ void QBlendState::setDstAlpha(QBlendState::Blending dstAlpha)
QScenePropertyChangePtr propertyChange(new QScenePropertyChange(NodeUpdated, this));
propertyChange->setPropertyName(QByteArrayLiteral("dstAlpha"));
propertyChange->setValue(d->m_dstAlpha);
- notifyObservers(propertyChange);
+ d->notifyObservers(propertyChange);
}
}
}
-QNode *QBlendState::doClone(bool isClone) const
+QNode *QBlendState::doClone() const
{
QBlendState *clone = new QBlendState();
- clone->copy(this);
- clone->d_func()->m_isClone = isClone;
+ clone->d_func()->copy(d_func());
return clone;
}