From 987814366149d79e5e98c1315cb1d1d193218c02 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 8 Sep 2015 08:58:35 -0700 Subject: [PATCH] repairs to ShaderCache for Resource changes --- .../src/RenderableProceduralItem.cpp | 2 +- libraries/networking/src/ResourceCache.h | 3 ++- libraries/render-utils/src/ShaderCache.cpp | 12 ++++++------ libraries/render-utils/src/ShaderCache.h | 4 ++-- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableProceduralItem.cpp b/libraries/entities-renderer/src/RenderableProceduralItem.cpp index bec2b57a71..d70f1c1424 100644 --- a/libraries/entities-renderer/src/RenderableProceduralItem.cpp +++ b/libraries/entities-renderer/src/RenderableProceduralItem.cpp @@ -93,7 +93,7 @@ bool RenderableProceduralItem::ProceduralInfo::ready() { void RenderableProceduralItem::ProceduralInfo::prepare(gpu::Batch& batch) { if (_shaderUrl.isLocalFile()) { - auto lastModified = QFileInfo(_shaderPath).lastModified().toMSecsSinceEpoch(); + auto lastModified = (quint64) QFileInfo(_shaderPath).lastModified().toMSecsSinceEpoch(); if (lastModified > _shaderModified) { QFile file(_shaderPath); file.open(QIODevice::ReadOnly); diff --git a/libraries/networking/src/ResourceCache.h b/libraries/networking/src/ResourceCache.h index 08d38db9a4..a11ee30174 100644 --- a/libraries/networking/src/ResourceCache.h +++ b/libraries/networking/src/ResourceCache.h @@ -173,6 +173,7 @@ public: Q_INVOKABLE void allReferencesCleared(); const QUrl& getURL() const { return _url; } + const QByteArray& getData() const { return _data; } signals: /// Fired when the resource has been loaded. @@ -190,7 +191,7 @@ protected slots: protected: virtual void init(); - /// Called when the download has finished. The recipient should delete the reply when done with it. + /// Called when the download has finished virtual void downloadFinished(const QByteArray& data); /// Should be called by subclasses when all the loading that will be done has been done. diff --git a/libraries/render-utils/src/ShaderCache.cpp b/libraries/render-utils/src/ShaderCache.cpp index e4ef8250b9..d0c5d6631f 100644 --- a/libraries/render-utils/src/ShaderCache.cpp +++ b/libraries/render-utils/src/ShaderCache.cpp @@ -8,13 +8,13 @@ #include "ShaderCache.h" NetworkShader::NetworkShader(const QUrl& url, bool delayLoad) - : Resource(url, delayLoad) {}; + : Resource(url, delayLoad) +{ + +} -void NetworkShader::downloadFinished(QNetworkReply* reply) { - if (reply) { - _source = reply->readAll(); - reply->deleteLater(); - } +void NetworkShader::downloadFinished(const QByteArray& data) { + _source = QString::fromUtf8(data); } ShaderCache& ShaderCache::instance() { diff --git a/libraries/render-utils/src/ShaderCache.h b/libraries/render-utils/src/ShaderCache.h index 7698252924..ffe8d437ce 100644 --- a/libraries/render-utils/src/ShaderCache.h +++ b/libraries/render-utils/src/ShaderCache.h @@ -14,9 +14,9 @@ class NetworkShader : public Resource { public: NetworkShader(const QUrl& url, bool delayLoad); - virtual void downloadFinished(QNetworkReply* reply) override; + virtual void downloadFinished(const QByteArray& data) override; - QByteArray _source; + QString _source; }; using NetworkShaderPointer = QSharedPointer;