summaryrefslogtreecommitdiffstats
path: root/src/render/jobs/loadtexturedatajob.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-11-10 09:37:18 +0100
committerAndy Nichols <andy.nichols@theqtcompany.com>2015-11-16 12:26:12 +0000
commitb15dbe34c7f9cccb943636b0fc95a9f52d3f79e9 (patch)
tree9e44b20b48bbf543754b3a328ddc6d93b5b32ecd /src/render/jobs/loadtexturedatajob.cpp
parenteb43b63a8457f451507f47b4fb6b16bdafc677f9 (diff)
Renderer: use NodeManagers
Change-Id: I8d505034b24c3ec00b93ace02e5a4fe450939478 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Diffstat (limited to 'src/render/jobs/loadtexturedatajob.cpp')
-rw-r--r--src/render/jobs/loadtexturedatajob.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/render/jobs/loadtexturedatajob.cpp b/src/render/jobs/loadtexturedatajob.cpp
index 4b34690ef..5f4a9801b 100644
--- a/src/render/jobs/loadtexturedatajob.cpp
+++ b/src/render/jobs/loadtexturedatajob.cpp
@@ -35,9 +35,10 @@
****************************************************************************/
#include "loadtexturedatajob_p.h"
-#include <Qt3DRender/private/renderer_p.h>
+#include <Qt3DRender/private/nodemanagers_p.h>
#include <Qt3DRender/private/managers_p.h>
#include <Qt3DRender/private/texturedatamanager_p.h>
+#include <Qt3DRender/qtexturedata.h>
#include <QThread>
QT_BEGIN_NAMESPACE
@@ -58,12 +59,13 @@ void LoadTextureDataJob::run()
{
qCDebug(Jobs) << "Entering" << Q_FUNC_INFO << QThread::currentThread();
- Texture *txt = m_renderer->textureManager()->lookupResource(m_textureId);
+ Texture *txt = m_manager->textureManager()->lookupResource(m_textureId);
+ TextureDataManager *textureDataManager = m_manager->manager<QTexImageData, TextureDataManager>();
if (txt != Q_NULLPTR) {
// Load update each TextureImage
Q_FOREACH (HTextureImage texImgHandle, txt->textureImages()) {
- TextureImage *texImg = m_renderer->textureImageManager()->data(texImgHandle);
+ TextureImage *texImg = m_manager->textureImageManager()->data(texImgHandle);
if (texImg != Q_NULLPTR && texImg->isDirty() && !texImg->dataFunctor().isNull()) {
QTextureDataFunctorPtr functor = texImg->dataFunctor();
HTextureData textureDataHandle;
@@ -71,29 +73,29 @@ void LoadTextureDataJob::run()
// scoped for locker
{
- QMutexLocker locker(m_renderer->textureDataManager()->mutex());
+ QMutexLocker locker(textureDataManager->mutex());
// We don't want to take the chance of having two jobs uploading the same functor
// because of sync issues
- textureDataHandle = m_renderer->textureDataManager()->textureDataFromFunctor(functor);
+ textureDataHandle = textureDataManager->textureDataFromFunctor(functor);
// Texture data handle isn't null == there's already a matching TextureData
if (!textureDataHandle.isNull()) {
- data = m_renderer->textureDataManager()->data(textureDataHandle);
+ data = textureDataManager->data(textureDataHandle);
} else {
QTexImageDataPtr dataPtr = functor->operator ()();
if (dataPtr.isNull()) {
qCDebug(Jobs) << Q_FUNC_INFO << "Texture has no raw data";
} else {
// Save the QTexImageDataPtr with it's functor as a key
- textureDataHandle = m_renderer->textureDataManager()->acquire();
- data = m_renderer->textureDataManager()->data(textureDataHandle);
+ textureDataHandle = textureDataManager->acquire();
+ data = textureDataManager->data(textureDataHandle);
*data = *(dataPtr.data());
- m_renderer->textureDataManager()->addTextureDataForFunctor(textureDataHandle, functor);
+ textureDataManager->addTextureDataForFunctor(textureDataHandle, functor);
}
}
// Update HTextureImage Functor to release TextureData when needed
- m_renderer->textureDataManager()->assignFunctorToTextureImage(functor, texImgHandle);
+ textureDataManager->assignFunctorToTextureImage(functor, texImgHandle);
}
// Set texture size of texture if the first layer / level / face has a valid size