History

adjustable LOD tweaks

ZappoMan committed 13 years ago

Commit dd7eb661 parent baafea05 files · +35 −10Browse files

Showing the changes to interface/src/VoxelSystem.cpp (1 of 5 files). Show all

Unified · Split

interface/src/VoxelSystem.cpp+14−1
@@ -109,6 +109,7 @@ VoxelSystem::VoxelSystem(float treeScale, int maxVoxels) · 108 unmodified lines
109109 _useFastVoxelPipeline = false;
110110
111111 _culledOnce = false;
112+ _inhideOutOfView = false;
112113 }
113114
114115 void VoxelSystem::voxelDeleted(VoxelNode* node) {
@@ -1848,6 +1849,14 @@ public: · 1733 unmodified lines
18481849 };
18491850
18501851 void VoxelSystem::hideOutOfView(bool forceFullFrustum) {
1852+
1853+ // don't re-enter...
1854+ if (_inhideOutOfView) {
1855+ return;
1856+ }
1857+
1858+ _inhideOutOfView = true;
1859+
18511860 bool showDebugDetails = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings);
18521861 PerformanceWarning warn(showDebugDetails, "hideOutOfView()", showDebugDetails);
18531862 bool widenFrustum = true;
@@ -1879,10 +1888,13 @@ void VoxelSystem::hideOutOfView(bool forceFullFrustum) { · 25 unmodified lines
18791888
18801889 if (!forceFullFrustum && _culledOnce && args.lastViewFrustum.isVerySimilar(args.thisViewFrustum)) {
18811890 //printf("view frustum hasn't changed BAIL!!!\n");
1891+ _inhideOutOfView = false;
18821892 return;
18831893 }
1884−
1894+
1895+ pthread_mutex_lock(&_treeLock);
18851896 _tree->recurseTreeWithOperation(hideOutOfViewOperation,(void*)&args);
1897+ pthread_mutex_unlock(&_treeLock);
18861898 _lastCulledViewFrustum = args.thisViewFrustum; // save last stable
18871899 _culledOnce = true;
18881900
@@ -1900,6 +1912,7 @@ void VoxelSystem::hideOutOfView(bool forceFullFrustum) { · 11 unmodified lines
19001912 args.nodesInsideInside, args.nodesIntersectInside, args.nodesOutsideOutside
19011913 );
19021914 }
1915+ _inhideOutOfView = false;
19031916 }
19041917
19051918 bool VoxelSystem::hideAllSubTreeOperation(VoxelNode* node, void* extraData) {