summaryrefslogtreecommitdiffstats
path: root/src/quick3d/quick3drenderer
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-03-27 12:17:19 +0100
committerSean Harmer <sean.harmer@kdab.com>2015-05-09 20:06:36 +0000
commitff74e3d1d4f75695e6806cb2234fba43de178d69 (patch)
treea52546bf66cb7996cce94f522e2827b01777591e /src/quick3d/quick3drenderer
parentdad271abb485cffd48417605bc030ad5c6a6845e (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.cpp35
-rw-r--r--src/quick3d/quick3drenderer/items/quick3drenderpass.h8
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