From 6a265eacf26a3317ebb4580325dd565f9d45fdb1 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Tue, 15 Oct 2013 16:40:35 -0700 Subject: [PATCH] Keep normal and dilatable textures in separate maps to fix crash on manly "man" model. --- interface/src/renderer/TextureCache.cpp | 17 +++++++++++++---- interface/src/renderer/TextureCache.h | 3 ++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/interface/src/renderer/TextureCache.cpp b/interface/src/renderer/TextureCache.cpp index c20826989c..cbab1938dd 100644 --- a/interface/src/renderer/TextureCache.cpp +++ b/interface/src/renderer/TextureCache.cpp @@ -107,10 +107,19 @@ GLuint TextureCache::getFileTextureID(const QString& filename) { } QSharedPointer TextureCache::getTexture(const QUrl& url, bool dilatable) { - QSharedPointer texture = _networkTextures.value(url); - if (texture.isNull()) { - texture = QSharedPointer(dilatable ? new DilatableNetworkTexture(url) : new NetworkTexture(url)); - _networkTextures.insert(url, texture); + QSharedPointer texture; + if (dilatable) { + texture = _dilatableNetworkTextures.value(url); + if (texture.isNull()) { + texture = QSharedPointer(new DilatableNetworkTexture(url)); + _dilatableNetworkTextures.insert(url, texture); + } + } else { + texture = _networkTextures.value(url); + if (texture.isNull()) { + texture = QSharedPointer(new NetworkTexture(url)); + _networkTextures.insert(url, texture); + } } return texture; } diff --git a/interface/src/renderer/TextureCache.h b/interface/src/renderer/TextureCache.h index acd3c70bd8..7ebd4528fb 100644 --- a/interface/src/renderer/TextureCache.h +++ b/interface/src/renderer/TextureCache.h @@ -73,7 +73,8 @@ private: QHash _fileTextureIDs; QHash > _networkTextures; - + QHash > _dilatableNetworkTextures; + GLuint _primaryDepthTextureID; QOpenGLFramebufferObject* _primaryFramebufferObject; QOpenGLFramebufferObject* _secondaryFramebufferObject;