mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 21:03:27 +02:00
Honor full scene resends
This commit is contained in:
parent
ae6672533c
commit
5945823606
4 changed files with 9 additions and 7 deletions
|
@ -111,7 +111,7 @@ bool EntityTreeSendThread::traverseTreeAndSendContents(SharedNodePointer node, O
|
||||||
int32_t lodLevelOffset = nodeData->getBoundaryLevelAdjust() + (viewFrustumChanged ? LOW_RES_MOVING_ADJUST : NO_BOUNDARY_ADJUST);
|
int32_t lodLevelOffset = nodeData->getBoundaryLevelAdjust() + (viewFrustumChanged ? LOW_RES_MOVING_ADJUST : NO_BOUNDARY_ADJUST);
|
||||||
newView.lodScaleFactor = powf(2.0f, lodLevelOffset);
|
newView.lodScaleFactor = powf(2.0f, lodLevelOffset);
|
||||||
|
|
||||||
startNewTraversal(newView, root);
|
startNewTraversal(newView, root, isFullScene);
|
||||||
|
|
||||||
// When the viewFrustum changed the sort order may be incorrect, so we re-sort
|
// When the viewFrustum changed the sort order may be incorrect, so we re-sort
|
||||||
// and also use the opportunity to cull anything no longer in view
|
// and also use the opportunity to cull anything no longer in view
|
||||||
|
@ -220,9 +220,10 @@ bool EntityTreeSendThread::addDescendantsToExtraFlaggedEntities(const QUuid& fil
|
||||||
return hasNewChild || hasNewDescendants;
|
return hasNewChild || hasNewDescendants;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityTreeSendThread::startNewTraversal(const DiffTraversal::View& view, EntityTreeElementPointer root) {
|
void EntityTreeSendThread::startNewTraversal(const DiffTraversal::View& view, EntityTreeElementPointer root,
|
||||||
|
bool forceFirstPass) {
|
||||||
|
|
||||||
DiffTraversal::Type type = _traversal.prepareNewTraversal(view, root);
|
DiffTraversal::Type type = _traversal.prepareNewTraversal(view, root, forceFirstPass);
|
||||||
// there are three types of traversal:
|
// there are three types of traversal:
|
||||||
//
|
//
|
||||||
// (1) FirstTime = at login --> find everything in view
|
// (1) FirstTime = at login --> find everything in view
|
||||||
|
|
|
@ -42,7 +42,7 @@ private:
|
||||||
bool addAncestorsToExtraFlaggedEntities(const QUuid& filteredEntityID, EntityItem& entityItem, EntityNodeData& nodeData);
|
bool addAncestorsToExtraFlaggedEntities(const QUuid& filteredEntityID, EntityItem& entityItem, EntityNodeData& nodeData);
|
||||||
bool addDescendantsToExtraFlaggedEntities(const QUuid& filteredEntityID, EntityItem& entityItem, EntityNodeData& nodeData);
|
bool addDescendantsToExtraFlaggedEntities(const QUuid& filteredEntityID, EntityItem& entityItem, EntityNodeData& nodeData);
|
||||||
|
|
||||||
void startNewTraversal(const DiffTraversal::View& viewFrustum, EntityTreeElementPointer root);
|
void startNewTraversal(const DiffTraversal::View& viewFrustum, EntityTreeElementPointer root, bool forceFirstPass = false);
|
||||||
bool traverseTreeAndBuildNextPacketPayload(EncodeBitstreamParams& params, const QJsonObject& jsonFilters) override;
|
bool traverseTreeAndBuildNextPacketPayload(EncodeBitstreamParams& params, const QJsonObject& jsonFilters) override;
|
||||||
|
|
||||||
void preDistributionProcessing() override;
|
void preDistributionProcessing() override;
|
||||||
|
|
|
@ -193,7 +193,8 @@ DiffTraversal::DiffTraversal() {
|
||||||
_path.reserve(MIN_PATH_DEPTH);
|
_path.reserve(MIN_PATH_DEPTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
DiffTraversal::Type DiffTraversal::prepareNewTraversal(const DiffTraversal::View& view, EntityTreeElementPointer root) {
|
DiffTraversal::Type DiffTraversal::prepareNewTraversal(const DiffTraversal::View& view, EntityTreeElementPointer root,
|
||||||
|
bool forceFirstPass) {
|
||||||
assert(root);
|
assert(root);
|
||||||
// there are three types of traversal:
|
// there are three types of traversal:
|
||||||
//
|
//
|
||||||
|
@ -212,7 +213,7 @@ DiffTraversal::Type DiffTraversal::prepareNewTraversal(const DiffTraversal::View
|
||||||
|
|
||||||
Type type;
|
Type type;
|
||||||
// If usesViewFrustum changes, treat it as a First traversal
|
// If usesViewFrustum changes, treat it as a First traversal
|
||||||
if (_completedView.startTime == 0 || _currentView.usesViewFrustums() != _completedView.usesViewFrustums()) {
|
if (forceFirstPass || _completedView.startTime == 0 || _currentView.usesViewFrustums() != _completedView.usesViewFrustums()) {
|
||||||
type = Type::First;
|
type = Type::First;
|
||||||
_currentView.viewFrustums = view.viewFrustums;
|
_currentView.viewFrustums = view.viewFrustums;
|
||||||
_currentView.lodScaleFactor = view.lodScaleFactor;
|
_currentView.lodScaleFactor = view.lodScaleFactor;
|
||||||
|
|
|
@ -61,7 +61,7 @@ public:
|
||||||
|
|
||||||
DiffTraversal();
|
DiffTraversal();
|
||||||
|
|
||||||
Type prepareNewTraversal(const DiffTraversal::View& view, EntityTreeElementPointer root);
|
Type prepareNewTraversal(const DiffTraversal::View& view, EntityTreeElementPointer root, bool forceFirstPass = false);
|
||||||
|
|
||||||
const View& getCurrentView() const { return _currentView; }
|
const View& getCurrentView() const { return _currentView; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue