Doh!! Renderer used before initialized.
Showing the changes to interface/src/VoxelSystem.cpp (1 of 1 file). Show all
Unified · Split
| @@ -60,8 +60,8 @@ VoxelSystem::VoxelSystem(float treeScale, int maxVoxels) · 59 unmodified lines | ||
| 60 | 60 | _treeScale(treeScale), |
| 61 | 61 | _maxVoxels(maxVoxels), |
| 62 | 62 | _initialized(false), |
| 63 | − _inInspectForOcclusions(false), | |
| 64 | 63 | _showCulledSharedFaces(false), |
| 64 | + _inInspectForOcclusions(false), | |
| 65 | 65 | _usePrimitiveRenderer(false), |
| 66 | 66 | _renderer(0) { |
| 67 | 67 | |
| @@ -251,8 +251,6 @@ VoxelSystem::~VoxelSystem() { · 183 unmodified lines | ||
| 251 | 251 | |
| 252 | 252 | cleanupVoxelMemory(); |
| 253 | 253 | delete _tree; |
| 254 | − | |
| 255 | − _renderer = 0; | |
| 256 | 254 | } |
| 257 | 255 | |
| 258 | 256 | void VoxelSystem::setMaxVoxels(int maxVoxels) { |
| @@ -371,8 +369,10 @@ void VoxelSystem::cleanupVoxelMemory() { · 112 unmodified lines | ||
| 371 | 369 | _readColorsArray = NULL; |
| 372 | 370 | _writeColorsArray = NULL; |
| 373 | 371 | } |
| 372 | + | |
| 374 | 373 | delete _renderer; |
| 375 | 374 | _renderer = 0; |
| 375 | + | |
| 376 | 376 | delete[] _writeVoxelDirtyArray; |
| 377 | 377 | delete[] _readVoxelDirtyArray; |
| 378 | 378 | _writeVoxelDirtyArray = _readVoxelDirtyArray = NULL; |
| @@ -1471,7 +1471,9 @@ void VoxelSystem::killLocalVoxels() { · 1092 unmodified lines | ||
| 1471 | 1471 | _tree->eraseAllOctreeElements(); |
| 1472 | 1472 | _tree->unlock(); |
| 1473 | 1473 | clearFreeBufferIndexes(); |
| 1474 | − _renderer->release(); | |
| 1474 | + if (_renderer) { | |
| 1475 | + _renderer->release(); | |
| 1476 | + } | |
| 1475 | 1477 | _voxelsInReadArrays = 0; // do we need to do this? |
| 1476 | 1478 | setupNewVoxelsForDrawing(); |
| 1477 | 1479 | } |
| @@ -1675,13 +1677,17 @@ void VoxelSystem::cullSharedFaces() { · 197 unmodified lines | ||
| 1675 | 1677 | if (Menu::getInstance()->isOptionChecked(MenuOption::CullSharedFaces)) { |
| 1676 | 1678 | _useVoxelShader = false; |
| 1677 | 1679 | _usePrimitiveRenderer = true; |
| 1678 | − _renderer->release(); | |
| 1680 | + if (_renderer) { | |
| 1681 | + _renderer->release(); | |
| 1682 | + } | |
| 1679 | 1683 | clearAllNodesBufferIndex(); |
| 1680 | 1684 | inspectForOcclusions(); |
| 1681 | 1685 | qDebug("culling shared faces in %d nodes", _nodeCount); |
| 1682 | 1686 | } else { |
| 1683 | 1687 | _usePrimitiveRenderer = false; |
| 1684 | − _renderer->release(); | |
| 1688 | + if (_renderer) { | |
| 1689 | + _renderer->release(); | |
| 1690 | + } | |
| 1685 | 1691 | clearAllNodesBufferIndex(); |
| 1686 | 1692 | _tree->lockForRead(); |
| 1687 | 1693 | _tree->recurseTreeWithOperation(clearOcclusionsOperation); |