diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2015-03-27 12:17:19 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2015-05-09 20:06:36 +0000 |
commit | ff74e3d1d4f75695e6806cb2234fba43de178d69 (patch) | |
tree | a52546bf66cb7996cce94f522e2827b01777591e /src/quick3d/quick3drenderer | |
parent | dad271abb485cffd48417605bc030ad5c6a6845e (diff) |
Quick3DRenderPass: list of Parameters added
Change-Id: If8b1409093c9118cf730b57957ae3ed2d38ec313
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/quick3d/quick3drenderer')
-rw-r--r-- | src/quick3d/quick3drenderer/items/quick3drenderpass.cpp | 35 | ||||
-rw-r--r-- | src/quick3d/quick3drenderer/items/quick3drenderpass.h | 8 |
2 files changed, 43 insertions, 0 deletions
diff --git a/src/quick3d/quick3drenderer/items/quick3drenderpass.cpp b/src/quick3d/quick3drenderer/items/quick3drenderpass.cpp index 0977f9583..8dfc483e1 100644 --- a/src/quick3d/quick3drenderer/items/quick3drenderpass.cpp +++ b/src/quick3d/quick3drenderer/items/quick3drenderpass.cpp @@ -78,6 +78,15 @@ QQmlListProperty<QRenderState> Quick3DRenderPass::renderStateList() &Quick3DRenderPass::clearRenderStates); } +QQmlListProperty<QParameter> Quick3DRenderPass::parameterList() +{ + return QQmlListProperty<Qt3D::QParameter>(this, 0, + &Quick3DRenderPass::appendParameter, + &Quick3DRenderPass::parametersCount, + &Quick3DRenderPass::parameterAt, + &Quick3DRenderPass::clearParameterList); +} + void Quick3DRenderPass::appendAnnotation(QQmlListProperty<QAnnotation> *list, QAnnotation *annotation) { Quick3DRenderPass *rPass = qobject_cast<Quick3DRenderPass *>(list->object); @@ -153,6 +162,32 @@ void Quick3DRenderPass::clearRenderStates(QQmlListProperty<QRenderState> *list) rPass->parentRenderPass()->removeRenderState(s); } +void Quick3DRenderPass::appendParameter(QQmlListProperty<QParameter> *list, QParameter *param) +{ + Quick3DRenderPass *rPass = qobject_cast<Quick3DRenderPass *>(list->object); + rPass->parentRenderPass()->addParameter(param); +} + +QParameter *Quick3DRenderPass::parameterAt(QQmlListProperty<QParameter> *list, int index) +{ + Quick3DRenderPass *rPass = qobject_cast<Quick3DRenderPass *>(list->object); + return rPass->parentRenderPass()->parameters().at(index); +} + +int Quick3DRenderPass::parametersCount(QQmlListProperty<QParameter> *list) +{ + Quick3DRenderPass *rPass = qobject_cast<Quick3DRenderPass *>(list->object); + return rPass->parentRenderPass()->parameters().count(); +} + +void Quick3DRenderPass::clearParameterList(QQmlListProperty<QParameter> *list) +{ + Quick3DRenderPass *rPass = qobject_cast<Quick3DRenderPass *>(list->object); + Q_FOREACH (QParameter *p, rPass->parentRenderPass()->parameters()) + rPass->parentRenderPass()->removeParameter(p); +} + + } // Quick } // Render diff --git a/src/quick3d/quick3drenderer/items/quick3drenderpass.h b/src/quick3d/quick3drenderer/items/quick3drenderpass.h index 438f276d1..5e968870d 100644 --- a/src/quick3d/quick3drenderer/items/quick3drenderpass.h +++ b/src/quick3d/quick3drenderer/items/quick3drenderpass.h @@ -56,12 +56,15 @@ class QT3DQUICKRENDERERSHARED_EXPORT Quick3DRenderPass : public QObject Q_PROPERTY(QQmlListProperty<Qt3D::QAnnotation> annotations READ annotationList) Q_PROPERTY(QQmlListProperty<Qt3D::QParameterMapping> bindings READ bindingList) Q_PROPERTY(QQmlListProperty<Qt3D::QRenderState> renderStates READ renderStateList) + Q_PROPERTY(QQmlListProperty<Qt3D::QParameter> parameters READ parameterList) public: explicit Quick3DRenderPass(QObject *parent = 0); QQmlListProperty<Qt3D::QAnnotation> annotationList(); QQmlListProperty<Qt3D::QParameterMapping> bindingList(); QQmlListProperty<Qt3D::QRenderState> renderStateList(); + QQmlListProperty<Qt3D::QParameter> parameterList(); + inline QRenderPass *parentRenderPass() const { return qobject_cast<QRenderPass *>(parent()); } private: @@ -79,6 +82,11 @@ private: static QRenderState *renderStateAt(QQmlListProperty<Qt3D::QRenderState> *list, int index); static int renderStateCount(QQmlListProperty<Qt3D::QRenderState> *list); static void clearRenderStates(QQmlListProperty<Qt3D::QRenderState> *list); + + static void appendParameter(QQmlListProperty<QParameter> *list, QParameter *param); + static QParameter *parameterAt(QQmlListProperty<QParameter> *list, int index); + static int parametersCount(QQmlListProperty<QParameter> *list); + static void clearParameterList(QQmlListProperty<QParameter> *list); }; } // Quick |