From c9344d43824ea17c338a6740581d1b255c8035e9 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 16 Oct 2013 11:00:41 -0700 Subject: [PATCH] Have textures default to white when they fail to load. --- interface/src/renderer/TextureCache.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/interface/src/renderer/TextureCache.cpp b/interface/src/renderer/TextureCache.cpp index cbab1938dd..c24f1fad16 100644 --- a/interface/src/renderer/TextureCache.cpp +++ b/interface/src/renderer/TextureCache.cpp @@ -74,15 +74,17 @@ GLuint TextureCache::getPermutationNormalTextureID() { return _permutationNormalTextureID; } +static void loadWhiteTexture() { + const char OPAQUE_WHITE[] = { 0xFF, 0xFF, 0xFF, 0xFF }; + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, OPAQUE_WHITE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); +} + GLuint TextureCache::getWhiteTextureID() { if (_whiteTextureID == 0) { glGenTextures(1, &_whiteTextureID); glBindTexture(GL_TEXTURE_2D, _whiteTextureID); - - const char OPAQUE_WHITE[] = { 0xFF, 0xFF, 0xFF, 0xFF }; - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, OPAQUE_WHITE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - + loadWhiteTexture(); glBindTexture(GL_TEXTURE_2D, 0); } return _whiteTextureID; @@ -214,6 +216,11 @@ NetworkTexture::NetworkTexture(const QUrl& url) : _reply(NULL), _averageColor(1. connect(_reply, SIGNAL(downloadProgress(qint64,qint64)), SLOT(handleDownloadProgress(qint64,qint64))); connect(_reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(handleReplyError())); + + // default to white + glBindTexture(GL_TEXTURE_2D, getID()); + loadWhiteTexture(); + glBindTexture(GL_TEXTURE_2D, 0); } NetworkTexture::~NetworkTexture() {