diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2014-07-22 16:47:41 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2014-07-25 00:09:20 +0200 |
commit | 44efda3c2e0906c088397847881c97dab92d9e26 (patch) | |
tree | 821aa8a68e2a4963b96a9135bff4c175e32f9bd1 /src/render/frontend/qrenderpass.cpp | |
parent | 7ec5e7143ff0c0cbab34848665b0986b99fdc026 (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.cpp | 34 |
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) |