summaryrefslogtreecommitdiffstats
path: root/src/render/frontend/qrenderpass.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2014-07-22 16:47:41 +0200
committerSean Harmer <sean.harmer@kdab.com>2014-07-25 00:09:20 +0200
commit44efda3c2e0906c088397847881c97dab92d9e26 (patch)
tree821aa8a68e2a4963b96a9135bff4c175e32f9bd1 /src/render/frontend/qrenderpass.cpp
parent7ec5e7143ff0c0cbab34848665b0986b99fdc026 (diff)
RenderPass using QTechniqueCriterion
There is nothing different between QTechniqueCriterion and QRenderPassCriterion. In that sense, QRenderPassCriterion was removed and QRenderPass and QRenderPassFilter using QTechniqueCriterion. QTechniqueCriterion will later be renamed to QCriterion. Change-Id: I47b6d4385ccb70b2ce01d2b29b2de1e7715dd14f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/frontend/qrenderpass.cpp')
-rw-r--r--src/render/frontend/qrenderpass.cpp34
1 files changed, 24 insertions, 10 deletions
diff --git a/src/render/frontend/qrenderpass.cpp b/src/render/frontend/qrenderpass.cpp
index 52dcb15d4..bcd1f6dea 100644
--- a/src/render/frontend/qrenderpass.cpp
+++ b/src/render/frontend/qrenderpass.cpp
@@ -42,8 +42,9 @@
#include "qrenderpass.h"
#include "qrenderpass_p.h"
#include "qparameter.h"
-#include "qrenderpasscriterion.h"
+#include "qtechniquecriterion.h"
#include "qparametermapper.h"
+#include "qscenepropertychange.h"
QT_BEGIN_NAMESPACE
@@ -89,26 +90,39 @@ Render::DrawStateSet *QRenderPass::stateSet() const
return d->m_stateSet;
}
-void QRenderPass::addCriterion(QRenderPassCriterion *criterion)
+void QRenderPass::addCriterion(QTechniqueCriterion *criterion)
{
Q_D(QRenderPass);
- if (!d->m_criteria.contains(criterion)) {
- d->m_criteria.append(criterion);
- // TO DO: Notify QChangeArbiter
+ if (!d->m_criteriaList.contains(criterion)) {
+ d->m_criteriaList.append(criterion);
+ QScenePropertyChangePtr change(new QScenePropertyChange(ComponentAdded, this));
+ change->setPropertyName(QByteArrayLiteral("criterion"));
+ change->setValue(QVariant::fromValue(criterion));
+ notifyObservers(change);
}
}
-void QRenderPass::removeCriterion(QRenderPassCriterion *criterion)
+void QRenderPass::removeCriterion(QTechniqueCriterion *criterion)
{
Q_D(QRenderPass);
- d->m_criteria.removeOne(criterion);
- // TO DO: Notify QChangeArbiter
+ d->m_criteriaList.removeOne(criterion);
+ QScenePropertyChangePtr change(new QScenePropertyChange(ComponentAdded, this));
+ change->setPropertyName(QByteArrayLiteral("criterion"));
+ change->setValue(QVariant::fromValue(criterion->uuid()));
+ notifyObservers(change);
}
-QList<QRenderPassCriterion *> QRenderPass::criteria() const
+QList<QTechniqueCriterion *> QRenderPass::criteria() const
{
Q_D(const QRenderPass);
- return d->m_criteria;
+ return d->m_criteriaList;
+}
+
+void QRenderPass::clearCriteria()
+{
+ Q_D(QRenderPass);
+ while (d->m_criteriaList.size() > 0)
+ removeCriterion(d->m_criteriaList.takeFirst());
}
void QRenderPass::addBinding(QParameterMapper *binding)