summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-08-06 11:52:27 +0200
committerPaul Lemire <paul.lemire@kdab.com>2015-08-07 14:32:06 +0000
commitaf22d66fcfbb80f1cc4e42948aca29613443f44a (patch)
tree7093de893e8466155fbde69311a1cc42ea960cd4 /src
parent8e6652961adffb888602774c679ee756737a8b40 (diff)
Update RenderBuffer/QBuffer unit tests
Change-Id: Iadb91977da8927544bd3b90ee512128367d70b84 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/render/backend/renderbuffer.cpp7
-rw-r--r--src/render/backend/renderbuffer_p.h1
2 files changed, 5 insertions, 3 deletions
diff --git a/src/render/backend/renderbuffer.cpp b/src/render/backend/renderbuffer.cpp
index 7fd576290..423255786 100644
--- a/src/render/backend/renderbuffer.cpp
+++ b/src/render/backend/renderbuffer.cpp
@@ -64,6 +64,7 @@ void RenderBuffer::cleanup()
m_type = QBuffer::VertexBuffer;
m_usage = QBuffer::StaticDraw;
m_data.clear();
+ m_functor.reset();
m_bufferDirty = false;
}
@@ -87,7 +88,7 @@ void RenderBuffer::updateFromPeer(QNode *peer)
m_data = buffer->data();
m_functor = buffer->bufferFunctor();
// Add to dirty list in the manager
- if (m_functor)
+ if (m_functor && m_manager != Q_NULLPTR)
m_manager->addDirtyBuffer(peerUuid());
m_bufferDirty = true;
}
@@ -110,9 +111,9 @@ void RenderBuffer::sceneChangeEvent(const QSceneChangePtr &e)
m_bufferDirty = true;
} else if (propertyName == QByteArrayLiteral("bufferFunctor")) {
QBufferFunctorPtr newFunctor = propertyChange->value().value<QBufferFunctorPtr>();
- m_bufferDirty |= !(*newFunctor == *m_functor);
+ m_bufferDirty |= !(newFunctor && m_functor && *newFunctor == *m_functor);
m_functor = newFunctor;
- if (m_functor)
+ if (m_functor && m_manager != Q_NULLPTR)
m_manager->addDirtyBuffer(peerUuid());
}
}
diff --git a/src/render/backend/renderbuffer_p.h b/src/render/backend/renderbuffer_p.h
index d71548e18..698ad8084 100644
--- a/src/render/backend/renderbuffer_p.h
+++ b/src/render/backend/renderbuffer_p.h
@@ -66,6 +66,7 @@ public:
inline QBuffer::UsageType usage() const { return m_usage; }
inline QByteArray data() const { return m_data; }
inline bool isDirty() const { return m_bufferDirty; }
+ inline QBufferFunctorPtr bufferFunctor() const { return m_functor; }
void unsetDirty();
private: