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 | void VoxelSystem::setupNewVoxelsForDrawing() { | 150 | void VoxelSystem::setupNewVoxelsForDrawing() { |
| 151 | double start = usecTimestampNow(); | 151 | double start = usecTimestampNow(); |
| 152 | if (_tree->isDirty()) { | 152 | if (_tree->isDirty()) { |
| 153 | _callsToTreesToArrays++; | ||
| 153 | _voxelsUpdated = newTreeToArrays(_tree->rootNode); | 154 | _voxelsUpdated = newTreeToArrays(_tree->rootNode); |
| 154 | _tree->clearDirtyBit(); // after we pull the trees into the array, we can consider the tree clean | 155 | _tree->clearDirtyBit(); // after we pull the trees into the array, we can consider the tree clean |
| 155 | } else { | 156 | } else { |
| @@ -163,14 +164,16 @@ void VoxelSystem::setupNewVoxelsForDrawing() { · 7 unmodified lines | |||
| 163 | if (_renderWarningsOn && elapsedmsec > 1) { | 164 | if (_renderWarningsOn && elapsedmsec > 1) { |
| 164 | if (elapsedmsec > 1000) { | 165 | if (elapsedmsec > 1000) { |
| 165 | double elapsedsec = (end - start)/1000000.0; | 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 | } else { | 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 | if (_voxelsDirty) { |
| 173 | copyWrittenDataToReadArrays(); | 174 | // copy the newly written data to the arrays designated for reading |
| 175 | copyWrittenDataToReadArrays(); | ||
| 176 | } | ||
| 174 | } | 177 | } |
| 175 | 178 | ||
| 176 | void VoxelSystem::copyWrittenDataToReadArrays() { | 179 | void VoxelSystem::copyWrittenDataToReadArrays() { |
| @@ -189,9 +192,11 @@ void VoxelSystem::copyWrittenDataToReadArrays() { · 12 unmodified lines | |||
| 189 | if (_renderWarningsOn && elapsedmsec > 1) { | 192 | if (_renderWarningsOn && elapsedmsec > 1) { |
| 190 | if (elapsedmsec > 1000) { | 193 | if (elapsedmsec > 1000) { |
| 191 | double elapsedsec = (end - start)/1000000.0; | 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 | } else { | 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 | void VoxelSystem::init() { | 271 | void VoxelSystem::init() { |
| 267 | 272 | ||
| 268 | _renderWarningsOn = false; | 273 | _renderWarningsOn = false; |
| 274 | _callsToTreesToArrays = 0; | ||
| 269 | 275 | ||
| 270 | // When we change voxels representations in the arrays, we'll update this | 276 | // When we change voxels representations in the arrays, we'll update this |
| 271 | _voxelsDirty = false; | 277 | _voxelsDirty = false; |
| @@ -373,13 +379,20 @@ void VoxelSystem::updateVBOs() { · 101 unmodified lines | |||
| 373 | double end = usecTimestampNow(); | 379 | double end = usecTimestampNow(); |
| 374 | double elapsedmsec = (end - start)/1000.0; | 380 | double elapsedmsec = (end - start)/1000.0; |
| 375 | if (_renderWarningsOn && elapsedmsec > 1) { | 381 | if (_renderWarningsOn && elapsedmsec > 1) { |
| 376 | if (elapsedmsec > 1000) { | 382 | if (elapsedmsec > 1) { |
| 377 | double elapsedsec = (end - start)/1000000.0; | 383 | if (elapsedmsec > 1000) { |
| 378 | printLog("WARNING! updateVBOs() took %lf seconds\n",elapsedsec); | 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 | } else { | 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 | void VoxelSystem::render() { | 398 | void VoxelSystem::render() { |