Showing the changes to interface/src/MetavoxelSystem.cpp (1 of 2 files). Show all
Unified · Split
| @@ -118,7 +118,7 @@ void MetavoxelSystem::render() { · 117 unmodified lines | ||
| 118 | 118 | viewFrustum->getNearBottomLeft(), viewFrustum->getNearBottomRight()); |
| 119 | 119 | |
| 120 | 120 | RenderVisitor renderVisitor(getLOD()); |
| 121 | − guideToAugmented(renderVisitor); | |
| 121 | + guideToAugmented(renderVisitor, true); | |
| 122 | 122 | } |
| 123 | 123 | |
| 124 | 124 | class RayHeightfieldIntersectionVisitor : public RayIntersectionVisitor { |
| @@ -459,13 +459,19 @@ MetavoxelClient* MetavoxelSystem::createClient(const SharedNodePointer& node) { · 334 unmodified lines | ||
| 459 | 459 | return new MetavoxelSystemClient(node, _updater); |
| 460 | 460 | } |
| 461 | 461 | |
| 462 | −void MetavoxelSystem::guideToAugmented(MetavoxelVisitor& visitor) { | |
| 462 | +void MetavoxelSystem::guideToAugmented(MetavoxelVisitor& visitor, bool render) { | |
| 463 | 463 | foreach (const SharedNodePointer& node, NodeList::getInstance()->getNodeHash()) { |
| 464 | 464 | if (node->getType() == NodeType::MetavoxelServer) { |
| 465 | 465 | QMutexLocker locker(&node->getMutex()); |
| 466 | 466 | MetavoxelSystemClient* client = static_cast<MetavoxelSystemClient*>(node->getLinkedData()); |
| 467 | 467 | if (client) { |
| 468 | − client->getAugmentedData().guide(visitor); | |
| 468 | + MetavoxelData data = client->getAugmentedData(); | |
| 469 | + data.guide(visitor); | |
| 470 | + if (render) { | |
| 471 | + // save the rendered augmented data so that its cached texture references, etc., don't | |
| 472 | + // get collected when we replace it with more recent versions | |
| 473 | + client->setRenderedAugmentedData(data); | |
| 474 | + } | |
| 469 | 475 | } |
| 470 | 476 | } |
| 471 | 477 | } |