summaryrefslogtreecommitdiffstats
path: root/src/quick3d/quick3drenderer/items/quick3dshaderdataarray.h
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-01-09 10:10:13 +0100
committerSean Harmer <sean.harmer@kdab.com>2015-01-18 15:30:47 +0100
commit074263ba87e73c67e355ee5dc5037477090f6957 (patch)
tree18bf0672f9c93c5a1a64d50d6723791f50637f6f /src/quick3d/quick3drenderer/items/quick3dshaderdataarray.h
parent67ffbd60ed6f383f3629a1848587da049c3ff3c9 (diff)
RenderShaderData handling entirely reworked
- UBO created for each Shader/ShaderData - We deal with nested QShaderData by looking for QNodeId only instead of looking for QShaderData* - We update only the values that have changed into the UBO - A CleanupFrameJob was added to properly clear all RenderShaderData set for updates after a frame - RenderShaderData is cleared of all UBO rendering logic - BlockToUBO contains all the updated properties for a given UBO in a RenderView, that solves the issue of properties being updated in the RenderShaderData while performing a draw call Note: the QShaderData transformed properties were commented for now deferred-examples and playground qml updates to follow Change-Id: I8ecf155288c154f41b505cf465d31f5eb8a71b5d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/quick3d/quick3drenderer/items/quick3dshaderdataarray.h')
-rw-r--r--src/quick3d/quick3drenderer/items/quick3dshaderdataarray.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/quick3d/quick3drenderer/items/quick3dshaderdataarray.h b/src/quick3d/quick3drenderer/items/quick3dshaderdataarray.h
index 710d16519..31defb3a9 100644
--- a/src/quick3d/quick3drenderer/items/quick3dshaderdataarray.h
+++ b/src/quick3d/quick3drenderer/items/quick3dshaderdataarray.h
@@ -51,6 +51,8 @@ QT_BEGIN_NAMESPACE
namespace Qt3D {
+class QShaderData;
+
namespace Render {
namespace Quick {
@@ -61,21 +63,21 @@ class Quick3DShaderData;
class QT3DQUICKRENDERERSHARED_EXPORT Quick3DShaderDataArray : public QNode
{
Q_OBJECT
- Q_PROPERTY(QQmlListProperty<Qt3D::Render::Quick::Quick3DShaderData> values READ valuesList)
+ Q_PROPERTY(QQmlListProperty<Qt3D::QShaderData> values READ valuesList)
Q_CLASSINFO("DefaultProperty", "values")
public:
explicit Quick3DShaderDataArray(QNode *parent = 0);
- QQmlListProperty<Quick3DShaderData> valuesList();
- QList<Quick3DShaderData *> values() const;
+ QQmlListProperty<QShaderData> valuesList();
+ QList<QShaderData *> values() const;
protected:
void copy(const QNode *ref) Q_DECL_OVERRIDE;
private:
- static void appendValue(QQmlListProperty<Quick3DShaderData> *list, Quick3DShaderData *bar);
- static Quick3DShaderData *valueAt(QQmlListProperty<Quick3DShaderData> *list, int index);
- static int valueCount(QQmlListProperty<Quick3DShaderData> *list);
- static void clearValues(QQmlListProperty<Quick3DShaderData> *list);
+ static void appendValue(QQmlListProperty<QShaderData> *list, QShaderData *bar);
+ static QShaderData *valueAt(QQmlListProperty<QShaderData> *list, int index);
+ static int valueCount(QQmlListProperty<QShaderData> *list);
+ static void clearValues(QQmlListProperty<QShaderData> *list);
Q_DECLARE_PRIVATE(Quick3DShaderDataArray)
QT3D_CLONEABLE(Quick3DShaderDataArray)
};
@@ -88,6 +90,6 @@ private:
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(Qt3D::Render::Quick::Quick3DShaderDataArray *)
+Q_DECLARE_METATYPE(Qt3D::Render::Quick::Quick3DShaderDataArray*)
#endif // QT3D_RENDER_QUICK_QUICK3DSHADERDATAARRAY_H