summaryrefslogtreecommitdiffstats
path: root/src/render/backend/qrenderaspect.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2014-12-13 14:47:32 +0000
committerSean Harmer <sean.harmer@kdab.com>2014-12-15 14:42:08 +0100
commit9b104a8ebf64c24ecca00f797f0f3f5d85295309 (patch)
treea536f94f1ec1ff0f33abe8b74bc0a6398f344eab /src/render/backend/qrenderaspect.cpp
parentd1f3fe956c1f68ea61831221c64d1f3eb679bc1a (diff)
Pass the current time to the aspects
Also make the current time available as a standard uniform in the render aspect. Change-Id: I163187c432cf32bf57d0c4bf4ee6b8e5d8aac42c Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/backend/qrenderaspect.cpp')
-rw-r--r--src/render/backend/qrenderaspect.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/render/backend/qrenderaspect.cpp b/src/render/backend/qrenderaspect.cpp
index 7de47e533..646864355 100644
--- a/src/render/backend/qrenderaspect.cpp
+++ b/src/render/backend/qrenderaspect.cpp
@@ -110,6 +110,7 @@ QRenderAspectPrivate::QRenderAspectPrivate(QRenderAspect *qq)
, m_renderer(new Render::Renderer)
, m_surfaceEventFilter(new Render::PlatformSurfaceFilter(m_renderer))
, m_surface(Q_NULLPTR)
+ , m_time(0)
, m_initialized(false)
{
m_aspectType = QAbstractAspect::AspectRenderer;
@@ -196,13 +197,15 @@ void QRenderAspect::registerBackendTypes()
registerBackendType<QShaderData>(QBackendNodeFunctorPtr(new Render::RenderNodeFunctor<Render::RenderShaderData, Render::ShaderDataManager>(d->m_renderer->shaderDataManager())));
}
-QVector<QAspectJobPtr> QRenderAspect::jobsToExecute()
+QVector<QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
{
+ Q_D(QRenderAspect);
+ d->m_time = time;
+
// Create jobs that will get exectued by the threadpool
QVector<QAspectJobPtr> jobs;
// Create jobs to load in any meshes that are pending
- Q_D(QRenderAspect);
if (d->m_renderer != Q_NULLPTR) {
QHash<QNodeId, QAbstractMeshFunctorPtr> meshSources = d->m_renderer->meshDataManager()->meshesPending();
Q_FOREACH (const QNodeId &meshId, meshSources.keys()) {
@@ -261,6 +264,12 @@ void QRenderAspect::sceneNodeRemoved(QSceneChangePtr &e)
QAbstractAspect::clearBackendNode(n);
}
+qint64 QRenderAspect::time() const
+{
+ Q_D(const QRenderAspect);
+ return d->m_time;
+}
+
void QRenderAspect::setRootEntity(QEntity *rootObject)
{
// setSceneGraphRoot is synchronized using the Renderer's mutex