History

Working on LRU cache for resources.

Andrzej Kapolka committed 12 years ago

Commit d2f947a1 parent 9d2758e7 files · +103 −25Browse files

Showing the changes to interface/src/renderer/GeometryCache.cpp (1 of 7 files). Show all

Unified · Split

interface/src/renderer/GeometryCache.cpp+11−1
@@ -294,7 +294,8 @@ QSharedPointer<NetworkGeometry> GeometryCache::getGeometry(const QUrl& url, cons · 293 unmodified lines
294294 QSharedPointer<Resource> GeometryCache::createResource(const QUrl& url,
295295 const QSharedPointer<Resource>& fallback, bool delayLoad, const void* extra) {
296296
297− QSharedPointer<NetworkGeometry> geometry(new NetworkGeometry(url, fallback.staticCast<NetworkGeometry>(), delayLoad));
297+ QSharedPointer<NetworkGeometry> geometry(new NetworkGeometry(url, fallback.staticCast<NetworkGeometry>(), delayLoad),
298+ &Resource::allReferencesCleared);
298299 geometry->setLODParent(geometry);
299300 return geometry.staticCast<Resource>();
300301 }
@@ -536,6 +537,15 @@ void NetworkGeometry::downloadFinished(QNetworkReply* reply) { · 235 unmodified lines
536537 QThreadPool::globalInstance()->start(new GeometryReader(_self, url, reply, _mapping));
537538 }
538539
540+void NetworkGeometry::reinsert() {
541+ Resource::reinsert();
542+
543+ _lodParent = qWeakPointerCast<NetworkGeometry, Resource>(_self);
544+ foreach (const QSharedPointer<NetworkGeometry>& lod, _lods) {
545+ lod->setLODParent(_lodParent);
546+ }
547+}
548+
539549 void NetworkGeometry::setGeometry(const FBXGeometry& geometry) {
540550 _geometry = geometry;
541551