History

Fixed ui related files memory wastes

atlante45 committed 13 years ago

Commit 06119991 parent 7688dc46 files · +38 −17Browse files

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

Unified · Split

interface/src/VoxelSystem.cpp+22−14
@@ -51,8 +51,12 @@ GLubyte identityIndices[] = { 0,2,1, 0,3,2, // Z- · 50 unmodified lines
51 10,11,15, 10,15,14, // Y+51 10,11,15, 10,15,14, // Y+
52 4,5,6, 4,6,7 }; // Z+52 4,5,6, 4,6,7 }; // Z+
53 53
54VoxelSystem::VoxelSystem(float treeScale, int maxVoxels) :54VoxelSystem::VoxelSystem(float treeScale, int maxVoxels)
55 NodeData(NULL), _treeScale(treeScale), _maxVoxels(maxVoxels) {55 : NodeData(NULL),
56 _treeScale(treeScale),
57 _maxVoxels(maxVoxels),
58 _initialized(false) {
59
56 _voxelsInReadArrays = _voxelsInWriteArrays = _voxelsUpdated = 0;60 _voxelsInReadArrays = _voxelsInWriteArrays = _voxelsUpdated = 0;
57 _writeRenderFullVBO = true;61 _writeRenderFullVBO = true;
58 _readRenderFullVBO = true;62 _readRenderFullVBO = true;
@@ -115,22 +119,25 @@ void VoxelSystem::clearFreeBufferIndexes() { · 56 unmodified lines
115}119}
116 120
117VoxelSystem::~VoxelSystem() {121VoxelSystem::~VoxelSystem() {
118 delete[] _readVerticesArray;122 if (_initialized) {
119 delete[] _writeVerticesArray;123 // Destroy glBuffers
120 delete[] _readColorsArray;124 glDeleteBuffers(1, &_vboVerticesID);
121 delete[] _writeColorsArray;125 glDeleteBuffers(1, &_vboNormalsID);
122 delete[] _writeVoxelDirtyArray;126 glDeleteBuffers(1, &_vboColorsID);
123 delete[] _readVoxelDirtyArray;127 glDeleteBuffers(1, &_vboIndicesID);
128
129 delete[] _readVerticesArray;
130 delete[] _writeVerticesArray;
131 delete[] _readColorsArray;
132 delete[] _writeColorsArray;
133 delete[] _writeVoxelDirtyArray;
134 delete[] _readVoxelDirtyArray;
135 }
136
124 delete _tree;137 delete _tree;
125 pthread_mutex_destroy(&_bufferWriteLock);138 pthread_mutex_destroy(&_bufferWriteLock);
126 pthread_mutex_destroy(&_treeLock);139 pthread_mutex_destroy(&_treeLock);
127 140
128 // Destroy glBuffers
129 glDeleteBuffers(1, &_vboVerticesID);
130 glDeleteBuffers(1, &_vboNormalsID);
131 glDeleteBuffers(1, &_vboColorsID);
132 glDeleteBuffers(1, &_vboIndicesID);
133
134 VoxelNode::removeDeleteHook(this);141 VoxelNode::removeDeleteHook(this);
135}142}
136 143
@@ -639,6 +646,7 @@ void VoxelSystem::init() { · 502 unmodified lines
639 646
640 _perlinModulateProgramInitialized = true;647 _perlinModulateProgramInitialized = true;
641 }648 }
649 _initialized = true;
642}650}
643 651
644void VoxelSystem::updateFullVBOs() {652void VoxelSystem::updateFullVBOs() {