GLuint TextureCache::getBlueTextureID() { if (_blueTextureID == 0) { glGenTextures(1, &_blueTextureID); glBindTexture(GL_TEXTURE_2D, _blueTextureID); loadSingleColorTexture(OPAQUE_BLUE); glBindTexture(GL_TEXTURE_2D, 0); } return _blueTextureID; }
GLuint TextureCache::getWhiteTextureID() { if (_whiteTextureID == 0) { glGenTextures(1, &_whiteTextureID); glBindTexture(GL_TEXTURE_2D, _whiteTextureID); loadSingleColorTexture(OPAQUE_WHITE); glBindTexture(GL_TEXTURE_2D, 0); } return _whiteTextureID; }
NetworkTexture::NetworkTexture(const QUrl& url, bool normalMap) : Resource(url), _translucent(false) { if (!url.isValid()) { _loaded = true; return; } // default to white/blue glBindTexture(GL_TEXTURE_2D, getID()); loadSingleColorTexture(normalMap ? OPAQUE_BLUE : OPAQUE_WHITE); glBindTexture(GL_TEXTURE_2D, 0); }
NetworkTexture::NetworkTexture(const QUrl& url, bool normalMap, const QByteArray& content) : Resource(url, !content.isEmpty()), _translucent(false) { if (!url.isValid()) { _loaded = true; } // default to white/blue glBindTexture(GL_TEXTURE_2D, getID()); loadSingleColorTexture(normalMap ? OPAQUE_BLUE : OPAQUE_WHITE); glBindTexture(GL_TEXTURE_2D, 0); // if we have content, load it after we have our self pointer if (!content.isEmpty()) { _startedLoading = true; QMetaObject::invokeMethod(this, "loadContent", Qt::QueuedConnection, Q_ARG(const QByteArray&, content)); }