Showing the changes to interface/src/VoxelSystem.cpp (1 of 3 files). Show all
Unified · Split
| @@ -150,6 +150,7 @@ int VoxelSystem::parseData(unsigned char* sourceBuffer, int numBytes) { · 149 unmodified lines | ||
| 150 | 150 | void VoxelSystem::setupNewVoxelsForDrawing() { |
| 151 | 151 | double start = usecTimestampNow(); |
| 152 | 152 | if (_tree->isDirty()) { |
| 153 | + _callsToTreesToArrays++; | |
| 153 | 154 | _voxelsUpdated = newTreeToArrays(_tree->rootNode); |
| 154 | 155 | _tree->clearDirtyBit(); // after we pull the trees into the array, we can consider the tree clean |
| 155 | 156 | } else { |
| @@ -163,14 +164,16 @@ void VoxelSystem::setupNewVoxelsForDrawing() { · 7 unmodified lines | ||
| 163 | 164 | if (_renderWarningsOn && elapsedmsec > 1) { |
| 164 | 165 | if (elapsedmsec > 1000) { |
| 165 | 166 | double elapsedsec = (end - start)/1000000.0; |
| 166 | − printLog("WARNING! newTreeToArrays() took %lf seconds\n",elapsedsec); | |
| 167 | + printLog("WARNING! newTreeToArrays() took %lf seconds %ld voxels updated\n", elapsedsec, _voxelsUpdated); | |
| 167 | 168 | } else { |
| 168 | − printLog("WARNING! newTreeToArrays() took %lf milliseconds\n",elapsedmsec); | |
| 169 | + printLog("WARNING! newTreeToArrays() took %lf milliseconds %ld voxels updated\n", elapsedmsec, _voxelsUpdated); | |
| 169 | 170 | } |
| 170 | 171 | } |
| 171 | 172 | |
| 172 | − // copy the newly written data to the arrays designated for reading | |
| 173 | − copyWrittenDataToReadArrays(); | |
| 173 | + if (_voxelsDirty) { | |
| 174 | + // copy the newly written data to the arrays designated for reading | |
| 175 | + copyWrittenDataToReadArrays(); | |
| 176 | + } | |
| 174 | 177 | } |
| 175 | 178 | |
| 176 | 179 | void VoxelSystem::copyWrittenDataToReadArrays() { |
| @@ -189,9 +192,11 @@ void VoxelSystem::copyWrittenDataToReadArrays() { · 12 unmodified lines | ||
| 189 | 192 | if (_renderWarningsOn && elapsedmsec > 1) { |
| 190 | 193 | if (elapsedmsec > 1000) { |
| 191 | 194 | double elapsedsec = (end - start)/1000000.0; |
| 192 | − printLog("WARNING! copyWrittenDataToReadArrays() took %lf seconds\n",elapsedsec); | |
| 195 | + printLog("WARNING! copyWrittenDataToReadArrays() took %lf seconds for %ld voxels %ld updated\n", | |
| 196 | + elapsedsec, _voxelsInArrays, _voxelsUpdated); | |
| 193 | 197 | } else { |
| 194 | − printLog("WARNING! copyWrittenDataToReadArrays() took %lf milliseconds\n",elapsedmsec); | |
| 198 | + printLog("WARNING! copyWrittenDataToReadArrays() took %lf milliseconds for %ld voxels %ld updated\n", | |
| 199 | + elapsedmsec, _voxelsInArrays, _voxelsUpdated); | |
| 195 | 200 | } |
| 196 | 201 | } |
| 197 | 202 | } |
| @@ -266,6 +271,7 @@ VoxelSystem* VoxelSystem::clone() const { · 68 unmodified lines | ||
| 266 | 271 | void VoxelSystem::init() { |
| 267 | 272 | |
| 268 | 273 | _renderWarningsOn = false; |
| 274 | + _callsToTreesToArrays = 0; | |
| 269 | 275 | |
| 270 | 276 | // When we change voxels representations in the arrays, we'll update this |
| 271 | 277 | _voxelsDirty = false; |
| @@ -373,13 +379,20 @@ void VoxelSystem::updateVBOs() { · 101 unmodified lines | ||
| 373 | 379 | double end = usecTimestampNow(); |
| 374 | 380 | double elapsedmsec = (end - start)/1000.0; |
| 375 | 381 | if (_renderWarningsOn && elapsedmsec > 1) { |
| 376 | − if (elapsedmsec > 1000) { | |
| 377 | − double elapsedsec = (end - start)/1000000.0; | |
| 378 | − printLog("WARNING! updateVBOs() took %lf seconds\n",elapsedsec); | |
| 382 | + if (elapsedmsec > 1) { | |
| 383 | + if (elapsedmsec > 1000) { | |
| 384 | + double elapsedsec = (end - start)/1000000.0; | |
| 385 | + printLog("WARNING! updateVBOs() took %lf seconds after %d calls to newTreeToArrays()\n", | |
| 386 | + elapsedsec, _callsToTreesToArrays); | |
| 387 | + } else { | |
| 388 | + printLog("WARNING! updateVBOs() took %lf milliseconds after %d calls to newTreeToArrays()\n", | |
| 389 | + elapsedmsec, _callsToTreesToArrays); | |
| 390 | + } | |
| 379 | 391 | } else { |
| 380 | − printLog("WARNING! updateVBOs() took %lf milliseconds\n",elapsedmsec); | |
| 392 | + printLog("WARNING! updateVBOs() called after %d calls to newTreeToArrays()\n",_callsToTreesToArrays); | |
| 381 | 393 | } |
| 382 | 394 | } |
| 395 | + _callsToTreesToArrays = 0; // clear it | |
| 383 | 396 | } |
| 384 | 397 | |
| 385 | 398 | void VoxelSystem::render() { |