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