History

fix repeat First traversals mid-First-traversal

Andrew Meadows committed 9 years ago

Commit b7882731 parent d54fa201 file · +4 −4Browse files

Showing the changes to assignment-client/src/entities/EntityTreeSendThread.cpp (1 of 1 file). Show all

Unified · Split

assignment-client/src/entities/EntityTreeSendThread.cpp+4−4
@@ -17,7 +17,7 @@ · 16 unmodified lines
17 17
18#include "EntityServer.h"18#include "EntityServer.h"
19 19
20//#define SEND_SORTED_ENTITIES20#define SEND_SORTED_ENTITIES
21 21
22void EntityTreeSendThread::preDistributionProcessing() {22void EntityTreeSendThread::preDistributionProcessing() {
23 auto node = _node.toStrongRef();23 auto node = _node.toStrongRef();
@@ -89,7 +89,7 @@ void EntityTreeSendThread::traverseTreeAndSendContents(SharedNodePointer node, O · 65 unmodified lines
89 if (nodeData->getUsesFrustum()) {89 if (nodeData->getUsesFrustum()) {
90 // DEBUG HACK: trigger traversal (Repeat) every so often90 // DEBUG HACK: trigger traversal (Repeat) every so often
91 const uint64_t TRAVERSE_AGAIN_PERIOD = 4 * USECS_PER_SECOND;91 const uint64_t TRAVERSE_AGAIN_PERIOD = 4 * USECS_PER_SECOND;
92 bool repeatTraversal = usecTimestampNow() > _traversal.getStartOfCompletedTraversal() + TRAVERSE_AGAIN_PERIOD;92 bool repeatTraversal = _traversal.finished() && usecTimestampNow() > _traversal.getStartOfCompletedTraversal() + TRAVERSE_AGAIN_PERIOD;
93 if (viewFrustumChanged || repeatTraversal) {93 if (viewFrustumChanged || repeatTraversal) {
94 ViewFrustum viewFrustum;94 ViewFrustum viewFrustum;
95 nodeData->copyCurrentViewFrustum(viewFrustum);95 nodeData->copyCurrentViewFrustum(viewFrustum);
@@ -272,8 +272,8 @@ void EntityTreeSendThread::startNewTraversal(const ViewFrustum& view, EntityTree · 176 unmodified lines
272 break;272 break;
273 case DiffTraversal::Repeat:273 case DiffTraversal::Repeat:
274 _traversal.setScanCallback([&] (DiffTraversal::VisibleElement& next) {274 _traversal.setScanCallback([&] (DiffTraversal::VisibleElement& next) {
275 if (next.element->getLastChangedContent() > _traversal.getStartOfCompletedTraversal()) {275 uint64_t timestamp = _traversal.getStartOfCompletedTraversal();
276 uint64_t timestamp = _traversal.getStartOfCompletedTraversal();276 if (next.element->getLastChangedContent() > timestamp) {
277 next.element->forEachEntity([&](EntityItemPointer entity) {277 next.element->forEachEntity([&](EntityItemPointer entity) {
278 // Bail early if we've already checked this entity this frame278 // Bail early if we've already checked this entity this frame
279 if (_entitiesInQueue.find(entity.get()) != _entitiesInQueue.end()) {279 if (_entitiesInQueue.find(entity.get()) != _entitiesInQueue.end()) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t